From 36b7ac0623ef86c2eed6796734882fc33509bc1c Mon Sep 17 00:00:00 2001 From: John Lillis Date: Wed, 15 Nov 2017 12:16:15 -0500 Subject: [PATCH 001/235] Add swayFactor option to advanced fatigue --- addons/advanced_fatigue/ACE_Settings.hpp | 7 +++++++ addons/advanced_fatigue/CfgVehicles.hpp | 6 ++++++ addons/advanced_fatigue/functions/fnc_handleEffects.sqf | 6 +++--- addons/advanced_fatigue/functions/fnc_moduleSettings.sqf | 1 + addons/advanced_fatigue/initSettings.sqf | 9 +++++++++ addons/advanced_fatigue/stringtable.xml | 6 ++++++ 6 files changed, 32 insertions(+), 3 deletions(-) diff --git a/addons/advanced_fatigue/ACE_Settings.hpp b/addons/advanced_fatigue/ACE_Settings.hpp index 8abdcc5865..4a7efcbaad 100644 --- a/addons/advanced_fatigue/ACE_Settings.hpp +++ b/addons/advanced_fatigue/ACE_Settings.hpp @@ -42,4 +42,11 @@ class ACE_Settings { typeName = "SCALAR"; value = 1; }; + class GVAR(swayFactor) { + category = CSTRING(DisplayName); + displayName = CSTRING(SwayFactor); + description = CSTRING(SwayFactor_Description); + typeName = "SCALAR"; + value = 1; + }; }; diff --git a/addons/advanced_fatigue/CfgVehicles.hpp b/addons/advanced_fatigue/CfgVehicles.hpp index f6cead81e1..0f4065ba07 100644 --- a/addons/advanced_fatigue/CfgVehicles.hpp +++ b/addons/advanced_fatigue/CfgVehicles.hpp @@ -40,6 +40,12 @@ class CfgVehicles { typeName = "NUMBER"; defaultValue = 1; }; + class SwayFactor { + displayName = CSTRING(SwayFactor); + description = CSTRING(SwayFactor_Description); + typeName = "NUMBER"; + defaultValue = 1; + }; }; }; }; diff --git a/addons/advanced_fatigue/functions/fnc_handleEffects.sqf b/addons/advanced_fatigue/functions/fnc_handleEffects.sqf index 111727c826..a1ab7ac1df 100644 --- a/addons/advanced_fatigue/functions/fnc_handleEffects.sqf +++ b/addons/advanced_fatigue/functions/fnc_handleEffects.sqf @@ -90,12 +90,12 @@ if (_overexhausted) then { switch (stance _unit) do { case ("CROUCH"): { - _unit setCustomAimCoef (1.0 + _fatigue ^ 2 * 0.1); + _unit setCustomAimCoef ((1.0 + _fatigue ^ 2 * 0.1) * GVAR(swayFactor)); }; case ("PRONE"): { - _unit setCustomAimCoef (1.0 + _fatigue ^ 2 * 2.0); + _unit setCustomAimCoef ((1.0 + _fatigue ^ 2 * 2.0) * GVAR(swayFactor)); }; default { - _unit setCustomAimCoef (1.5 + _fatigue ^ 2 * 3.0); + _unit setCustomAimCoef ((1.5 + _fatigue ^ 2 * 3.0) * GVAR(swayFactor)); }; }; diff --git a/addons/advanced_fatigue/functions/fnc_moduleSettings.sqf b/addons/advanced_fatigue/functions/fnc_moduleSettings.sqf index 9d1a0a6ab6..d903760182 100644 --- a/addons/advanced_fatigue/functions/fnc_moduleSettings.sqf +++ b/addons/advanced_fatigue/functions/fnc_moduleSettings.sqf @@ -21,3 +21,4 @@ params ["_logic"]; [_logic, QGVAR(recoveryFactor), "RecoveryFactor"] call EFUNC(common,readSettingFromModule); [_logic, QGVAR(loadFactor), "LoadFactor"] call EFUNC(common,readSettingFromModule); [_logic, QGVAR(terrainGradientFactor), "TerrainGradientFactor"] call EFUNC(common,readSettingFromModule); +[_logic, QGVAR(swayFactor), "SwayFactor"] call EFUNC(common,readSettingFromModule); diff --git a/addons/advanced_fatigue/initSettings.sqf b/addons/advanced_fatigue/initSettings.sqf index d6c8acd0db..ea8ddb45d6 100644 --- a/addons/advanced_fatigue/initSettings.sqf +++ b/addons/advanced_fatigue/initSettings.sqf @@ -57,3 +57,12 @@ [0, 2, 1, 1], true ] call CBA_Settings_fnc_init; + +[ + QGVAR(swayFactor), + "SLIDER", + [LSTRING(SwayFactor), LSTRING(SwayFactor_Description)], + "ACE3 Advanced Fatigue", + [0, 2, 1, 1], + true +] call CBA_Settings_fnc_init; diff --git a/addons/advanced_fatigue/stringtable.xml b/addons/advanced_fatigue/stringtable.xml index 95b30d3c57..429bc076cc 100644 --- a/addons/advanced_fatigue/stringtable.xml +++ b/addons/advanced_fatigue/stringtable.xml @@ -109,6 +109,12 @@ 設定陡峭的地形將會影響多少體力的流失,值越高代表體力流失越快 设定陡峭的地形将会影响多少体力的流,失值越高代表体力流失越快 + + Sway factor + + + Changes how much fatigue influences weapon sway. Higher means more weapon sway. + Enabled Aktiv From 947b89d5aacd04289001d9e901250672a78907da Mon Sep 17 00:00:00 2001 From: John Lillis Date: Wed, 15 Nov 2017 12:22:56 -0500 Subject: [PATCH 002/235] Update docs and stringtable.xml --- addons/advanced_fatigue/stringtable.xml | 2 +- docs/wiki/framework/advanced-fatigue-framework.md | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/addons/advanced_fatigue/stringtable.xml b/addons/advanced_fatigue/stringtable.xml index 429bc076cc..7f6b552eb4 100644 --- a/addons/advanced_fatigue/stringtable.xml +++ b/addons/advanced_fatigue/stringtable.xml @@ -113,7 +113,7 @@ Sway factor - Changes how much fatigue influences weapon sway. Higher means more weapon sway. + Influences the amount of weapon sway. Higher means more sway. Enabled diff --git a/docs/wiki/framework/advanced-fatigue-framework.md b/docs/wiki/framework/advanced-fatigue-framework.md index 7ef836b7f2..93c9aa9b77 100644 --- a/docs/wiki/framework/advanced-fatigue-framework.md +++ b/docs/wiki/framework/advanced-fatigue-framework.md @@ -19,6 +19,7 @@ ACE provides four settings to tweak Advanced Fatigue. Adjust these factors depen - **Recovery factor:** Do you like looking at the landscape or think breaks are boring? Whatever the case, this influences the length of your stamina breaks. - **Load factor:** If you believe a Javelin is the perfect companion for your .50 BMG sniper rifle you probably should tweak this setting. - **Terrain factor**: Not everyone is used to mountainous terrain. Tweak this until you feel more at home. +- **Sway factor**: Influences the amount of weapon sway. Higher means more sway. Note that while there currently is no restriction on the value of these settings, it's generally recommended to keep them between 0 and 2. From 8021ce42156d8282d7aff0bcc22e241c061fcf01 Mon Sep 17 00:00:00 2001 From: rufix Date: Wed, 29 Nov 2017 18:09:05 +0100 Subject: [PATCH 003/235] New function "setAimCoef" at common, change ace_advanced_fatigue_fnc_handleEffects to use new function instead of setCustomAimCoef --- .../functions/fnc_handleEffects.sqf | 6 +-- addons/common/XEH_PREP.hpp | 1 + addons/common/functions/fnc_setAimCoef.sqf | 50 +++++++++++++++++++ 3 files changed, 54 insertions(+), 3 deletions(-) create mode 100644 addons/common/functions/fnc_setAimCoef.sqf diff --git a/addons/advanced_fatigue/functions/fnc_handleEffects.sqf b/addons/advanced_fatigue/functions/fnc_handleEffects.sqf index 111727c826..cd1dc5c689 100644 --- a/addons/advanced_fatigue/functions/fnc_handleEffects.sqf +++ b/addons/advanced_fatigue/functions/fnc_handleEffects.sqf @@ -90,12 +90,12 @@ if (_overexhausted) then { switch (stance _unit) do { case ("CROUCH"): { - _unit setCustomAimCoef (1.0 + _fatigue ^ 2 * 0.1); + [_unit, QUOTE(ADDON), 1.0 + _fatigue ^ 2 * 0.1] call EFUNC(common,setAimCoef); }; case ("PRONE"): { - _unit setCustomAimCoef (1.0 + _fatigue ^ 2 * 2.0); + [_unit, QUOTE(ADDON), 1.0 + _fatigue ^ 2 * 2.0] call EFUNC(common,setAimCoef); }; default { - _unit setCustomAimCoef (1.5 + _fatigue ^ 2 * 3.0); + [_unit, QUOTE(ADDON), 1.5 + _fatigue ^ 2 * 3.0] call EFUNC(common,setAimCoef); }; }; diff --git a/addons/common/XEH_PREP.hpp b/addons/common/XEH_PREP.hpp index d8c91ec843..99e3ec63de 100644 --- a/addons/common/XEH_PREP.hpp +++ b/addons/common/XEH_PREP.hpp @@ -142,6 +142,7 @@ PREP(runTests); PREP(sanitizeString); PREP(sendRequest); PREP(serverLog); +PREP(setAimCoef); PREP(setApproximateVariablePublic); PREP(setDefinedVariable); PREP(setDisableUserInputStatus); diff --git a/addons/common/functions/fnc_setAimCoef.sqf b/addons/common/functions/fnc_setAimCoef.sqf new file mode 100644 index 0000000000..23898a3f3b --- /dev/null +++ b/addons/common/functions/fnc_setAimCoef.sqf @@ -0,0 +1,50 @@ +/* + * Author: xrufix, Glowbal + * Handle set AimCoef calls. Will use highest available setting. + * + * Arguments: + * 0: id + * 1: settings + * 2: add [true] OR remove [false] (default: true) + * + * Return Value: + * None + * + * Example: + * [player,"ace_advanced_fatigue", 1, true] call ace_common_fnc_setAimCoef + * + * Public: Yes + */ +#include "script_component.hpp" + +params ["_unit","_id", "_setting", ["_add", true]]; + +private _exists = false; +private _highestCoef = 1; +private _map = _unit getVariable [QGVAR(setAimCoefMap), []]; + +_map = _map select { + _x params ["_xID", "_xSetting"]; + if (_id == _xID) then { + _exists = true; + if (_add) then { + _x set [1, _setting]; + _highestCoef = _highestCoef max _setting; + true + } else { + false + }; + } else { + _highestCoef = _highestCoef max _xSetting; + true + }; +}; + +if (!exists && _add) then { + _highestCoef = _highestCoef max _setting; + _map pushBack [_id, _setting]; +}; + +// Update the value +_unit setVariable [QGVAR(setAimCoefMap), _map]; +_unit setCustomAimCoef _highestCoef; From e1f919303b726f1a56e690691b499f9b42e2ea86 Mon Sep 17 00:00:00 2001 From: rufix Date: Wed, 29 Nov 2017 19:06:00 +0100 Subject: [PATCH 004/235] Fix typo. --- addons/common/functions/fnc_setAimCoef.sqf | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/addons/common/functions/fnc_setAimCoef.sqf b/addons/common/functions/fnc_setAimCoef.sqf index 23898a3f3b..baf1ef53c4 100644 --- a/addons/common/functions/fnc_setAimCoef.sqf +++ b/addons/common/functions/fnc_setAimCoef.sqf @@ -3,9 +3,10 @@ * Handle set AimCoef calls. Will use highest available setting. * * Arguments: - * 0: id - * 1: settings - * 2: add [true] OR remove [false] (default: true) + * 0: unit + * 1: id + * 2: settings + * 3: add [true] OR remove [false] (default: true) * * Return Value: * None @@ -40,7 +41,7 @@ _map = _map select { }; }; -if (!exists && _add) then { +if (!_exists && _add) then { _highestCoef = _highestCoef max _setting; _map pushBack [_id, _setting]; }; From d6af0ea0eb1ce14bb8c95e95fe3029e38dee86e4 Mon Sep 17 00:00:00 2001 From: rufix Date: Wed, 29 Nov 2017 19:27:51 +0100 Subject: [PATCH 005/235] Replace tabs with spaces. --- addons/common/functions/fnc_setAimCoef.sqf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/addons/common/functions/fnc_setAimCoef.sqf b/addons/common/functions/fnc_setAimCoef.sqf index baf1ef53c4..69fa8f8b26 100644 --- a/addons/common/functions/fnc_setAimCoef.sqf +++ b/addons/common/functions/fnc_setAimCoef.sqf @@ -42,8 +42,8 @@ _map = _map select { }; if (!_exists && _add) then { - _highestCoef = _highestCoef max _setting; - _map pushBack [_id, _setting]; + _highestCoef = _highestCoef max _setting; + _map pushBack [_id, _setting]; }; // Update the value From 6b0ee1de09358b0aa4c9837ac200ec529e9847bd Mon Sep 17 00:00:00 2001 From: rufix Date: Wed, 29 Nov 2017 20:00:51 +0100 Subject: [PATCH 006/235] Better readability. --- addons/common/functions/fnc_setAimCoef.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/common/functions/fnc_setAimCoef.sqf b/addons/common/functions/fnc_setAimCoef.sqf index 69fa8f8b26..9ee5d38b15 100644 --- a/addons/common/functions/fnc_setAimCoef.sqf +++ b/addons/common/functions/fnc_setAimCoef.sqf @@ -18,7 +18,7 @@ */ #include "script_component.hpp" -params ["_unit","_id", "_setting", ["_add", true]]; +params ["_unit", "_id", "_setting", ["_add", true]]; private _exists = false; private _highestCoef = 1; From 7c4adee2e7ccea11984cd428eaf3235a7ec01755 Mon Sep 17 00:00:00 2001 From: rufix Date: Sun, 10 Dec 2017 11:41:05 +0100 Subject: [PATCH 007/235] Prepare for merging with #5773. --- addons/advanced_fatigue/functions/fnc_handleEffects.sqf | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/addons/advanced_fatigue/functions/fnc_handleEffects.sqf b/addons/advanced_fatigue/functions/fnc_handleEffects.sqf index cd1dc5c689..dd973afe29 100644 --- a/addons/advanced_fatigue/functions/fnc_handleEffects.sqf +++ b/addons/advanced_fatigue/functions/fnc_handleEffects.sqf @@ -90,12 +90,12 @@ if (_overexhausted) then { switch (stance _unit) do { case ("CROUCH"): { - [_unit, QUOTE(ADDON), 1.0 + _fatigue ^ 2 * 0.1] call EFUNC(common,setAimCoef); + [_unit, QUOTE(ADDON), (1.0 + _fatigue ^ 2 * 0.1) * GVAR(swayFactor)] call EFUNC(common,setAimCoef); }; case ("PRONE"): { - [_unit, QUOTE(ADDON), 1.0 + _fatigue ^ 2 * 2.0] call EFUNC(common,setAimCoef); + [_unit, QUOTE(ADDON), (1.0 + _fatigue ^ 2 * 2.0) * GVAR(swayFactor)] call EFUNC(common,setAimCoef); }; default { - [_unit, QUOTE(ADDON), 1.5 + _fatigue ^ 2 * 3.0] call EFUNC(common,setAimCoef); + [_unit, QUOTE(ADDON), (1.5 + _fatigue ^ 2 * 3.0) * GVAR(swayFactor)] call EFUNC(common,setAimCoef); }; }; From cc503e041ba3deff8170cc10b61eb4565473ca65 Mon Sep 17 00:00:00 2001 From: Brunius Date: Mon, 29 Jan 2018 08:38:48 +1100 Subject: [PATCH 008/235] Add pylon whitelist option (#6080) * Adding pylon whitelist option * Changing tabs to spaces :( * Changing to use QGVAR * Changing name in QGVAR to more clearly reflect function of variable * Docs for the magazine whitelist function in pylons * Changes to match style guide * More docs * More tabs * Update pylons-framework.md * Update pylons-framework.md --- addons/pylons/functions/fnc_showDialog.sqf | 6 +++++ docs/wiki/framework/pylons-framework.md | 27 ++++++++++++++++++++++ 2 files changed, 33 insertions(+) create mode 100644 docs/wiki/framework/pylons-framework.md diff --git a/addons/pylons/functions/fnc_showDialog.sqf b/addons/pylons/functions/fnc_showDialog.sqf index b0f9b6c271..47b6585c89 100644 --- a/addons/pylons/functions/fnc_showDialog.sqf +++ b/addons/pylons/functions/fnc_showDialog.sqf @@ -73,6 +73,12 @@ GVAR(comboBoxes) = []; private _mag = (getPylonMagazines _aircraft) select _forEachIndex; private _mags = _aircraft getCompatiblePylonMagazines (_forEachIndex + 1); + private _userWhitelist = _aircraft getVariable [QGVAR(magazineWhitelist), _mags]; + private _userBlacklist = _aircraft getVariable [QGVAR(magazineBlacklist), []]; + + _mags = _mags arrayIntersect _userWhitelist; + _mags = _mags - _userBlacklist; + private _index = 0; { _combo lbAdd getText (configFile >> "CfgMagazines" >> _x >> "displayName"); diff --git a/docs/wiki/framework/pylons-framework.md b/docs/wiki/framework/pylons-framework.md new file mode 100644 index 0000000000..7cea33d29f --- /dev/null +++ b/docs/wiki/framework/pylons-framework.md @@ -0,0 +1,27 @@ +--- +layout: wiki +title: Pylons Framework +description: Explains how to set-up pylons whitelist and blacklist +group: framework +order: 5 +parent: wiki +mod: ace +version: + major: 3 + minor: 13 + patch: 0 +--- + +### 1 Setting a whitelist + +To set a whitelist, set the `ace_pylons_magazineWhitelist` variable with an array containing possible magazines. + +For example, place an AH-9 Pawnee, with the following in init line: + +`this setVariable ["ace_pylons_magazineWhitelist", ["PylonRack_7Rnd_Rocket_04_HE_F","PylonRack_7Rnd_Rocket_04_AP_F"]];`. + +Blacklists are set in the same way. Set the `ace_pylons_magazineBlacklist` variable with an array containing banned magazines. + +`this setVariable ["ace_pylons_magazineBlacklist", ["PylonRack_7Rnd_Rocket_04_HE_F","PylonRack_7Rnd_Rocket_04_AP_F"]];`. + +This would set the only available loadouts to be Hydra 70s. This will not change what is loaded by default, or affect whether it can rearm. From 29a0b2ef09d6b8fd9be25ab4c0471cc6badbdeeb Mon Sep 17 00:00:00 2001 From: Josuan Albin Date: Sun, 28 Jan 2018 22:39:46 +0100 Subject: [PATCH 009/235] Misc arsenal fixes (#6083) * Change backpack and scope checks in scanConfig and addVirtualItems Reason: was not a good implementation Might cause issue of people compalining about tents. * Give IDC to menuBar controls, disable import button in MP Reason: copyFromClipboard is disabled in MP * Add tooltip strings for the loadouts, export, import menu buttons * Remove double space in onArsenalOpen --- addons/arsenal/defines.hpp | 4 ++++ .../arsenal/functions/fnc_addVirtualItems.sqf | 2 +- addons/arsenal/functions/fnc_onArsenalOpen.sqf | 7 +++++++ addons/arsenal/functions/fnc_scanConfig.sqf | 8 ++++---- addons/arsenal/stringtable.xml | 18 +++++++++++++++--- addons/arsenal/ui/RscAttributes.hpp | 11 +++++++---- 6 files changed, 38 insertions(+), 12 deletions(-) diff --git a/addons/arsenal/defines.hpp b/addons/arsenal/defines.hpp index 1381deed85..ca5e7ed6a2 100644 --- a/addons/arsenal/defines.hpp +++ b/addons/arsenal/defines.hpp @@ -23,6 +23,10 @@ #define IDC_message 9 #define IDC_menuBar 10 #define IDC_menuBarClose 1001 +#define IDC_buttonHide 1002 +#define IDC_buttonLoadouts 1003 +#define IDC_buttonExport 1004 +#define IDC_buttonImport 1005 #define IDC_infoBox 11 #define IDC_infoBackground 1101 #define IDC_infoName 1102 diff --git a/addons/arsenal/functions/fnc_addVirtualItems.sqf b/addons/arsenal/functions/fnc_addVirtualItems.sqf index d47fa9b7c1..bfe17761c2 100644 --- a/addons/arsenal/functions/fnc_addVirtualItems.sqf +++ b/addons/arsenal/functions/fnc_addVirtualItems.sqf @@ -210,7 +210,7 @@ if (_items isEqualType true) then { }; }; case (isClass (configFile >> "CfgVehicles" >> _x)): { - if (getText (configFile >> "CfgVehicles" >> _x >> "vehicleClass") == "Backpacks") then { + if (getNumber (configFile >> "CfgVehicles" >> _x >> "isBackpack") == 1) then { (_cargo select 6) pushBackUnique _x; }; }; diff --git a/addons/arsenal/functions/fnc_onArsenalOpen.sqf b/addons/arsenal/functions/fnc_onArsenalOpen.sqf index 7f4a23cd59..c5d1cc0104 100644 --- a/addons/arsenal/functions/fnc_onArsenalOpen.sqf +++ b/addons/arsenal/functions/fnc_onArsenalOpen.sqf @@ -199,6 +199,13 @@ _mouseBlockCtrl ctrlEnable false; IDC_rightSearchbar ]; +if (isMultiplayer) then { + private _importButtonCtrl = _display displayCtrl IDC_buttonImport; + _importButtonCtrl ctrlEnable false; + _importButtonCtrl ctrlSetFade 0.6; + _importButtonCtrl ctrlCommit 0; +}; + //--------------- Camera prep cutText ["","plain"]; showCommandingMenu ""; diff --git a/addons/arsenal/functions/fnc_scanConfig.sqf b/addons/arsenal/functions/fnc_scanConfig.sqf index 4948f2c41d..c7457ae4ec 100644 --- a/addons/arsenal/functions/fnc_scanConfig.sqf +++ b/addons/arsenal/functions/fnc_scanConfig.sqf @@ -166,17 +166,17 @@ private _putList = []; [_magazineGroups, _x, _entry] call CBA_fnc_hashSet; } forEach getArray (_x >> "magazineGroup") }; -} foreach configProperties [(configFile >> "CfgMagazines"), "isClass _x && {getNumber (_x >> 'scope') == 2} && {getNumber (_x >> 'ace_arsenal_hide') != 1}", true]; +} foreach configProperties [(configFile >> "CfgMagazines"), "isClass _x && {(if (isNumber (_x >> 'scopeArsenal')) then {getNumber (_x >> 'scopeArsenal')} else {getNumber (_x >> 'scope')}) == 2} && {getNumber (_x >> 'ace_arsenal_hide') != 1}", true]; { - if (getText (_x >> "vehicleClass") == "Backpacks") then { + if (getNumber (_x >> "isBackpack") == 1) then { (_cargo select 6) pushBackUnique (configName _x); }; -} foreach configProperties [(configFile >> "CfgVehicles"), "isClass _x && {getNumber (_x >> 'scope') == 2} && {getNumber (_x >> 'ace_arsenal_hide') != 1}", true]; +} foreach configProperties [(configFile >> "CfgVehicles"), "isClass _x && {(if (isNumber (_x >> 'scopeArsenal')) then {getNumber (_x >> 'scopeArsenal')} else {getNumber (_x >> 'scope')}) == 2} && {getNumber (_x >> 'ace_arsenal_hide') != 1}", true]; { (_cargo select 7) pushBackUnique (configName _x); -} foreach configProperties [(configFile >> "CfgGlasses"), "isClass _x && {getNumber (_x >> 'scope') == 2} && {getNumber (_x >> 'ace_arsenal_hide') != 1}", true]; +} foreach configProperties [(configFile >> "CfgGlasses"), "isClass _x && {(if (isNumber (_x >> 'scopeArsenal')) then {getNumber (_x >> 'scopeArsenal')} else {getNumber (_x >> 'scope')}) == 2} && {getNumber (_x >> 'ace_arsenal_hide') != 1}", true]; uiNamespace setVariable [QGVAR(configItems), _cargo]; uiNamespace setVariable [QGVAR(magazineGroups), _magazineGroups]; diff --git a/addons/arsenal/stringtable.xml b/addons/arsenal/stringtable.xml index 47604703e9..8c4fa74c1c 100644 --- a/addons/arsenal/stringtable.xml +++ b/addons/arsenal/stringtable.xml @@ -434,17 +434,17 @@ Impossibile aprire l'arsenale ACE ACE 武器庫を開けません - + Import BI VA loadouts to ACE Arsenal Importe les loadouts de BI VA dans ACE Arsenal 標準の VA 装備から ACE 武器庫へ取り込み - + No player unit available! Place a unit and mark it as "Player". Aucune unité joueur disponible ! Placez une unité et marquez la en tant que "joueur". プレイヤー ユニットがありません!ユニットを設置しそれを"Player"と名付けてください。 - + No loadouts to import. Aucun loadout à importer. 取り込みする装備がありません。 @@ -469,5 +469,17 @@ Probiere verschiedene Waffen und Ausrüstung aus und stelle dir eigene Ausrüstungsprofile zusammen. さまざまな武器と装備を試して、あなただけの装備を作成してください。 + + Open the loadouts screen + Affiche la page des équipements + + + Export current / default loadouts + Exporte l'équipement actuel ou la liste d'équipements de base + + + Import current / default loadouts + Importer l'équipement actuel ou la liste d'équipements de base + diff --git a/addons/arsenal/ui/RscAttributes.hpp b/addons/arsenal/ui/RscAttributes.hpp index 735797de67..e9c4f1f6b4 100644 --- a/addons/arsenal/ui/RscAttributes.hpp +++ b/addons/arsenal/ui/RscAttributes.hpp @@ -167,7 +167,7 @@ class GVAR(display) { h = QUOTE(7 * GRID_H); class controls { class buttonHide: ctrlButton { - idc = -1; + idc = IDC_buttonHide; colorBackground[] = {0,0,0,0.8}; x = QUOTE(1 * WIDTH_GAP + 0 * WIDTH_SINGLE); y = QUOTE(0); @@ -180,21 +180,24 @@ class GVAR(display) { onButtonClick = QUOTE([ctrlparent (_this select 0)] call FUNC(buttonHide)); }; class buttonLoadouts: buttonHide { - idc = -1; + idc = IDC_buttonLoadouts; x = QUOTE(2 * WIDTH_GAP + 1 * WIDTH_SINGLE); text = CSTRING(buttonLoadoutsText); + tooltip = CSTRING(buttonLoadoutsTooltip); onButtonClick = QUOTE(createDialog QQGVAR(loadoutsDisplay)); }; class buttonExport: buttonHide { - idc = -1; + idc = IDC_buttonExport; x = QUOTE(3 * WIDTH_GAP + 2 * WIDTH_SINGLE); text = CSTRING(buttonExportText); + tooltip = CSTRING(buttonExportTooltip); onButtonClick = QUOTE([ctrlparent (_this select 0)] call FUNC(buttonExport)); }; class buttonImport: buttonHide { - idc = -1; + idc = IDC_buttonImport; x = QUOTE(4 * WIDTH_GAP + 3 * WIDTH_SINGLE); text = CSTRING(buttonImportText); + tooltip = CSTRING(buttonImportTooltip); onButtonClick = QUOTE([ctrlparent (_this select 0)] call FUNC(buttonImport)); }; class buttonClose: ctrlButtonOK { From 6ce8b8473a354606eb4e6df104a7e734eb3271f0 Mon Sep 17 00:00:00 2001 From: sbng-PAPA Date: Mon, 29 Jan 2018 06:42:32 +0900 Subject: [PATCH 010/235] korean translate 3.12.x (#6071) --- addons/advanced_ballistics/stringtable.xml | 2 + addons/arsenal/stringtable.xml | 62 ++++++++++++++++++++++ addons/captives/stringtable.xml | 1 + addons/common/stringtable.xml | 8 +++ addons/cookoff/stringtable.xml | 3 ++ addons/finger/stringtable.xml | 1 + addons/goggles/stringtable.xml | 1 + addons/hitreactions/stringtable.xml | 1 + addons/interaction/stringtable.xml | 2 + addons/magazinerepack/stringtable.xml | 4 ++ addons/markers/stringtable.xml | 3 ++ addons/maverick/stringtable.xml | 7 ++- addons/scopes/stringtable.xml | 8 +++ addons/spectator/stringtable.xml | 1 + addons/switchunits/stringtable.xml | 1 + addons/vehiclelock/stringtable.xml | 1 + addons/weather/stringtable.xml | 3 ++ addons/zeus/stringtable.xml | 1 + optionals/compat_adr_97/stringtable.xml | 18 +++++++ 19 files changed, 126 insertions(+), 2 deletions(-) diff --git a/addons/advanced_ballistics/stringtable.xml b/addons/advanced_ballistics/stringtable.xml index 8a2ee622d1..7abec780da 100644 --- a/addons/advanced_ballistics/stringtable.xml +++ b/addons/advanced_ballistics/stringtable.xml @@ -86,12 +86,14 @@ Variation der Mündungsgeschwindigkeit aktivieren 銃口初速の変化 Abilita Variazione Velocità Volata + 총구속도 변화적용 Simulates slight variations in muzzle velocity between each shot Simuliert leichte Variationen der Mündungsgeschwindigkeit zwischen jedem Schuss. 発射毎に僅かな銃口初速の変化をシミュレートします。 Simula lievi variazioni della velocità della volata tra un colpo e l'altro + 각 사격 사이에 총구속도 변화를 시뮬레이션 합니다. Enable Ammo Temperature Simulation diff --git a/addons/arsenal/stringtable.xml b/addons/arsenal/stringtable.xml index 8c4fa74c1c..91650bff8b 100644 --- a/addons/arsenal/stringtable.xml +++ b/addons/arsenal/stringtable.xml @@ -8,6 +8,7 @@ Ukryj 非表示 Nascondere + 숨김 Hide interface @@ -16,6 +17,7 @@ Ukryj interfejs インターフェイスを隠す Nascondi interfaccia + 인터페이스 숨기기 Loadouts @@ -24,6 +26,7 @@ Zestawy wyposażenia 装備 Equipaggiamenti + 로드아웃 Export @@ -32,6 +35,7 @@ Eksportuj 出力 Esporta + 내보내기 Import @@ -40,6 +44,7 @@ Importuj 取込 Importa + 가져오기 Close @@ -48,6 +53,7 @@ Zamknij 閉じる Chiudi + 닫기 No virtual item available @@ -56,6 +62,7 @@ Brak dostępnych przedmiotów wirtualnych 利用可能なバーチャル アイテムは無し Nessun oggetto virtuale disponibile + 가상장비 사용 불가 Save @@ -64,6 +71,7 @@ Zapisz 保存 Salva + 저장 Save the current loadout @@ -72,6 +80,7 @@ Zapisz obecny zestaw 現在の装備を保存します Salva l'equipaggiamento corrente + 현재 로드아웃 저장 Rename @@ -80,6 +89,7 @@ Zmień nazwę 改名 Rinomina + 이름바꾸기 Rename the selected loadout @@ -88,6 +98,7 @@ Zmień nazwę wybranego zestawu 現在選択中の装備を改名します Rinomina l'equipaggiamento selezionato + 선택한 로드아웃의 이름 바꾸기 Load @@ -96,6 +107,7 @@ Wczytaj 読み込む Carica + 불러오기 Load the selected loadout @@ -104,6 +116,7 @@ Wczytaj wybrany zestaw 現在選択中の装備を読み込みます Carica l'equipaggiamento selezionato + 선택한 로드아웃 불러오기 Delete @@ -112,6 +125,7 @@ Skasuj 削除 Elimina + 삭제 Delete the selected loadout @@ -120,6 +134,7 @@ Skasuj wybrany zestaw 現在選択中の装備を削除します Elimina l'equipaggiamento selezionato + 선택한 로드아웃 삭제하기 My loadouts @@ -128,6 +143,7 @@ Moje zestawy 自分の装備 I miei equipaggiamenti + 내 로드아웃 Loadouts saved in your profile @@ -136,6 +152,7 @@ Zestawy zapisane w Twoim profilu 自プロフィールに保存された装備です Gli equipaggiamenti salvati nel tuo profilo + 프로필에 저장된 로드아웃 Default loadouts @@ -144,6 +161,7 @@ Domyślne zestawy 標準の装備 Equipaggiamenti standard + 기본 로드아웃 Loadouts made available by the mission maker @@ -152,6 +170,7 @@ Zestawy udostępnione przez twórcę misji 装備はミッション著者によって利用できます Equipaggiamenti resi disponibili dal creatore della missione + 미션메이커가 허용한 로드아웃 Public loadouts @@ -160,6 +179,7 @@ Publiczne zestawy 公開装備 Equipaggiamenti pubblici + 공용 로드아웃 Loadouts shared by you and other players @@ -168,6 +188,7 @@ Zestawy udostępnione przez Ciebie i innych graczy 自分か他人によって共有された装備です Equipaggiamenti condivisi da te e da altri giocatori + 플레이어들이 공유하는 로드아웃 Sort by weight @@ -176,6 +197,7 @@ Sortuj wg wagi 重量で並び替え Ordina per peso + 무게로 정렬 Sort by amount @@ -184,6 +206,7 @@ Sortuj wg ilości 量で並び替え Ordina per quantitativo + 갯수로 정렬 Share or stop sharing the selected loadout @@ -192,6 +215,7 @@ Udostępnij lub przestań udostępniać wybrany zestaw 選択した装備の共有設定 Condividi o smetti di condividere l'equipaggiamento selezionato + 선택한 로드아웃 공유 혹은 공유중지 Private @@ -200,6 +224,7 @@ Prywatny 非公開 Privato + 개인 Public @@ -208,6 +233,7 @@ Publiczny 公開 Pubblico + 공용 The default loadouts list is empty! @@ -216,6 +242,7 @@ Lista domyślnych zestawów jest pusta! 標準の装備一欄が空です! La lista degli equipaggiamenti standard è vuota! + 기본 로드아웃 목록이 비어있습니다! Default loadouts list exported to clipboard @@ -224,6 +251,7 @@ Lista domyślnych zestawów została eksportowana do schowka 標準の装備一欄はクリップボードへ出力されました La lista degli equipaggiamenti standard è stata esportata negli appunti + 클립보드에 기본 로드아웃 목록 내보내기 Current loadout exported to clipboard @@ -232,6 +260,7 @@ Obecny zestaw został eksportowany do schowka 現在の装備はクリップボードへ出力されました Equipaggiamento corrente esportato negli appunti + 현재 로드아웃을 클립보드로 내보냈습니다. Wrong format provided @@ -240,6 +269,7 @@ Podano zły format 間違ったフォーマットが入力されました Formato fornito sbagliato + 잘못된 형식 입력됨 Default loadouts list imported from clipboard @@ -248,6 +278,7 @@ Lista domyślnych zestawów została importowana ze schowka 標準の装備一欄はクリップボードから取込されました La lista degli equipaggiamenti standard è stata importata dagli appunti + 클립보드에서 기본 로드아웃 가져오기 Loadout imported from clipboard @@ -256,6 +287,7 @@ Zestaw został importowany ze schowka 装備はクリップボードから取込されました Equipaggiamento importato dagli appunti + 클립보드에서 로드아웃을 가져왔습니다. The following loadout was deleted: @@ -264,6 +296,7 @@ Następujący zestaw został skasowany: 次の装備は削除されました: Il seguente equipaggiamento è stato eliminato: + 다음 로드아웃이 삭제됨 : The following loadout is not public anymore: @@ -272,6 +305,7 @@ Następujący zestaw nie jest już publiczny: 次の装備は非公開になりました: Il seguente eequipaggiamento non è più pubblico: + 다음 로드아웃이 더이상 공용이 아님: The name field is empty! @@ -280,6 +314,7 @@ Pole nazwy jest puste! 名前欄が空白です! Il campo del nome è vuoto! + 이름칸이 비었습니다! You are the author of this loadout @@ -288,6 +323,7 @@ Jesteś autorem tego zestawu あなたはこの装備の作者です Sei l'autore di questo equipaggiamento + 이 로드아웃의 제작자입니다. A loadout of yours with the same name is public @@ -296,6 +332,7 @@ Jeden z Twoich zestawów nazwany tak samo jest już publiczny あなたの装備は既に公開されているものと同名です Un tuo equipaggiamento con lo stesso nome è pubblico + 같은 이름의 로드아웃이 공용에 있습니다. The following loadout was saved: @@ -304,6 +341,7 @@ Następujący zestaw został zapisany: 次の装備は保存されました: Il seguente equipaggiamento è stato salvato: + 다음 로드아웃이 저장됨: The following loadout was loaded: @@ -312,6 +350,7 @@ Następujący zestaw został wczytany: 次の装備が読み込みされました: Il seguente equipaggiamento è stato caricato: + 다음 로드아웃을 불러옴: A loadout with the same name already exist! @@ -320,6 +359,7 @@ Zestaw z tą nazwą już istnieje! 既にその名前は装備に使われています! Un equipaggiamento con lo stesso nome è gia esistente! + 같은 이름의 로드아웃이 이미 존재합니다! was renamed to @@ -328,6 +368,7 @@ zmienił nazwę na 次の名前に改名されました E' stato rinominato in + 이름이 다음과 같이 변경됨: Invert camera controls @@ -336,6 +377,7 @@ Odwróć sterowanie kamerą カメラ操作を反転 Inverti comandi camera + 카메라 조종 반전 Enable mod icons @@ -344,6 +386,7 @@ Włącz ikony modów MOD アイコンを表示 Abilita icone mod + 모드 아이콘 허가 Panel font height @@ -352,6 +395,7 @@ Wysokość czcionki パネルにあるフォントの高さ Altezza carattere del pannello + 패널 폰트 높이 Allow default loadouts @@ -360,6 +404,7 @@ Zezwól na użycie domyślnych zestawów 標準の装備を許可 Consenti equipaggiamenti standard + 기본 로드아웃 허용 Allow loadout sharing @@ -368,6 +413,7 @@ Zezwól na udostępnianie zestawów 装備の共有を許可 Consenti condivisione equipaggiamenti + 로드아웃 공유 허용 Log missing / unavailable items @@ -376,6 +422,7 @@ Rejestruj brakujące / niedostępne przedmioty 欠落 / 利用不可アイテムを記録 Log mancante / oggetto non disponibile + 누락 된 항목 / 사용 할 수 없는 항목 기록 Primary magazine @@ -383,6 +430,7 @@ Główny magazynek プライマリ弾倉 Caricatore primario + 주무기 탄약 Secondary magazine @@ -390,6 +438,7 @@ Dodatkowy magazynek セカンダリ弾倉 Caricatore secondario + 보조무기 탄약 ACE Arsenal @@ -398,6 +447,7 @@ ACE Arsenał ACE 武器庫 Arsenale ACE + ACE 아스날 Allow the use of the default loadouts tab @@ -405,6 +455,7 @@ Zezwól na użycie zakładki domyślnych zestawów 標準の装備タブの使用を許可します Consenti l'uso della sezione per gli equipaggiamenti standard + 기본 로드아웃 탭 사용 허가 Show / hide mod icons for the left panel @@ -412,6 +463,7 @@ Pokaż / ukryj ikony modów w lewym panelu 左パネルにある MOD アイコンの表示 / 非表示をします Mostra / nascondi le icone delle mod dal pannello sinistro + 왼쪽 패널의 모드 아이콘 표시 / 숨기기 Change the font height for text in the left / right panels @@ -419,6 +471,7 @@ Zmień wysokość czcionki dla tekstu lewego i prawego panelu 右か左パネルにあるフォントの高さを変更します。 Cambia l'altezza del font per il testo sul pannello sinistro / destro + 왼쪽 / 오른쪽 패널 텍스트의 글꼴 높이 변경 Log missing / unavailable items in the RPT @@ -426,6 +479,7 @@ Rejestruj brakujące / niedostępne przedmioty do pliku RPT PRT で欠落 / 利用不可アイテムを記録します Log mancante / oggetto non disponibile nell' RPT + RPT에 누락 된 항목 / 사용할 수없는 항목 기록 Unable to open ACE arsenal @@ -433,41 +487,49 @@ Kann ACE-Arsenal nicht anzeigen Impossibile aprire l'arsenale ACE ACE 武器庫を開けません + ACE 아스날을 열 수 없음 Import BI VA loadouts to ACE Arsenal Importe les loadouts de BI VA dans ACE Arsenal 標準の VA 装備から ACE 武器庫へ取り込み + 바닐라 로드아웃을 ace 아스날로 가져오기 No player unit available! Place a unit and mark it as "Player". Aucune unité joueur disponible ! Placez une unité et marquez la en tant que "joueur". プレイヤー ユニットがありません!ユニットを設置しそれを"Player"と名付けてください。 + 플레이어 유닛을 사용할 수 없습니다! 유닛을 놓고 "플레이어"라고 표시하십시오. No loadouts to import. Aucun loadout à importer. 取り込みする装備がありません。 + 가져올 로드 아웃이 없습니다. ACE Arsenal ACE-Arsenal ACE 武器庫 + ACE 아스날 Return to ACE Arsenal. Zurück zum ACE-Arsenal. ACE 武器庫へ戻ります。 + ACE 아스날로 돌아가기 Use ACE Arsenal to try out different weapons and equipment. Verwende ACE-Arsenal und sieh dir verschiedene Waffen und Ausrüstung an und probiere sie aus. さまざまな武器と装備を試せるよう ACE 武器庫を使用します。 + ACE Arsenal을 사용하여 다른 무기와 장비를 시험해보십시오. Try weapons and equipment and create your own loadouts. Probiere verschiedene Waffen und Ausrüstung aus und stelle dir eigene Ausrüstungsprofile zusammen. さまざまな武器と装備を試して、あなただけの装備を作成してください。 + 무기와 장비를 사용해보고 자신의 로드아웃을 만듭니다. Open the loadouts screen diff --git a/addons/captives/stringtable.xml b/addons/captives/stringtable.xml index 5e05def185..bf08c2a848 100644 --- a/addons/captives/stringtable.xml +++ b/addons/captives/stringtable.xml @@ -8,6 +8,7 @@ 俘虜 俘虏 捕虜 + 포로설정 Take Prisoner diff --git a/addons/common/stringtable.xml b/addons/common/stringtable.xml index a7cdc012fa..eadd8d580f 100644 --- a/addons/common/stringtable.xml +++ b/addons/common/stringtable.xml @@ -8,6 +8,7 @@ 全般 通用 通用 + 일반 ACE-Team @@ -480,6 +481,7 @@ 檢查PBO動作 检查PBO动作 PBO 検査の挙動 + PBO 검사 Check PBO All @@ -487,6 +489,7 @@ 檢查所有PBO 检查所有PBO PBO 全てを検査 + 모든 PBO 검사 Check PBO Whitelist @@ -494,6 +497,7 @@ 檢查PBO白名單 检查PBO白名单 許可リスト内の PBO を検査 + 검사 제외 PBO Feedback icons @@ -628,12 +632,14 @@ Автоматический ЛЦУ/тактический фонарь 武器のレーザー ポインタ/フラッシュライトの永続 Laser/torcia dell'arma costantemente accesi + 무기 레이저 포인터 / 손전등 지속 Enable gunlight after weapon switch or vehicle enter/exit if it was previously enabled. Включать ЛЦУ/тактический фонарь после смены оружия или входа/выхода из машины, если он был до этого включен. 銃のライト等を点けていると武器を切り替えた後や車両を乗り降りしても、ライト等を点けたままにします。 Abilita la torcia/laser dopo il cambio dell'arma o l'entrata/uscita del veicolo se precedentemente attiva. + 무기를 바꾸거나 차량에 승하차 할 때 이전에 스위치 켜고 끔을 유지합니다. Banana @@ -1154,10 +1160,12 @@ Allow turning down music Erlaube Musik leiser stellen + 음악 끄기 허용 Allow ACE scripts to turn down the music. Erlaube ACE-Skripten, die Musik leiser zu stellen. + ACE 스크립트가 음악을 끌 수 있습니다. diff --git a/addons/cookoff/stringtable.xml b/addons/cookoff/stringtable.xml index 79db993245..17765c0f05 100644 --- a/addons/cookoff/stringtable.xml +++ b/addons/cookoff/stringtable.xml @@ -7,6 +7,7 @@ 殉爆效果 殉爆效果 誘爆 + 쿡오프 Enable cook off @@ -120,11 +121,13 @@ Cook-off probability coefficient 誘爆の可能性係数 Coefficiente probabilità esplosione + 쿡오프 확률 계수 Multiplier for cook-off probability. Higher value results in higher cook-off probability 誘爆する可能性の乗数。高い値では誘爆する可能性が高まります。 Moltiplicatore per la probabilità dell'esplosione. Un valore più alto aumenta la probabilità dell'esplosione + 쿡오프 확률에 대한 승수. 값이 높을수록 확률이 높아집니다. diff --git a/addons/finger/stringtable.xml b/addons/finger/stringtable.xml index 72f0b67d55..bdd846b8b1 100644 --- a/addons/finger/stringtable.xml +++ b/addons/finger/stringtable.xml @@ -8,6 +8,7 @@ 指向指示器 指向指示器 指差し + 가리키기 Show pointing indicator to self diff --git a/addons/goggles/stringtable.xml b/addons/goggles/stringtable.xml index 44d0328726..4c796c6ecc 100644 --- a/addons/goggles/stringtable.xml +++ b/addons/goggles/stringtable.xml @@ -8,6 +8,7 @@ 護目鏡 护目镜 ゴーグル + 고글 Show Goggle Effects in Third Person diff --git a/addons/hitreactions/stringtable.xml b/addons/hitreactions/stringtable.xml index 01f344741b..c9669b3d06 100644 --- a/addons/hitreactions/stringtable.xml +++ b/addons/hitreactions/stringtable.xml @@ -7,6 +7,7 @@ 觸發倒下前最低需受到多少傷害 触发倒下前最低需受到多少伤害 崩れ落ちるまでの最低損傷値 + 방아쇠를 당기는 최소한의 피해 diff --git a/addons/interaction/stringtable.xml b/addons/interaction/stringtable.xml index f1aa5944d0..e573242418 100644 --- a/addons/interaction/stringtable.xml +++ b/addons/interaction/stringtable.xml @@ -8,6 +8,7 @@ 互動 互动 インタラクション + 상호작용 Interactions @@ -1079,6 +1080,7 @@ Вытащить тело 身体を引き出す Estrai il corpo + 시체 끌기 diff --git a/addons/magazinerepack/stringtable.xml b/addons/magazinerepack/stringtable.xml index 23dc18c3fd..2ae06d02e1 100644 --- a/addons/magazinerepack/stringtable.xml +++ b/addons/magazinerepack/stringtable.xml @@ -7,6 +7,7 @@ 重新整理彈匣 重新整理弹匣 弾倉詰め替え + 탄약 채우기 Time per round @@ -15,6 +16,7 @@ 每發所需時間 每发所需时间 弾頭毎の所有時間 + 구경 당 시간 Time per magazine @@ -23,6 +25,7 @@ 每匣所需時間 每匣所需时间 弾倉毎の所有時間 + 탄창 당 시간 Time per belt link @@ -31,6 +34,7 @@ 每彈鍊所需時間 每弹炼所需时间 ベルトリンク毎の所有時間 + 탄약띠 당 시간 Repack Magazines diff --git a/addons/markers/stringtable.xml b/addons/markers/stringtable.xml index 8ba897c76a..b23462ba46 100644 --- a/addons/markers/stringtable.xml +++ b/addons/markers/stringtable.xml @@ -30,16 +30,19 @@ Allow moving markers for Erlaube Marker zu bewegen für 次ユーザーにマーカー移動を許可 + 마커 이동 허가 Restricts which players are able to move markers while holding the Alt key. Beschränkt welche Spieler Marker mit gedrückter Alt-Taste bewegen können. どのプレイヤーが Alt キーを押しながらマーカー移動をさせられるか制限できます。 + Alt 키를 누른 상태에서 마커를 움직일 수있는 플레이어를 제한합니다. Nobody Niemand 不許可 + 비활성 All players diff --git a/addons/maverick/stringtable.xml b/addons/maverick/stringtable.xml index 32d00eabb7..5233f7bf2f 100644 --- a/addons/maverick/stringtable.xml +++ b/addons/maverick/stringtable.xml @@ -50,11 +50,13 @@ Kh-25ML, Laser Guided Air-to-Ground-Missile Ch-25ML, Lasergelenkte Luft-Boden-Rakete + Kh-25ML, 레이저 유도 대공 미사일 1x Kh-25ML [ACE] 1x Ch-25ML [ACE] 1x Х-25МЛ [ACE] + 1x Kh-25ML [ACE] @@ -69,8 +71,9 @@ Kh-25ML - Ch-25ML - Х-25МЛ + Ch-25ML + Х-25МЛ + Kh-25ML diff --git a/addons/scopes/stringtable.xml b/addons/scopes/stringtable.xml index 855b364ee5..aac4152678 100644 --- a/addons/scopes/stringtable.xml +++ b/addons/scopes/stringtable.xml @@ -217,6 +217,7 @@ 使用舊版介面 使用旧版介面 昔の UI を使用 + 기존 UI 사용 Displays elevation and windage with signed numbers @@ -225,18 +226,21 @@ 使用帶著標籤的數字顯示歸零遠近與風偏程度 使用带着标签的数字显示归零远近与风偏程度 印付きの数字で仰角と横風を表示 + 기존의 부호가 있는 숫자로 표고와 폭을 표시합니다. Simplified zeroing Vereinfachte Nullung 簡略なゼロイン Azzeramento semplificato + 단순화 된 영점 조정 Replicates the vanilla zeroing system for riflescopes. Repliziert das Vanilla-Zeroing-System für Zielfernrohre. 標準で使われるライフルスコープ用のゼロイン システムを複製します。 Replica il sistema di azzeramento vanilla per le ottiche. + 라이플스코프 용 바닐라 영점조정 시스템을 복제합니다. Minor adjustment up @@ -387,6 +391,7 @@ Nullung zurücksetzen ゼロイン調節を初期化 Resetta i valori dell'azzeramento + 영점 조정 재설정 This module adds windage and elevation adjustment turrets on high power rifle scopes. @@ -407,6 +412,7 @@ %1D %1D %1D + %1D %1L @@ -416,6 +422,7 @@ %1L %1L %1L + %1L %1R @@ -425,6 +432,7 @@ %1R %1R %1R + %1R diff --git a/addons/spectator/stringtable.xml b/addons/spectator/stringtable.xml index 6efe569ec8..fe6caacb1f 100644 --- a/addons/spectator/stringtable.xml +++ b/addons/spectator/stringtable.xml @@ -8,6 +8,7 @@ 旁觀者 旁观者 スペクテイター + 관전자 ACE Spectator diff --git a/addons/switchunits/stringtable.xml b/addons/switchunits/stringtable.xml index cf222f5804..b06b4b93fd 100644 --- a/addons/switchunits/stringtable.xml +++ b/addons/switchunits/stringtable.xml @@ -7,6 +7,7 @@ 切換單位 切换单位 ユニット切り替え + 병력 전환 Switched unit diff --git a/addons/vehiclelock/stringtable.xml b/addons/vehiclelock/stringtable.xml index 60563b8935..50c139634d 100644 --- a/addons/vehiclelock/stringtable.xml +++ b/addons/vehiclelock/stringtable.xml @@ -7,6 +7,7 @@ 載具上鎖 载具上锁 車両の施錠 + 차량 잠금 Unlock Vehicle diff --git a/addons/weather/stringtable.xml b/addons/weather/stringtable.xml index 58ef756d64..12ef0dc630 100644 --- a/addons/weather/stringtable.xml +++ b/addons/weather/stringtable.xml @@ -88,6 +88,7 @@ 透過增加濕度、溫度與氣壓來增強天氣模擬的表現。 透过增加湿度、温度与气压来增强天气模拟的表现。 気温や湿度、大気圧によって既存の天候を拡張します。 + 온도, 습도 및 기압에 따라 기존 날씨를 확장합니다. Update Interval @@ -128,6 +129,7 @@ 風力模擬(基於地圖) 风力模拟(基于地图) 風シミュレーション (マップを基に) + 바람 시뮬레이션 (지도 기반) Enables the map based wind simulation (overwrites vanilla wind) @@ -136,6 +138,7 @@ 啟用後將遵照地圖特色進行風力模擬(覆蓋掉官方原版的風力模擬) 启用后将遵照地图特色进行风力模拟(覆盖掉官方原版的风力模拟) マップを基にした風シミュレーションを有効化 (標準の風を上書き) + 지도 기반의 바람 시뮬레이션을 활성화합니다 (바닐라 바람을 덮음) diff --git a/addons/zeus/stringtable.xml b/addons/zeus/stringtable.xml index c14d2fab71..7b34b84039 100644 --- a/addons/zeus/stringtable.xml +++ b/addons/zeus/stringtable.xml @@ -7,6 +7,7 @@ 宙斯 宙斯 Zeus + 제우스 Zeus Settings diff --git a/optionals/compat_adr_97/stringtable.xml b/optionals/compat_adr_97/stringtable.xml index 02d76d08e2..f4c39d6205 100644 --- a/optionals/compat_adr_97/stringtable.xml +++ b/optionals/compat_adr_97/stringtable.xml @@ -15,6 +15,7 @@ P90 TR (黒) P90 TR (黑色) P90 TR (黑色) + P90 TR (Black) P90 TR (Khaki) @@ -30,6 +31,7 @@ P90 TR (土埃) P90 TR (沙色) P90 TR (沙色) + P90 TR (Khaki) P90 TR (Camo) @@ -45,6 +47,7 @@ P90 TR (迷彩) P90 TR (迷彩) P90 TR (迷彩) + P90 TR (Camo) P90 TR (Hex) @@ -60,6 +63,7 @@ P90 TR (蜂巣) P90 TR (數位蜂巢迷彩) P90 TR (数位蜂巢迷彩) + P90 TR (Hex) P90 (Black) @@ -75,6 +79,7 @@ P90 (黒) P90 (黑色) P90 (黑色) + P90 (Black) P90 (Khaki) @@ -90,6 +95,7 @@ P90 (土埃) P90 (沙色) P90 (沙色) + P90 (Khaki) P90 (Camo) @@ -105,6 +111,7 @@ P90 (迷彩) P90 (迷彩) P90 (迷彩) + P90 (Camo) P90 (Hex) @@ -120,6 +127,7 @@ P90 (蜂巣) P90 (數位蜂巢迷彩) P90 (数位蜂巢迷彩) + P90 (Hex) PS90 TR (Black) @@ -135,6 +143,7 @@ PS90 TR (黒) PS90 TR (黑色) PS90 TR (黑色) + PS90 TR (Black) PS90 TR (Khaki) @@ -150,6 +159,7 @@ PS90 TR (土埃) PS90 TR (沙色) PS90 TR (沙色) + PS90 TR (Khaki) PS90 TR (Camo) @@ -165,6 +175,7 @@ PS90 TR (迷彩) PS90 TR (迷彩) PS90 TR (迷彩) + PS90 TR (Camo) PS90 TR (Hex) @@ -180,6 +191,7 @@ PS90 TR (蜂巣) PS90 TR (數位蜂巢迷彩) PS90 TR (数位蜂巢迷彩) + PS90 TR (Hex) PS90 (Black) @@ -195,6 +207,7 @@ PS90 (黒) PS90 (黑色) PS90 (黑色) + PS90 (Black) PS90 (Khaki) @@ -210,6 +223,7 @@ PS90 (土埃) PS90 (沙色) PS90 (沙色) + PS90 (Khaki) PS90 (Camo) @@ -225,6 +239,7 @@ PS90 (迷彩) PS90 (迷彩) PS90 (迷彩) + PS90 (Camo) PS90 (Hex) @@ -240,6 +255,7 @@ PS90 (蜂巣) PS90 (數位蜂巢迷彩) PS90 (数位蜂巢迷彩) + PS90 (Hex) 5.7mm 50Rnd Mag @@ -255,6 +271,7 @@ 5.7mm 50 発入り弾倉 5.7mm 50發 彈匣 5.7mm 50发 弹匣 + 5.7mm 50Rnd Mag Caliber: 5.7mm<br />Rounds: 50<br />Used in: P90 @@ -270,6 +287,7 @@ 口径: 5.7mm<br />装弾数: 50<br />次で使用: P90 口徑: 5.7mm<br />發數: 50<br />使用於: P90 口径: 5.7mm<br />发数: 50<br />使用于: P90 + 구경: 5.7mm<br />장탄수: 50<br />사용됨: P90 From b30e188d1aa1fcf0f758a035d1a02796e29934a5 Mon Sep 17 00:00:00 2001 From: mharis001 <34453221+mharis001@users.noreply.github.com> Date: Sun, 28 Jan 2018 16:50:28 -0500 Subject: [PATCH 011/235] Change ace_map settings to use CBA init directly (#5984) * Make default channel setting a list * Convert more map settings to CBA * Give BFT settings own category * Remove '?' from end of setting display names * Fix mistake of ACE_Settings removal (movedToSQF = 1) * Move settings to initSettings.sqf --- AUTHORS.txt | 1 + addons/map/ACE_Settings.hpp | 62 +++---------- addons/map/XEH_preInit.sqf | 2 + addons/map/initSettings.sqf | 90 +++++++++++++++++++ addons/map/stringtable.xml | 172 ++++++++++++++++++------------------ 5 files changed, 189 insertions(+), 138 deletions(-) create mode 100644 addons/map/initSettings.sqf diff --git a/AUTHORS.txt b/AUTHORS.txt index 56fcc91683..378419fcdb 100644 --- a/AUTHORS.txt +++ b/AUTHORS.txt @@ -102,6 +102,7 @@ Luigi "Luigium" Myrini Macusercom MarcBook meat +mharis001 Michail Nikolaev MikeMatrix nic547 diff --git a/addons/map/ACE_Settings.hpp b/addons/map/ACE_Settings.hpp index 591ec24116..a9702aebba 100644 --- a/addons/map/ACE_Settings.hpp +++ b/addons/map/ACE_Settings.hpp @@ -1,74 +1,32 @@ class ACE_Settings { class GVAR(BFT_Interval) { - category = CSTRING(Module_DisplayName); - value = 1.0; - typeName = "SCALAR"; - displayName = CSTRING(BFT_Interval_DisplayName); - description = CSTRING(BFT_Interval_Description); - sliderSettings[] = {0, 30, 1, 1}; + movedToSQF = 1; }; class GVAR(BFT_Enabled) { - category = CSTRING(Module_DisplayName); - value = 0; - typeName = "BOOL"; - displayName = CSTRING(BFT_Enabled_DisplayName); - description = CSTRING(BFT_Enabled_Description); + movedToSQF = 1; }; class GVAR(BFT_HideAiGroups) { - category = CSTRING(Module_DisplayName); - value = 0; - typeName = "BOOL"; - displayName = CSTRING(BFT_HideAiGroups_DisplayName); - description = CSTRING(BFT_HideAiGroups_Description); + movedToSQF = 1; }; class GVAR(BFT_ShowPlayerNames) { - category = CSTRING(Module_DisplayName); - value = 0; - typeName = "BOOL"; - displayName = CSTRING(BFT_ShowPlayerNames_DisplayName); - description = CSTRING(BFT_ShowPlayerNames_Description); + movedToSQF = 1; }; class GVAR(mapIllumination) { - category = CSTRING(Module_DisplayName); - value = 1; - typeName = "BOOL"; - displayName = CSTRING(MapIllumination_DisplayName); - description = CSTRING(MapIllumination_Description); + movedToSQF = 1; }; class GVAR(mapGlow) { - category = CSTRING(Module_DisplayName); - value = 1; - typeName = "BOOL"; - displayName = CSTRING(MapGlow_DisplayName); - description = CSTRING(MapGlow_Description); + movedToSQF = 1; }; class GVAR(mapShake) { - category = CSTRING(Module_DisplayName); - value = 1; - typeName = "BOOL"; - displayName = CSTRING(MapShake_DisplayName); - description = CSTRING(MapShake_Description); + movedToSQF = 1; }; class GVAR(mapLimitZoom) { - category = CSTRING(Module_DisplayName); - value = 0; - typeName = "BOOL"; - displayName = CSTRING(MapLimitZoom_DisplayName); - description = CSTRING(MapLimitZoom_Description); + movedToSQF = 1; }; class GVAR(mapShowCursorCoordinates) { - category = CSTRING(Module_DisplayName); - value = 0; - typeName = "BOOL"; - displayName = CSTRING(MapShowCursorCoordinates_DisplayName); - description = CSTRING(MapShowCursorCoordinates_Description); + movedToSQF = 1; }; class GVAR(defaultChannel) { - category = CSTRING(Module_DisplayName); - value = -1; - typeName = "SCALAR"; - displayName = CSTRING(DefaultChannel_DisplayName); - description = CSTRING(DefaultChannel_Description); - sliderSettings[] = {-1, 5, -1, -1}; + movedToSQF = 1; }; }; diff --git a/addons/map/XEH_preInit.sqf b/addons/map/XEH_preInit.sqf index 7fe826a174..92a7e896f3 100644 --- a/addons/map/XEH_preInit.sqf +++ b/addons/map/XEH_preInit.sqf @@ -7,4 +7,6 @@ PREP_RECOMPILE_START; #include "XEH_PREP.hpp" PREP_RECOMPILE_END; +#include "initSettings.sqf" + ADDON = true; diff --git a/addons/map/initSettings.sqf b/addons/map/initSettings.sqf new file mode 100644 index 0000000000..1a72c6c90b --- /dev/null +++ b/addons/map/initSettings.sqf @@ -0,0 +1,90 @@ +[ + QGVAR(mapIllumination), + "CHECKBOX", + [localize LSTRING(MapIllumination_DisplayName), localize LSTRING(MapIllumination_Description)], + format["ACE %1", localize LSTRING(Module_DisplayName)], + true, + true +] call CBA_settings_fnc_init; + +[ + QGVAR(mapGlow), + "CHECKBOX", + [localize LSTRING(MapGlow_DisplayName), localize LSTRING(MapGlow_Description)], + format["ACE %1", localize LSTRING(Module_DisplayName)], + true, + true +] call CBA_settings_fnc_init; + +[ + QGVAR(mapShake), + "CHECKBOX", + [localize LSTRING(MapShake_DisplayName), localize LSTRING(MapShake_Description)], + format["ACE %1", localize LSTRING(Module_DisplayName)], + true, + true +] call CBA_settings_fnc_init; + +[ + QGVAR(mapLimitZoom), + "CHECKBOX", + [localize LSTRING(MapLimitZoom_DisplayName), localize LSTRING(MapLimitZoom_Description)], + format["ACE %1", localize LSTRING(Module_DisplayName)], + false, + true +] call CBA_settings_fnc_init; + +[ + QGVAR(mapShowCursorCoordinates), + "CHECKBOX", + [localize LSTRING(MapShowCursorCoordinates_DisplayName), localize LSTRING(MapShowCursorCoordinates_Description)], + format["ACE %1", localize LSTRING(Module_DisplayName)], + false, + true +] call CBA_settings_fnc_init; + +[ + QGVAR(DefaultChannel), + "LIST", + [localize LSTRING(DefaultChannel_DisplayName), localize LSTRING(DefaultChannel_Description)], + format["ACE %1", localize LSTRING(Module_DisplayName)], + [[-1, 0, 1, 2, 3, 4, 5], [ELSTRING(common,Disabled), "STR_channel_global", "STR_channel_side", "STR_channel_command", "STR_channel_group", "STR_channel_vehicle", "STR_channel_direct"], 0], + true +] call CBA_settings_fnc_init; + +// Blue Force Tracking +[ + QGVAR(BFT_Enabled), + "CHECKBOX", + [localize LSTRING(BFT_Enabled_DisplayName), localize LSTRING(BFT_Enabled_Description)], + format ["ACE %1", localize LSTRING(BFT_Module_DisplayName)], + false, + true +] call CBA_settings_fnc_init; + +[ + QGVAR(BFT_Interval), + "SLIDER", + [localize LSTRING(BFT_Interval_DisplayName), localize LSTRING(BFT_Interval_Description)], + format ["ACE %1", localize LSTRING(BFT_Module_DisplayName)], + [0, 30, 1, 1], + true +] call CBA_settings_fnc_init; + +[ + QGVAR(BFT_ShowPlayerNames), + "CHECKBOX", + [localize LSTRING(BFT_ShowPlayerNames_DisplayName), localize LSTRING(BFT_ShowPlayerNames_Description)], + format ["ACE %1", localize LSTRING(BFT_Module_DisplayName)], + false, + true +] call CBA_settings_fnc_init; + +[ + QGVAR(BFT_HideAiGroups), + "CHECKBOX", + [localize LSTRING(BFT_HideAiGroups_DisplayName), localize LSTRING(BFT_HideAiGroups_Description)], + format ["ACE %1", localize LSTRING(BFT_Module_DisplayName)], + false, + true +] call CBA_settings_fnc_init; diff --git a/addons/map/stringtable.xml b/addons/map/stringtable.xml index eab4549f75..c99c7c6f76 100644 --- a/addons/map/stringtable.xml +++ b/addons/map/stringtable.xml @@ -18,20 +18,20 @@ 地圖 - Map illumination? + Map illumination Kartenbeleuchtung Oświetlenie mapy - ¿Iluminación de mapa? + ¿Iluminación de mapa Osvětlení mapy - Iluminação do mapa? - Illumination de la carte ? - Térkép megvilágítása? - Освещение карты? - Illuminazione Mappa? - 地図に照明? - 지도에 조명? - 地图照明? - 地圖照明? + Iluminação do mapa + Illumination de la carte + Térkép megvilágítása + Освещение карты + Illuminazione Mappa + 地図に照明 + 지도에 조명 + 地图照明 + 地圖照明 Simulate map lighting based on ambient lighting and player's items? @@ -49,19 +49,19 @@ 透過環境光與玩家的物品來決定地圖亮度? - Map flashlight glow? + Map flashlight glow Kartenbeleuchtung durch Dritte erkennbar Poświata latarki - Свет фонаря на карте? - Brilho de lanterna no mapa? - Resplandor de linterna en el mapa? - Nasvícení mapy pomocí baterky? - Luce della torcia in mappa? - Lumière de la lampe de carte ? - 地図をライトで照らしますか? - 지도 조명이 빛이 납니까? - 增加地图亮度? - 增加地圖亮度? + Свет фонаря на карте + Brilho de lanterna no mapa + Resplandor de linterna en el mapa + Nasvícení mapy pomocí baterky + Luce della torcia in mappa + Lumière de la lampe de carte + 地図をライトで照らしますか + 지도 조명이 빛이 납니까 + 增加地图亮度 + 增加地圖亮度 Add external glow to players who use flashlight on map? @@ -79,20 +79,20 @@ 當玩家擁有手電筒時,增加地圖亮度? - Map shake? + Map shake Drżenie mapy - ¿Temblor de mapa? + ¿Temblor de mapa Kamerawackeln - Třesení mapy? - Tremor de mapa? - Tremblement de la carte ? - Térkép-rázkódás? - Тряска карты? - Scuoti la mappa? - 地図を揺らしますか? - 지도 흔들림? - 地图震动? - 地圖震動? + Třesení mapy + Tremor de mapa + Tremblement de la carte + Térkép-rázkódás + Тряска карты + Scuoti la mappa + 地図を揺らしますか + 지도 흔들림 + 地图震动 + 地圖震動 Make map shake when walking? @@ -111,20 +111,20 @@ 走路時讓地圖有震動的感覺? - Limit map zoom? + Limit map zoom Ograniczony zoom - ¿Limitar el zoom de mapa? + ¿Limitar el zoom de mapa Kartenvergrößerung einschränken - Omezit přiblížení mapy? - Limitar zoom do mapa? - Limiter le zoom de la carte ? - Térkép-nagyítás korlátozása? - Ограничить приближение карты? - Limita lo zoom in mappa? - 地図の拡大を制限しますか? - 지도 확대 제한? - 限制地图缩放倍率? - 限制地圖縮放倍率? + Omezit přiblížení mapy + Limitar zoom do mapa + Limiter le zoom de la carte + Térkép-nagyítás korlátozása + Ограничить приближение карты + Limita lo zoom in mappa + 地図の拡大を制限しますか + 지도 확대 제한 + 限制地图缩放倍率 + 限制地圖縮放倍率 Limit the amount of zoom available for the map? @@ -143,20 +143,20 @@ 限制地圖上可允許縮放的倍率? - Show cursor coordinates? + Show cursor coordinates Koordynaty pod kursorem - ¿Mostrar coordenadas de cursor? - Zeige Mauszeiger-Koordinaten? - Zobrazit souřadnice u kurzoru? - Mostrar coordenadas no cursor? - Afficher les coordonnées sur le curseur ? - Kurzor-koordináták mutatása? - Показывать координаты курсора? - Mostra coordinate sul cursore? - カーソル先で座標を表示しますか? - 커서에 좌표를 보이게 합니까? - 显示游标的座标? - 顯示游標的座標? + ¿Mostrar coordenadas de cursor + Zeige Mauszeiger-Koordinaten + Zobrazit souřadnice u kurzoru + Mostrar coordenadas no cursor + Afficher les coordonnées sur le curseur + Kurzor-koordináták mutatása + Показывать координаты курсора + Mostra coordinate sul cursore + カーソル先で座標を表示しますか + 커서에 좌표를 보이게 합니까 + 显示游标的座标 + 顯示游標的座標 Show the grid coordinates on the mouse pointer? @@ -271,20 +271,20 @@ 設定每多少時間重新標示出單位位置 (秒) - Hide AI groups? + Hide AI groups Ukryj grupy AI - ¿Ocultar grupos de IA? - KI-Gruppen verstecken? - Skrýt AI skupiny? - Esconder grupos de IA? - Cacher les groupes d'IA ? - AI csoportok elrejtése? - Скрыть группы ботов? - Nascondere gruppi IA? - AI グループを非表示にしますか? - 인공지능 그룹을 숨깁니까? - 隐藏AI小队? - 隱藏AI小隊? + ¿Ocultar grupos de IA + KI-Gruppen verstecken + Skrýt AI skupiny + Esconder grupos de IA + Cacher les groupes d'IA + AI csoportok elrejtése + Скрыть группы ботов + Nascondere gruppi IA + AI グループを非表示にしますか + 인공지능 그룹을 숨깁니까 + 隐藏AI小队 + 隱藏AI小隊 Hide markers for 'AI only' groups? @@ -303,20 +303,20 @@ 隱藏'AI小隊'的蹤跡? - Show player names? - Pokaż imiona graczy? - Mostrar nombres de los jugadores? - Zeigen Sie die Namen der Spieler? - Zobrazit jména hráčů? - Mostrar os nomes dos jogadores? - Afficher les noms des joueurs ? - Itt található az a játékos nevét? - Показать имена игроков? - Mostra i nomi dei giocatori? - プレイヤ名を表示しますか? - 플레이어 이름을 표시합니까? - 显示玩家名称? - 顯示玩家名稱? + Show player names + Pokaż imiona graczy + Mostrar nombres de los jugadores + Zeigen Sie die Namen der Spieler + Zobrazit jména hráčů + Mostrar os nomes dos jogadores + Afficher les noms des joueurs + Itt található az a játékos nevét + Показать имена игроков + Mostra i nomi dei giocatori + プレイヤ名を表示しますか + 플레이어 이름을 표시합니까 + 显示玩家名称 + 顯示玩家名稱 Show individual player names? From 4857294510b6d95c3f9d8a85592583be1ae6bbe7 Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Tue, 30 Jan 2018 10:54:34 -0600 Subject: [PATCH 012/235] Advanced Throwing - Disable when controlling UAV (#6092) Close #6069 --- addons/advanced_throwing/functions/fnc_canPrepare.sqf | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/addons/advanced_throwing/functions/fnc_canPrepare.sqf b/addons/advanced_throwing/functions/fnc_canPrepare.sqf index c95ec39c49..3c3d3e47b7 100644 --- a/addons/advanced_throwing/functions/fnc_canPrepare.sqf +++ b/addons/advanced_throwing/functions/fnc_canPrepare.sqf @@ -35,4 +35,5 @@ GVAR(enabled) && {[_unit, objNull, ["isNotInside", "isNotSwimming", "isNotSitting"/*, "isNotOnLadder"*/]] call EFUNC(common,canInteractWith)} && // Ladder needs positioning fixes on throw {_unit call CBA_fnc_canUseWeapon} && // Disable in non-FFV seats due to surface detection issues {"" == currentWeapon _unit || {currentWeapon _unit != secondaryWeapon _unit}} && -{0 >= _unit getVariable [QEGVAR(common,effect_blockThrow), 0]} +{0 >= _unit getVariable [QEGVAR(common,effect_blockThrow), 0]} && +{isNull (ACE_controlledUAV select 0)} From 1b6dc5ae2dafd51bddd0838db74711c517d7738f Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Tue, 30 Jan 2018 21:50:24 -0600 Subject: [PATCH 013/235] HuntIR - Fix connecting when ammo is null (#6099) Fix #6093 `[_nearestHuntIRs select 0] call FUNC(cam);` would pass nill Also delay opening GUI for a frame to prevent issue with interaction menu --- addons/huntir/CfgVehicles.hpp | 2 +- addons/huntir/functions/fnc_huntir.sqf | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/addons/huntir/CfgVehicles.hpp b/addons/huntir/CfgVehicles.hpp index cd5054a2da..99ca6f69a3 100644 --- a/addons/huntir/CfgVehicles.hpp +++ b/addons/huntir/CfgVehicles.hpp @@ -7,7 +7,7 @@ class CfgVehicles { class GVAR(open) { displayName = CSTRING(activateMonitor); condition = QUOTE([ARR_2(ACE_player,'ACE_HuntIR_monitor')] call EFUNC(common,hasItem)); - statement = QUOTE(call FUNC(huntir)); + statement = QUOTE([FUNC(huntir)] call CBA_fnc_execNextFrame;); showDisabled = 0; priority = 2; icon = QPATHTOF(UI\w_huntir_monitor_ca.paa); diff --git a/addons/huntir/functions/fnc_huntir.sqf b/addons/huntir/functions/fnc_huntir.sqf index 8f92dce745..075e2a9e6a 100644 --- a/addons/huntir/functions/fnc_huntir.sqf +++ b/addons/huntir/functions/fnc_huntir.sqf @@ -49,6 +49,14 @@ createDialog QGVAR(cam_dialog_off); private _elapsedTime = CBA_missionTime - GVAR(startTime); private _nearestHuntIRs = ACE_player nearEntities ["ACE_HuntIR", HUNTIR_MAX_TRANSMISSION_RANGE]; + if ((GVAR(state) in ["connecting", "connected"]) && {_nearestHuntIRs isEqualTo []}) then { + TRACE_1("reseting back to search because no valid ammo exists anymore",GVAR(state)); + GVAR(state) = "searching"; + GVAR(done) = false; + GVAR(message) = []; + GVAR(connectionDelay) = 5; + }; + if ((!dialog) || GVAR(done)) exitWith { [_this select 1] call CBA_fnc_removePerFrameHandler; From db93a42891d0198feaa071e74a1b2f828932f960 Mon Sep 17 00:00:00 2001 From: Jo David Date: Wed, 31 Jan 2018 23:19:28 +0100 Subject: [PATCH 014/235] add muffling to new LOW headsets (#6106) --- addons/hearing/CfgWeapons.hpp | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/addons/hearing/CfgWeapons.hpp b/addons/hearing/CfgWeapons.hpp index 85d941909a..cba35e403e 100644 --- a/addons/hearing/CfgWeapons.hpp +++ b/addons/hearing/CfgWeapons.hpp @@ -40,6 +40,22 @@ class CfgWeapons { HEARING_PROTECTION_EARMUFF }; + class H_Construction_earprot_base_F: HelmetBase { + HEARING_PROTECTION_EARMUFF + }; + + class H_Construction_headset_base_F: HelmetBase { + HEARING_PROTECTION_EARMUFF + }; + + class H_EarProtectors_base_F: HelmetBase { + HEARING_PROTECTION_EARMUFF + }; + + class H_HeadSet_base_F: HelmetBase { + HEARING_PROTECTION_EARMUFF + }; + class H_HelmetB_light: H_HelmetB { HEARING_PROTECTION_PELTOR }; From 4258b9a6d6ffeaf28f5560ea8df96b4278bff1ae Mon Sep 17 00:00:00 2001 From: BrenSilent Date: Thu, 1 Feb 2018 19:09:11 +0100 Subject: [PATCH 015/235] [German Translation] Update for new Settingsmenu (#6015) (#6016) * German translation update This updates partially the german translation for the new cba settings UI * Fix tooltipp Fixes the tooltipp for the safezone when switching units * Fixes Various fixes after review * Missed two Fix in stringtable for arsenal * Gonna catch em all Another small mistake i missed. --- addons/arsenal/stringtable.xml | 11 ++++++++++- addons/common/stringtable.xml | 4 +++- addons/cookoff/stringtable.xml | 21 +++++++++++---------- addons/finger/stringtable.xml | 2 +- addons/gforces/stringtable.xml | 4 ++-- addons/hitreactions/stringtable.xml | 1 + addons/interaction/stringtable.xml | 2 +- addons/map/stringtable.xml | 4 ++-- addons/nightvision/stringtable.xml | 6 ++++++ addons/pylons/stringtable.xml | 22 ++++++++++++++++++++++ addons/rearm/stringtable.xml | 6 +++--- addons/repair/stringtable.xml | 4 ++-- addons/spectator/stringtable.xml | 2 +- addons/switchunits/stringtable.xml | 29 +++++++++++++++-------------- addons/tagging/stringtable.xml | 6 +++--- addons/vehiclelock/stringtable.xml | 1 + 16 files changed, 84 insertions(+), 41 deletions(-) diff --git a/addons/arsenal/stringtable.xml b/addons/arsenal/stringtable.xml index 91650bff8b..e4c19a07b4 100644 --- a/addons/arsenal/stringtable.xml +++ b/addons/arsenal/stringtable.xml @@ -400,7 +400,7 @@ Allow default loadouts Activer l'onglet équipement de base - Erlaubt die Benutzung des Standard-Ausrüstungen-Reiters + Erlaubt die Benutzung der Standardausrüstungen Zezwól na użycie domyślnych zestawów 標準の装備を許可 Consenti equipaggiamenti standard @@ -431,6 +431,7 @@ プライマリ弾倉 Caricatore primario 주무기 탄약 + Primärmagazin Secondary magazine @@ -439,6 +440,7 @@ セカンダリ弾倉 Caricatore secondario 보조무기 탄약 + Sekundärmagazin ACE Arsenal @@ -456,6 +458,7 @@ 標準の装備タブの使用を許可します Consenti l'uso della sezione per gli equipaggiamenti standard 기본 로드아웃 탭 사용 허가 + Erlaube die Nutzung des Standardausrüstungsreiters Show / hide mod icons for the left panel @@ -464,6 +467,7 @@ 左パネルにある MOD アイコンの表示 / 非表示をします Mostra / nascondi le icone delle mod dal pannello sinistro 왼쪽 패널의 모드 아이콘 표시 / 숨기기 + Zeigt/Versteckt Mod-Symbole in der linken Leiste Change the font height for text in the left / right panels @@ -472,6 +476,7 @@ 右か左パネルにあるフォントの高さを変更します。 Cambia l'altezza del font per il testo sul pannello sinistro / destro 왼쪽 / 오른쪽 패널 텍스트의 글꼴 높이 변경 + Ändert die Schriftgröße für die linke/rechte Leiste Log missing / unavailable items in the RPT @@ -480,6 +485,7 @@ PRT で欠落 / 利用不可アイテムを記録します Log mancante / oggetto non disponibile nell' RPT RPT에 누락 된 항목 / 사용할 수없는 항목 기록 + Fehlende Gegenstände werden in der RPT aufgezeichnet Unable to open ACE arsenal @@ -492,18 +498,21 @@ Import BI VA loadouts to ACE Arsenal Importe les loadouts de BI VA dans ACE Arsenal + Importiert die BI-VA-Ausrüstungen in das ACE-Arsenal 標準の VA 装備から ACE 武器庫へ取り込み 바닐라 로드아웃을 ace 아스날로 가져오기 No player unit available! Place a unit and mark it as "Player". Aucune unité joueur disponible ! Placez une unité et marquez la en tant que "joueur". + Keine Spielereinheit verfügbar. Setze eine Einheit und markiere sie als "Spieler". プレイヤー ユニットがありません!ユニットを設置しそれを"Player"と名付けてください。 플레이어 유닛을 사용할 수 없습니다! 유닛을 놓고 "플레이어"라고 표시하십시오. No loadouts to import. Aucun loadout à importer. + Keine Ausrüstungen zum Importieren 取り込みする装備がありません。 가져올 로드 아웃이 없습니다. diff --git a/addons/common/stringtable.xml b/addons/common/stringtable.xml index eadd8d580f..bbf71c4eea 100644 --- a/addons/common/stringtable.xml +++ b/addons/common/stringtable.xml @@ -613,7 +613,7 @@ The color of the text font from the ACE hints. This color is the default color for all text displayed through the ACE Hint system, if the hint text has no other color specified. - Wähle die Textfarbe für ACE-Hinweise. Die gewählte Farbe wird als Standartfarbe der Hinweise angezeigt, wenn der Hinweis selbst keine spezifische Farbe hat. + Wähle die Textfarbe für ACE-Hinweise. Die gewählte Farbe wird als Standardfarbe der Hinweise angezeigt, wenn der Hinweis selbst keine spezifische Farbe hat. El color del texto de las notificaciones del ACE. Este es el color predeterminado para todo el texto que se muestra a través del sistema de notificaciones del ACE, si el texto de notificación no tiene otro color especificado. Il colore del testo dei suggerimenti di ACE. Questo è il colore predefinito per tutto il testo mostrato dal sistema di suggerimenti di ACE quando il colore del testo non ha altro colore specificato. Цвет шрифта текста всплывающих подсказок АСЕ. Этот цвет является стандартным для всего текста, транслирующегося через систему подсказок АСЕ, если не установлено другого цвета для текста подсказок. @@ -633,6 +633,7 @@ 武器のレーザー ポインタ/フラッシュライトの永続 Laser/torcia dell'arma costantemente accesi 무기 레이저 포인터 / 손전등 지속 + Kontinuität des Laserpointers/Taktischen Lichts Enable gunlight after weapon switch or vehicle enter/exit if it was previously enabled. @@ -640,6 +641,7 @@ 銃のライト等を点けていると武器を切り替えた後や車両を乗り降りしても、ライト等を点けたままにします。 Abilita la torcia/laser dopo il cambio dell'arma o l'entrata/uscita del veicolo se precedentemente attiva. 무기를 바꾸거나 차량에 승하차 할 때 이전에 스위치 켜고 끔을 유지합니다. + Aktiviert Laserpointer/Taktisches Licht nach einem Waffenwechsel oder dem Auf-/Absitzen, falls es zuvor aktiv war. Banana diff --git a/addons/cookoff/stringtable.xml b/addons/cookoff/stringtable.xml index 17765c0f05..006c433146 100644 --- a/addons/cookoff/stringtable.xml +++ b/addons/cookoff/stringtable.xml @@ -8,10 +8,11 @@ 殉爆效果 誘爆 쿡오프 + Durchzündung Enable cook off - Selbstzündung ermöglichen + Durchzündung ermöglichen Povolit explozi munice Включить воспламенение 誘爆を有効化 @@ -24,7 +25,7 @@ Enables cook off and related vehicle destruction effects. - Ermöglicht Selbstzündung und zugehörige Fahrzeug-Zerstörungseffekte. + Ermöglicht Durchzündung und zugehörige Fahrzeug-Zerstörungseffekte. Povolí explozi munice a její následné ničivé efekty. Включает воспламенение и сопутствующие эффекты повреждения техники. 誘爆を有効化し、車両が誘爆によって破壊されていきます。 @@ -54,7 +55,7 @@ Enable ammo box cook off 弾薬箱に誘爆を有効化 - Selbstzündung für Munitionskisten ermöglichen + Durchzündung für Munitionskisten ermöglichen 탄약 상자 쿡오프 현상 활성화 Aktywuj samozapłon skrzyń z amunicją Cook-off caisses de munitions @@ -65,7 +66,7 @@ Enables cooking off of ammo boxes. 弾薬箱が誘爆するようになります。 - Ermöglicht Selbstzündung von Munitionskisten. + Ermöglicht Durchzündung von Munitionskisten. 탄약 상자에 쿡오프 현상을 적용합니다. Aktywuje samozapłon skrzyń z amunicją Active le cook-off sur toutes les caisses de munitions. @@ -76,7 +77,7 @@ Enable Ammunition cook off 弾薬の誘爆を有効化 - Selbstzündung für Munition ermöglichen + Durchzündung für Munition ermöglichen 탄약 쿡오프 현상 활성화 Aktywuj samozapłon amunicji Active le cook-off des munitions @@ -87,7 +88,7 @@ Enables Ammunition cook off. Fires ammunition projectiles while vehicle is on fire and has ammunition. 弾薬が誘爆します。車両が燃えると、搭載している弾薬が激しく燃え上がります。 - Ermöglicht Selbstzündung von Munition. Feuert Projektile der Munition ab, solange das Fahrzeug brennt und Munition besitzt. + Ermöglicht Durchzündung von Munition. Feuert Projektile der Munition ab, solange das Fahrzeug brennt und Munition besitzt. Aktywuje samozapłon amunicji. Wystrzeliwuje pociski podczas gdy pojazd płonie i posiada amunicję. Mets à feu les munitions lorsqu'un véhicule est en feu et contient des munitions. Abilita l'esplosione delle munizioni. Spara munizioni di proiettili quando il veicolo va a fuoco e contiene munizioni. @@ -97,7 +98,7 @@ Ammunition cook off duration - Munitionsselbstzündungdauer + Munitionsdurchzündungsdauer Czas trwania samozapłonu amunicji 弾薬の誘爆持続時間 Durée cook-off des munitions @@ -108,7 +109,7 @@ Multiplier for how long cook off lasts [Setting to 0 will disable ammo cookoff] - Faktor für die Munitionsselbstzündungdauer [0 zum Deaktivieren] + Faktor für die Munitionsdurchzündungsdauer [0 zum Deaktivieren] Multiplicateur de la durée du cook-off des munitions [Une valeur de 0 désactive l'effet] Mnożnik decydujący jak długo ma trwać samozapłon amunicji [Ustawienie na 0 spowoduje wyłącznie samozapłonu] 誘爆の持続時間を乗数で設定。[0 に設定で誘爆を無効化] @@ -121,13 +122,13 @@ Cook-off probability coefficient 誘爆の可能性係数 Coefficiente probabilità esplosione - 쿡오프 확률 계수 + Faktor für Wahrscheinlichkeit der Durchzündung Multiplier for cook-off probability. Higher value results in higher cook-off probability 誘爆する可能性の乗数。高い値では誘爆する可能性が高まります。 Moltiplicatore per la probabilità dell'esplosione. Un valore più alto aumenta la probabilità dell'esplosione - 쿡오프 확률에 대한 승수. 값이 높을수록 확률이 높아집니다. + Faktor für Wahrscheinlichkeit der Durchzündung. Ein höherer Wert führt zu höherer Durchzündungswahrscheinlichkeit. diff --git a/addons/finger/stringtable.xml b/addons/finger/stringtable.xml index bdd846b8b1..de566acb49 100644 --- a/addons/finger/stringtable.xml +++ b/addons/finger/stringtable.xml @@ -156,7 +156,7 @@ Max range between players to show the pointing indicator [default: 4 meters] - Maximale Reichweite zwischen Spielern, welche das Zeigesymbol des jeweils anderen sehen können. (Standart: 4 Meter) + Maximale Reichweite zwischen Spielern, welche das Zeigesymbol des jeweils anderen sehen können. (Standard: 4 Meter). Distance maximale entre joueurs pour afficher l'indicateur (défaut: 4 mètres) Określ dystans na jakim można wskazywać coś palcem innym graczom. [domyślnie: 4m] A maximális távolság, amelyben a közeli játékosoknak megjelenik az indikátor. [alapértelmezett: 4 méter] diff --git a/addons/gforces/stringtable.xml b/addons/gforces/stringtable.xml index 12d3d0ba53..adf7fb114d 100644 --- a/addons/gforces/stringtable.xml +++ b/addons/gforces/stringtable.xml @@ -1,9 +1,9 @@ - + Gforces Effects - Gforces Effekte + Effekte der G-Kräfte Efectos Gforces G Force efekty Efeitos de ForçaG diff --git a/addons/hitreactions/stringtable.xml b/addons/hitreactions/stringtable.xml index c9669b3d06..3b26084538 100644 --- a/addons/hitreactions/stringtable.xml +++ b/addons/hitreactions/stringtable.xml @@ -8,6 +8,7 @@ 触发倒下前最低需受到多少伤害 崩れ落ちるまでの最低損傷値 방아쇠를 당기는 최소한의 피해 + Mindestschaden, um Sturz auszulösen diff --git a/addons/interaction/stringtable.xml b/addons/interaction/stringtable.xml index e573242418..08081daaca 100644 --- a/addons/interaction/stringtable.xml +++ b/addons/interaction/stringtable.xml @@ -947,7 +947,7 @@ Should players receive negative rating? When enabled players are only receiving positive ratings which prevents friendly AI fire when destroying friendly equipment or killing team members. - Sollen Spieler negative Bewertungen erhalten dürfen? Wenn diese Option aktiviert ist, erhalten Spieler nur positive Bewerungen, was Freundbeschuss durch KI verhindert, wenn befreundete Ausrüstung zerstört oder befreundete Einheiten von Spielern des selben Teams getötet werden. + Sollen Spieler negative Bewertungen erhalten dürfen? Wenn diese Option aktiviert ist, erhalten Spieler nur positive Bewertungen, was Freundbeschuss durch KI verhindert, wenn befreundete Ausrüstung zerstört oder befreundete Einheiten von Spielern des selben Teams getötet werden. 否定評価を受けますか?有効化した場合プレイヤーは肯定評価のみを受け、友軍の装備を壊したり殺害をしてもAIからの攻撃を防ぎます。 I giocatori dovrebbero ricevere delle valutazioni negative ? Quando è abilitato i giocatori ricevono esclusivamente valutazioni positive che prevengono il fuoco delle AI alleate quando distruggono equipaggiamenti o uccidono membri della squadra. 玩家是否會收到負面評價? 當本功能開啟時玩家只會接收到正面評價,所以當玩家做出擊殺友軍AI、毀壞友軍裝備或殺害小隊夥伴都不會收到負面評價。 diff --git a/addons/map/stringtable.xml b/addons/map/stringtable.xml index c99c7c6f76..a19fd539e2 100644 --- a/addons/map/stringtable.xml +++ b/addons/map/stringtable.xml @@ -306,7 +306,7 @@ Show player names Pokaż imiona graczy Mostrar nombres de los jugadores - Zeigen Sie die Namen der Spieler + Zeige einzelne Spielernamen Zobrazit jména hráčů Mostrar os nomes dos jogadores Afficher les noms des joueurs @@ -322,7 +322,7 @@ Show individual player names? Pokaż poszczególne imiona graczy? Mostrar nombres de los jugadores individuales? - Zeigen einzelnen Spielernamen? + Zeigt die Namen der einzelnen Spieler an Zobrazit názvy jednotlivých hráčů? Mostrar nomes individuais dos jogadores? Affiche les noms des joueurs individuels ? diff --git a/addons/nightvision/stringtable.xml b/addons/nightvision/stringtable.xml index 18d3b7684c..9bb333a82d 100644 --- a/addons/nightvision/stringtable.xml +++ b/addons/nightvision/stringtable.xml @@ -5,6 +5,7 @@ ACE Nightvision ACE 暗視装置 Visione notturna ACE + ACE-Nachtsicht NV Goggles (Gen1) @@ -246,25 +247,30 @@ NVG Fog Scale 暗視装置の霧の規模 Livello Nebbia NVG + Nebel in Nachtsicht Fog is used to limit visibility. 霧は視界制限のために使われます。 La nebbia viene utilizzata per limitare la visibilità. + Nebel wird genutzt, um die Sichtbarkeit einzuschränken. NVG Effect Scale 暗視装置の効果規模 Effetto livello NVG + Nachtsichteffekte Blur, grain and brightness effects [Setting to 0 will disable ALL nightvision effects] ぼかしと粒子、明度効果 [0 に設定で全効果を無効化します] Effetti di sfocatura, sgranatura e luminosità [Importare a 0 disabiliterà TUTTI gli effetti della visione notturna] + Unschärfe-, Körnungs- und Helligkeitseffekte [Dies auf 0 zu setzen deaktiviert SÄMTLICHE Nachtsichteffekte] Aim Down Sights Blur 照準器を使用時にぼかし + Visierunschärfe diff --git a/addons/pylons/stringtable.xml b/addons/pylons/stringtable.xml index cfbb2cab37..e127392293 100644 --- a/addons/pylons/stringtable.xml +++ b/addons/pylons/stringtable.xml @@ -8,6 +8,7 @@ 飛機武裝配置 飞机武装配置 항공기 무장 + AUSRÜSTUNG DES FLUGGERÄTS Loadouts for %1 @@ -16,6 +17,7 @@ %1用的武裝配置 %1用的武装配置 %1 무장 + Ausrüstung für %1 Configure Pylons @@ -24,6 +26,7 @@ 定義派龍架 定义派龙架 파일런 설정 + Konfiguriere Außenlaststationen Pylons @@ -32,6 +35,7 @@ 派龍架 派龙架 파일런 + Außenlaststationen <empty> @@ -40,6 +44,7 @@ <空> <空> <비어있음> + <leer> Pylons that are colored red will have to be manually rearmed. @@ -48,6 +53,7 @@ 以紅色標記出的派龍架必須以手動方式進行彈藥整補。 以红色标记出的派龙架必须以手动方式进行弹药整补。 붉은색의 파일런은 수동으로 재무장해야 합니다. + Außenlaststationen, die rot markiert sind, müssen manuell aufmunitioniert werden. %1 is already configuring this aircraft! @@ -56,6 +62,7 @@ %1已經正在定義此飛機的武裝配置! %1已经正在定义此飞机的武装配置! 이미 이 항공기에 장착되어 있음 (%1) + %1 konfiguriert dieses Fluggerät bereits! Replacing pylon %1 out of %2... @@ -64,6 +71,7 @@ 共有%2個派龍架,正在整補%1號派龍架中... 共有%2个派龙架,正在整补%1号派龙架中... 교체중 (%2 -> %1) + Ersetze Außenlaststation %1 von insgesamt %2 Stopped at pylon %1! @@ -72,6 +80,7 @@ 已停止在%1號派龍架! 已停止在%1号派龙架! %1 파일런이 멈춤 + Gestoppt bei Außenlaststation %1 Vehicle too far @@ -80,6 +89,7 @@ 載具過遠 载具过远 車両が遠すぎます + Fahrzeug zu weit entfernt Enable Pylons Menu @@ -88,6 +98,7 @@ 啟用派龍架選單 启用派龙架选单 파일런 메뉴 활성 + Aktiviere das Menü für Außenlaststationen. Enable pylon configuration menu for aircraft. @@ -96,6 +107,7 @@ 啟用後可透過派龍架選單來定義飛機的武裝配置。 启用后可透过派龙架选单来定义飞机的武装配置。 항공기의 파일런 설정 메뉴를 활성합니다. + Aktiviert die Konfiguration der Außenlaststationen. für Fluggeräte. Rearm New Pylons @@ -104,6 +116,7 @@ 重新武裝新的派龍架 重新武装新的派龙架 새파일런 재무장 + Neue Außenlaststationen. aufmunitionieren Automatically rearm new pylons from the nearest rearm vehicle. @@ -112,6 +125,7 @@ 自動從附近的整補載具中為派龍架進行彈藥整補。 自动从附近的整补载具中为派龙架进行弹药整补。 근처의 재무장 차량에서 빈 파일런을 자동으로 재무장 합니다. + Neue Außenlaststationen. automatisch vom nächsten Munitionsfahrzeug aufmunitionieren Time Per Pylon @@ -120,6 +134,7 @@ 派龍架整補所需時間(個別) 派龙架整补所需时间(个别) 파일런당 시간 + Zeit pro Außenlaststation The time it takes to replace each pylon (in seconds). @@ -128,6 +143,7 @@ 每個派龍架需花多久時間進行整補(單位為秒)。 每个派龙架需花多久时间进行整补(单位为秒)。 파일런을 재설정 하는데 걸리는 시간 (초) + Die benötigte Zeit, um einzelne Außenlaststationen zu ersetzen (in Sekunden). Search Distance @@ -136,6 +152,7 @@ 搜索距離 搜索距离 검색 반경 + Suchdistanz The distance an aircraft needs to be from a rearm vehicle. @@ -144,6 +161,7 @@ 設定飛機必須距離整補載具多少公尺才能進行彈藥整補。 设定飞机必须距离整补载具多少公尺才能进行弹药整补。 항공기에서 재보급 가능한 재무장 차량을 찾습니다. + Die Distanz, die ein Fahrzeug von einem Munitionsfahrzeug entfernt sein darf. Require Engineer @@ -152,6 +170,7 @@ 需要工兵 需要工兵 정비병 요구 + Benötigt Pionier Require an engineer. @@ -160,6 +179,7 @@ 需要工兵才能進行彈藥整補。 需要工兵才能进行弹药整补。 정비병이 필요합니다. + Benötigt einen Pionier. Require Toolkit @@ -168,6 +188,7 @@ 需要工具包 需要工具包 툴킷 요구 + Benötigt Werkzeugkasten Require a toolkit in inventory. @@ -176,6 +197,7 @@ 需要工具包才能進行彈藥整補。 需要工具包才能进行弹药整补。 툴킷이 필요합니다. + Benötigt einen Werkzeugkasten im Inventar. diff --git a/addons/rearm/stringtable.xml b/addons/rearm/stringtable.xml index ef7c2e3662..3823d031ef 100644 --- a/addons/rearm/stringtable.xml +++ b/addons/rearm/stringtable.xml @@ -116,7 +116,7 @@ Ammunition supply - Munitionsvorat + Munitionsvorrat Scorta munizioni 弾薬の供給 弹药补给 @@ -136,7 +136,7 @@ Unlimited ammo supply - Unbegrenzter Munitionsvorat + Unbegrenzter Munitionsvorrat Scorta munizioni infinita 無制限供給 无限弹药 @@ -146,7 +146,7 @@ Limited ammo supply based on caliber - Begrenzter, kaliberabhängiger Munitionsvorat + Begrenzter, kaliberabhängiger Munitionsvorrat Scorta munizioni limitata in base al calibro 口径に基づいた限定的供給 基于口径限制弹药数量 diff --git a/addons/repair/stringtable.xml b/addons/repair/stringtable.xml index bf19678a41..fb4a44ca7b 100644 --- a/addons/repair/stringtable.xml +++ b/addons/repair/stringtable.xml @@ -1098,7 +1098,7 @@ Advanced Engineer only - Erweiterter Pionier + Instandsetzer Solo Geniere avanzato 上級工兵のみ 只有维修专精兵 @@ -1424,7 +1424,7 @@ Adv. Engineer - Erw. Pionier + Instandsetzer Adv. Geniere 上級工兵 专精 diff --git a/addons/spectator/stringtable.xml b/addons/spectator/stringtable.xml index fe6caacb1f..a9aec6cbb0 100644 --- a/addons/spectator/stringtable.xml +++ b/addons/spectator/stringtable.xml @@ -116,7 +116,7 @@ Vision modes - Sichtmodi + Sichtmodus Tryby wizji Modos de visão Режимы видения diff --git a/addons/switchunits/stringtable.xml b/addons/switchunits/stringtable.xml index b06b4b93fd..57822047c8 100644 --- a/addons/switchunits/stringtable.xml +++ b/addons/switchunits/stringtable.xml @@ -8,6 +8,7 @@ 切换单位 ユニット切り替え 병력 전환 + Einheitenwechsel Switched unit @@ -233,20 +234,20 @@ 安全區半徑 - The safe zone around players from a different team. Default: 200 - Promień bezpiecznej strefy wokół graczy z innych drużyn. Domyślnie: 200 - La zona segura alrededor de los jugadores de distintos equipos. Por defecto: 200 - Die Sicherheitszone um Spieler von einem anderen Team. Standard: 200 - Bezpečná zóna kolem hráče z jiných týmu. Výchozí: 200 - A zona segura ao redor dos jogadores de diferentes equipes. Padrão: 200 - Rayon de la zone sécurisée autour de joueurs d'équipe différentes. Défaut: 200 - A biztonságos zóna más csapatból lévő játékosok körül. Alapértelmezett: 200 - Радиус безопасной зоны вокруг ироков из противоположной команды. По-умолчанию: 200 - La zona sicura attorno ai giocatori di un team diverso. Default: 200 - 別のチームへのプレイヤーの周囲にある安全地帯の範囲。標準: 200 - 다른 진영으로 부터의 플레이어 안전 지대. 기본설정: 200 - 安全区的范围。预设值:200 - 安全區的範圍。預設值:200 + The safe zone around players from a different team. Default: 100 + Promień bezpiecznej strefy wokół graczy z innych drużyn. Domyślnie: 100 + La zona segura alrededor de los jugadores de distintos equipos. Por defecto: 100 + Die Sicherheitszone um Spieler von einem anderen Team. Standard: 100 + Bezpečná zóna kolem hráče z jiných týmu. Výchozí: 100 + A zona segura ao redor dos jogadores de diferentes equipes. Padrão: 100 + Rayon de la zone sécurisée autour de joueurs d'équipe différentes. Défaut: 100 + A biztonságos zóna más csapatból lévő játékosok körül. Alapértelmezett: 100 + Радиус безопасной зоны вокруг ироков из противоположной команды. По-умолчанию: 100 + La zona sicura attorno ai giocatori di un team diverso. Default: 100 + 別のチームへのプレイヤーの周囲にある安全地帯の範囲。標準: 100 + 다른 진영으로 부터의 플레이어 안전 지대. 기본설정: 100 + 安全区的范围。预设值:100 + 安全區的範圍。預設值:100 Module allows you to switch side during the game. diff --git a/addons/tagging/stringtable.xml b/addons/tagging/stringtable.xml index ec79c4960a..f9fc615d78 100644 --- a/addons/tagging/stringtable.xml +++ b/addons/tagging/stringtable.xml @@ -6,7 +6,7 @@ Маркировка タグ付け Tagowanie - Markierungssystem + Markierungssystem (Spraydose) 뿌리기 Marquage Marcamento @@ -30,7 +30,7 @@ Быстрый маркер クイック タグ Szybkie tagowanie - Schnelle Markierung + Schnelle Markierung (Spraydose) 빠른 뿌리기 Marquage rapide Marcamento Rapido @@ -87,7 +87,7 @@ Tag - Markieren + Markieren (Spraydose) Marcar Oznakuj Marca diff --git a/addons/vehiclelock/stringtable.xml b/addons/vehiclelock/stringtable.xml index 50c139634d..b6edabfc7a 100644 --- a/addons/vehiclelock/stringtable.xml +++ b/addons/vehiclelock/stringtable.xml @@ -8,6 +8,7 @@ 载具上锁 車両の施錠 차량 잠금 + Fahrzeugsperre Unlock Vehicle From 27504468e424a97dac783ea0d884334ae738af00 Mon Sep 17 00:00:00 2001 From: mharis001 <34453221+mharis001@users.noreply.github.com> Date: Thu, 1 Feb 2018 17:41:56 -0500 Subject: [PATCH 016/235] Change cargo menu to look better (#6112) --- addons/cargo/menu.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/cargo/menu.hpp b/addons/cargo/menu.hpp index 0a32d2bcdb..7496298371 100644 --- a/addons/cargo/menu.hpp +++ b/addons/cargo/menu.hpp @@ -17,7 +17,7 @@ class GVAR(menu) { }; class CenterBackground: HeaderBackground { y = "2.1 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2)"; - h = "14 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25)"; + h = "13.1 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25)"; text = "#(argb,8,8,3)color(0,0,0,0.8)"; colorText[] = {0, 0, 0, "(profilenamespace getVariable ['GUI_BCG_RGB_A',0.9])"}; colorBackground[] = {0,0,0,"(profilenamespace getVariable ['GUI_BCG_RGB_A',0.9])"}; From f0a2b68f3d711d5e467d3c86495c1f8cde5f2c6c Mon Sep 17 00:00:00 2001 From: Dystopian Date: Sun, 4 Feb 2018 14:47:54 +0300 Subject: [PATCH 017/235] Aircraft - Disable scripted eject if vehicle is locked (#6096) * Add lock check * Delete seat lock check --- addons/aircraft/functions/fnc_canShowEject.sqf | 1 + 1 file changed, 1 insertion(+) diff --git a/addons/aircraft/functions/fnc_canShowEject.sqf b/addons/aircraft/functions/fnc_canShowEject.sqf index 095a787cb7..b0803a49df 100644 --- a/addons/aircraft/functions/fnc_canShowEject.sqf +++ b/addons/aircraft/functions/fnc_canShowEject.sqf @@ -23,6 +23,7 @@ params ["_unit", "_vehicle"]; _vehicle == vehicle _unit +&& {2 > locked _vehicle} && { private _ejectVarName = ""; { From 0ab8c1dde84060eb3decc69e465ee174b82cbe93 Mon Sep 17 00:00:00 2001 From: Thomas Kooi Date: Tue, 6 Feb 2018 19:41:34 +0100 Subject: [PATCH 018/235] Use CI Python Docker image to speed up build times --- circle.yml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/circle.yml b/circle.yml index 7616e4912c..fca41b480c 100644 --- a/circle.yml +++ b/circle.yml @@ -2,7 +2,7 @@ version: 2 jobs: build: docker: - - image: python:3-alpine + - image: thojkooi/ci-python steps: - checkout - run: @@ -10,7 +10,7 @@ jobs: command: python tools/sqf_validator.py && python tools/config_style_checker.py deployment: docker: - - image: python:3-alpine + - image: thojkooi/ci-python branch: master requires: - build @@ -19,5 +19,4 @@ jobs: - deploy: name: Deploy command: | - pip install pygithub pygithub3 python3 tools/deploy.py From 7b50d4a7a6fd34209a151065e91d1689aeb24b9c Mon Sep 17 00:00:00 2001 From: BaerMitUmlaut Date: Tue, 6 Feb 2018 20:38:23 +0100 Subject: [PATCH 019/235] Add seperate setting for noise intensity (#6059) --- addons/nightvision/ACE_Settings.hpp | 8 ++++++++ addons/nightvision/XEH_postInit.sqf | 2 +- addons/nightvision/functions/fnc_pfeh.sqf | 20 ++++++++++++++++---- addons/nightvision/stringtable.xml | 14 +++++++++++--- 4 files changed, 36 insertions(+), 8 deletions(-) diff --git a/addons/nightvision/ACE_Settings.hpp b/addons/nightvision/ACE_Settings.hpp index 2cf90a2c05..6487b7a501 100644 --- a/addons/nightvision/ACE_Settings.hpp +++ b/addons/nightvision/ACE_Settings.hpp @@ -14,6 +14,14 @@ class ACE_Settings { value = 1; sliderSettings[] = {0, 2, 1, 1}; }; + class GVAR(noiseScaling) { + category = CSTRING(Category); + displayName = CSTRING(noiseScaling_DisplayName); + description = CSTRING(noiseScaling_Description); + typeName = "SCALAR"; + value = 1; + sliderSettings[] = {0, 2, 1, 1}; + }; class GVAR(effectScaling) { category = CSTRING(Category); displayName = CSTRING(effectScaling_DisplayName); diff --git a/addons/nightvision/XEH_postInit.sqf b/addons/nightvision/XEH_postInit.sqf index 986013d106..44926ae7ac 100644 --- a/addons/nightvision/XEH_postInit.sqf +++ b/addons/nightvision/XEH_postInit.sqf @@ -23,7 +23,7 @@ GVAR(ppeffectBlur) = -1; ["ace_settingsInitialized", { - TRACE_3("settingsInitialized",GVAR(disableNVGsWithSights),GVAR(fogScaling),GVAR(effectScaling)); + TRACE_4("settingsInitialized",GVAR(disableNVGsWithSights),GVAR(fogScaling),GVAR(noiseScaling),GVAR(effectScaling)); ["visionMode", LINKFUNC(onVisionModeChanged), false] call CBA_fnc_addPlayerEventHandler; diff --git a/addons/nightvision/functions/fnc_pfeh.sqf b/addons/nightvision/functions/fnc_pfeh.sqf index 5da34d2aac..5c8e378c4d 100644 --- a/addons/nightvision/functions/fnc_pfeh.sqf +++ b/addons/nightvision/functions/fnc_pfeh.sqf @@ -92,13 +92,14 @@ if (CBA_missionTime < GVAR(nextEffectsUpdate)) then { if (currentWeapon ACE_player == handgunWeapon ACE_player) exitWith {_blurFinal = _blurFinal * linearConversion [0, 1, GVAR(aimDownSightsBlur), 1, ST_NVG_CAMERA_BLUR_SIGHTS_PISTOL]}; // Pistols aren't so bad }; - // Scale effects based on ace_nightvision_effectScaling setting - _grainIntensityFinal = _grainIntensityFinal * GVAR(effectScaling); - _noiseSharpnessFinal = linearConversion [0, 1, GVAR(effectScaling), 2.5, _noiseSharpnessFinal]; + // Scale general effects based on ace_nightvision_effectScaling setting private _radialBlurPower = 0.0025 * GVAR(effectScaling); _brightFinal = linearConversion [0, 1, GVAR(effectScaling), 1, _brightFinal]; _contrastFinal = linearConversion [0, 1, GVAR(effectScaling), 1, _contrastFinal]; + // Scale grain effects based on ace_nightvision_noiseScaling setting + _grainIntensityFinal = _grainIntensityFinal * GVAR(noiseScaling); + _noiseSharpnessFinal = linearConversion [0, 1, GVAR(noiseScaling), 2.5, _noiseSharpnessFinal]; // Setup all effects // This is hacky but... works. This prevents the effects from being cancelled by various things - alt-tabbing, resizing, going into AT sights, etc. A nicer method would be welcome but I don't have time to spend on it. TODO. @@ -152,7 +153,18 @@ if (CBA_missionTime < GVAR(nextEffectsUpdate)) then { #ifdef DEBUG_MODE_FULL private _aceAmbient = [] call EFUNC(common,ambientBrightness); - hintSilent format ["EffectiveLight %1\nLight: %2\nACE Ambient: %3\nBrightness: %4\nContrast: %5\nGrain: %6\nBlur: %7\nFog: %8\nScaling %9", _effectiveLight, _lightFinal, _aceAmbient, _brightFinal, _contrastFinal, [_grainIntensityFinal, _noiseSharpnessFinal, _grainFinal], _blurFinal, _fogApply, [GVAR(effectScaling),GVAR(fogScaling)]]; + hintSilent format [ + "EffectiveLight %1\nLight: %2\nACE Ambient: %3\nBrightness: %4\nContrast: %5\nGrain: %6\nBlur: %7\nFog: %8\nScaling %9", + _effectiveLight, + _lightFinal, + _aceAmbient, + _brightFinal, + _contrastFinal, + [_grainIntensityFinal, _noiseSharpnessFinal, _grainFinal], + _blurFinal, + _fogApply, + [GVAR(effectScaling), GVAR(fogScaling), GVAR(noiseScaling)] + ]; #endif END_COUNTER(updateAllEffects); diff --git a/addons/nightvision/stringtable.xml b/addons/nightvision/stringtable.xml index 9bb333a82d..a8a0585a37 100644 --- a/addons/nightvision/stringtable.xml +++ b/addons/nightvision/stringtable.xml @@ -262,15 +262,23 @@ Nachtsichteffekte - Blur, grain and brightness effects [Setting to 0 will disable ALL nightvision effects] + Blur and brightness effects [Setting to 0 will disable ALL nightvision effects] ぼかしと粒子、明度効果 [0 に設定で全効果を無効化します] - Effetti di sfocatura, sgranatura e luminosità [Importare a 0 disabiliterà TUTTI gli effetti della visione notturna] - Unschärfe-, Körnungs- und Helligkeitseffekte [Dies auf 0 zu setzen deaktiviert SÄMTLICHE Nachtsichteffekte] + Effetti di sfocatura e luminosità [Importare a 0 disabiliterà TUTTI gli effetti della visione notturna] + Unschärfe und Helligkeitseffekte [Dies auf 0 zu setzen deaktiviert SÄMTLICHE Nachtsichteffekte] Aim Down Sights Blur 照準器を使用時にぼかし Visierunschärfe + + NVG Noise Scale + Intensität des Bildrauschens + + + Image noise intensity when wearing NVGs + Intensität des Bildrauschens im Nachtsichtgerät + From ddf7046c440057be777ea5ea3be484c1d0f24279 Mon Sep 17 00:00:00 2001 From: Thomas Kooi Date: Sun, 4 Feb 2018 21:38:59 +0100 Subject: [PATCH 020/235] Add run deploy job on master branch --- circle.yml | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/circle.yml b/circle.yml index fca41b480c..2cdec68b4a 100644 --- a/circle.yml +++ b/circle.yml @@ -2,21 +2,21 @@ version: 2 jobs: build: docker: - - image: thojkooi/ci-python + - image: acemod/armake steps: - checkout - run: name: Validate SQF And Config style command: python tools/sqf_validator.py && python tools/config_style_checker.py - deployment: - docker: - - image: thojkooi/ci-python - branch: master - requires: - - build - steps: - - checkout + - run: + name: Build + command: armake --version - deploy: - name: Deploy + name: Update documentation and translation statistics command: | - python3 tools/deploy.py + if [ "${CIRCLE_BRANCH}" == "master" ] && [ "${CIRCLE_PROJECT_USERNAME}" == "acemod" ]; then + pip install pygithub pygithub3 + python3 tools/deploy.py + else + echo "Skipping, not on acemod/ACE3 master branch..." + fi From f5e1a23ff2f28704909c599c02ee1b16d3fe4eef Mon Sep 17 00:00:00 2001 From: Thomas Kooi Date: Sun, 4 Feb 2018 21:46:56 +0100 Subject: [PATCH 021/235] Disable running deploy script on Travis CI --- .travis.yml | 3 --- 1 file changed, 3 deletions(-) diff --git a/.travis.yml b/.travis.yml index 8a03778a53..14a3d562cd 100644 --- a/.travis.yml +++ b/.travis.yml @@ -13,9 +13,6 @@ before_script: script: - python3 tools/sqf_validator.py - python3 tools/config_style_checker.py -- if [ -n "${GH_TOKEN}" ] && [ "${TRAVIS_BRANCH}" == "master" ] && [ "${TRAVIS_PULL_REQUEST}" == "false" ]; then - python3 tools/deploy.py; - fi env: global: - secure: cdxkn5cAx+s1C9Ne5m+odEhde1uuSg6XGMDgepN4DwSAJwtMnUv3ZmDebd5YJC1raZJdep+n09Cj0GoTNICQRkco50DxHKHYNad41wetY0tn0cs9gmPYzyFE5q4vuWiQ47dlGhQQ7IJDyX0nU++gG5E50/PhlZfebdedGSprN/4= From 4534353e94c76259fbf979fee3715582f346959c Mon Sep 17 00:00:00 2001 From: ace3mod Date: Tue, 6 Feb 2018 21:31:02 +0100 Subject: [PATCH 022/235] [Docs] Update component dependencies Automatically committed through Travis CI. [ci skip] --- docs/_includes/dependencies_list.md | 750 ++++++++++++++-------------- 1 file changed, 375 insertions(+), 375 deletions(-) diff --git a/docs/_includes/dependencies_list.md b/docs/_includes/dependencies_list.md index 86c1ae1bb1..b8a8b6e978 100644 --- a/docs/_includes/dependencies_list.md +++ b/docs/_includes/dependencies_list.md @@ -1,184 +1,56 @@ -{% if include.component == "advanced_ballistics" %} -`ace_ballistics`, `ace_weather` -{% endif %} - -{% if include.component == "advanced_fatigue" %} +{% if include.component == "inventory" %} `ace_common` {% endif %} -{% if include.component == "advanced_throwing" %} -`ace_common`, `ace_weaponselect` -{% endif %} - -{% if include.component == "ai" %} -`ace_common` -{% endif %} - -{% if include.component == "aircraft" %} -`ace_common` -{% endif %} - -{% if include.component == "apl" %} -`ace_main` +{% if include.component == "mk6mortar" %} +`ace_interaction` {% endif %} {% if include.component == "arsenal" %} `ace_common` {% endif %} -{% if include.component == "atragmx" %} -`ACE_Advanced_Ballistics`, `ACE_common`, `ACE_weather` -{% endif %} - -{% if include.component == "attach" %} -`ace_interaction` -{% endif %} - -{% if include.component == "backpacks" %} +{% if include.component == "weather" %} `ace_common` {% endif %} -{% if include.component == "ballistics" %} +{% if include.component == "recoil" %} `ace_common` {% endif %} -{% if include.component == "captives" %} -`ACE_Interaction` -{% endif %} - -{% if include.component == "cargo" %} +{% if include.component == "reloadlaunchers" %} `ace_interaction` {% endif %} -{% if include.component == "chemlights" %} -`ace_common` -{% endif %} - -{% if include.component == "common" %} -`ace_main`, `ace_modules` -{% endif %} - -{% if include.component == "concertina_wire" %} -`ace_apl`, `ace_interaction` -{% endif %} - -{% if include.component == "cookoff" %} -`ace_common` -{% endif %} - -{% if include.component == "dagr" %} -`ace_weather` -{% endif %} - -{% if include.component == "disarming" %} -`ACE_Interaction` -{% endif %} - -{% if include.component == "disposable" %} -`ace_common` -{% endif %} - -{% if include.component == "dogtags" %} -`ace_interaction` -{% endif %} - -{% if include.component == "dragging" %} -`ace_interaction` -{% endif %} - -{% if include.component == "explosives" %} -`ace_interaction` -{% endif %} - -{% if include.component == "fastroping" %} -`ace_interaction` -{% endif %} - -{% if include.component == "fcs" %} -`ace_interaction` -{% endif %} - -{% if include.component == "finger" %} -`ace_common` -{% endif %} - {% if include.component == "flashlights" %} `ace_interaction` {% endif %} -{% if include.component == "flashsuppressors" %} +{% if include.component == "weaponselect" %} `ace_common` {% endif %} -{% if include.component == "fonts" %} -`ace_main` -{% endif %} - -{% if include.component == "frag" %} -`ace_common` -{% endif %} - -{% if include.component == "gestures" %} -`ace_interact_menu` -{% endif %} - -{% if include.component == "gforces" %} -`ace_common` -{% endif %} - -{% if include.component == "goggles" %} -`ace_common` -{% endif %} - -{% if include.component == "grenades" %} -`ace_common` -{% endif %} - -{% if include.component == "gunbag" %} -`ace_interaction`, `ace_movement` -{% endif %} - -{% if include.component == "hearing" %} +{% if include.component == "refuel" %} `ace_interaction` {% endif %} -{% if include.component == "hellfire" %} -`ace_interaction`, `ace_missileguidance` +{% if include.component == "rearm" %} +`ace_interaction` {% endif %} -{% if include.component == "hitreactions" %} +{% if include.component == "realisticweights" %} `ace_common` {% endif %} -{% if include.component == "huntir" %} -`ace_common` +{% if include.component == "yardage450" %} +`ace_apl`, `ace_laser` {% endif %} -{% if include.component == "interact_menu" %} -`ace_common` +{% if include.component == "advanced_ballistics" %} +`ace_ballistics`, `ace_weather` {% endif %} -{% if include.component == "interaction" %} -`ace_interact_menu` -{% endif %} - -{% if include.component == "inventory" %} -`ace_common` -{% endif %} - -{% if include.component == "javelin" %} -`ace_main`, `ace_common`, `ace_missileguidance` -{% endif %} - -{% if include.component == "kestrel4500" %} -`ACE_common`, `ACE_weather` -{% endif %} - -{% if include.component == "laser" %} -`ace_common` -{% endif %} - -{% if include.component == "laserpointer" %} +{% if include.component == "aircraft" %} `ace_common` {% endif %} @@ -186,40 +58,240 @@ `ace_interaction` {% endif %} -{% if include.component == "logistics_wirecutter" %} -`ace_interaction` +{% if include.component == "zeus" %} +`ace_common`, `ace_ai` {% endif %} -{% if include.component == "magazinerepack" %} -`ace_interaction` -{% endif %} - -{% if include.component == "map" %} -`ace_interaction` -{% endif %} - -{% if include.component == "map_gestures" %} +{% if include.component == "quickmount" %} `ace_common` {% endif %} -{% if include.component == "maptools" %} -`ace_interaction` -{% endif %} - -{% if include.component == "markers" %} +{% if include.component == "laserpointer" %} `ace_common` {% endif %} -{% if include.component == "maverick" %} -`ace_missileguidance` +{% if include.component == "tagging" %} +`ace_interaction` +{% endif %} + +{% if include.component == "apl" %} +`ace_main` +{% endif %} + +{% if include.component == "medical_ai" %} +`ace_medical` +{% endif %} + +{% if include.component == "slideshow" %} +`ace_common` +{% endif %} + +{% if include.component == "common" %} +`ace_main`, `ace_modules` +{% endif %} + +{% if include.component == "javelin" %} +`ace_main`, `ace_common`, `ace_missileguidance` +{% endif %} + +{% if include.component == "smallarms" %} +`ace_common` +{% endif %} + +{% if include.component == "repair" %} +`ace_interaction` +{% endif %} + +{% if include.component == "disarming" %} +`ACE_Interaction` +{% endif %} + +{% if include.component == "dogtags" %} +`ace_interaction` +{% endif %} + +{% if include.component == "thermals" %} +`ace_common` +{% endif %} + +{% if include.component == "minedetector" %} +`ace_explosives` {% endif %} {% if include.component == "medical" %} `ace_interaction`, `ace_apl` {% endif %} -{% if include.component == "medical_ai" %} -`ace_medical` +{% if include.component == "noradio" %} +`ace_common` +{% endif %} + +{% if include.component == "tacticalladder" %} +`ace_apl`, `ace_interaction` +{% endif %} + +{% if include.component == "cargo" %} +`ace_interaction` +{% endif %} + +{% if include.component == "vector" %} +`ace_common` +{% endif %} + +{% if include.component == "scopes" %} +`ace_common` +{% endif %} + +{% if include.component == "advanced_fatigue" %} +`ace_common` +{% endif %} + +{% if include.component == "hitreactions" %} +`ace_common` +{% endif %} + +{% if include.component == "logistics_wirecutter" %} +`ace_interaction` +{% endif %} + +{% if include.component == "gforces" %} +`ace_common` +{% endif %} + +{% if include.component == "overpressure" %} +`ace_common` +{% endif %} + +{% if include.component == "ui" %} +`ace_common` +{% endif %} + +{% if include.component == "safemode" %} +`ace_common` +{% endif %} + +{% if include.component == "interact_menu" %} +`ace_common` +{% endif %} + +{% if include.component == "nightvision" %} +`ace_common` +{% endif %} + +{% if include.component == "sandbag" %} +`ace_interaction` +{% endif %} + +{% if include.component == "backpacks" %} +`ace_common` +{% endif %} + +{% if include.component == "parachute" %} +`ace_common` +{% endif %} + +{% if include.component == "gunbag" %} +`ace_interaction`, `ace_movement` +{% endif %} + +{% if include.component == "kestrel4500" %} +`ACE_common`, `ACE_weather` +{% endif %} + +{% if include.component == "disposable" %} +`ace_common` +{% endif %} + +{% if include.component == "realisticnames" %} +`ace_common` +{% endif %} + +{% if include.component == "fastroping" %} +`ace_interaction` +{% endif %} + +{% if include.component == "gestures" %} +`ace_interact_menu` +{% endif %} + +{% if include.component == "goggles" %} +`ace_common` +{% endif %} + +{% if include.component == "nametags" %} +`ace_interaction` +{% endif %} + +{% if include.component == "spectator" %} +`ace_common` +{% endif %} + +{% if include.component == "markers" %} +`ace_common` +{% endif %} + +{% if include.component == "missileguidance" %} +`ace_laser` +{% endif %} + +{% if include.component == "dagr" %} +`ace_weather` +{% endif %} + +{% if include.component == "switchunits" %} +`ace_common` +{% endif %} + +{% if include.component == "huntir" %} +`ace_common` +{% endif %} + +{% if include.component == "flashsuppressors" %} +`ace_common` +{% endif %} + +{% if include.component == "vehicles" %} +`ace_common` +{% endif %} + +{% if include.component == "explosives" %} +`ace_interaction` +{% endif %} + +{% if include.component == "maptools" %} +`ace_interaction` +{% endif %} + +{% if include.component == "cookoff" %} +`ace_common` +{% endif %} + +{% if include.component == "concertina_wire" %} +`ace_apl`, `ace_interaction` +{% endif %} + +{% if include.component == "dragging" %} +`ace_interaction` +{% endif %} + +{% if include.component == "reload" %} +`ace_interaction` +{% endif %} + +{% if include.component == "ballistics" %} +`ace_common` +{% endif %} + +{% if include.component == "modules" %} +`ace_main` +{% endif %} + +{% if include.component == "mx2a" %} +`ace_apl` +{% endif %} + +{% if include.component == "hellfire" %} +`ace_interaction`, `ace_missileguidance` {% endif %} {% if include.component == "medical_blood" %} @@ -230,195 +302,79 @@ `ace_medical` {% endif %} -{% if include.component == "microdagr" %} -`ace_common` +{% if include.component == "pylons" %} +`ace_interact_menu` {% endif %} -{% if include.component == "minedetector" %} -`ace_explosives` +{% if include.component == "winddeflection" %} +`ace_weather` {% endif %} -{% if include.component == "missileguidance" %} -`ace_laser` -{% endif %} - -{% if include.component == "missionmodules" %} -`ace_common` -{% endif %} - -{% if include.component == "mk6mortar" %} -`ace_interaction` -{% endif %} - -{% if include.component == "modules" %} -`ace_main` -{% endif %} - -{% if include.component == "movement" %} -`ace_common` -{% endif %} - -{% if include.component == "mx2a" %} -`ace_apl` -{% endif %} - -{% if include.component == "nametags" %} -`ace_interaction` -{% endif %} - -{% if include.component == "nightvision" %} -`ace_common` -{% endif %} - -{% if include.component == "nlaw" %} -`ace_missileguidance` -{% endif %} - -{% if include.component == "noidle" %} -`ace_common` -{% endif %} - -{% if include.component == "noradio" %} -`ace_common` +{% if include.component == "spottingscope" %} +`ace_apl`, `ace_interaction` {% endif %} {% if include.component == "norearm" %} `ace_common` {% endif %} -{% if include.component == "optics" %} -`ace_common` -{% endif %} - -{% if include.component == "optionsmenu" %} -`ace_common` -{% endif %} - {% if include.component == "overheating" %} `ace_interaction` {% endif %} -{% if include.component == "overpressure" %} -`ace_common` -{% endif %} - -{% if include.component == "parachute" %} -`ace_common` -{% endif %} - -{% if include.component == "pylons" %} -`ace_interact_menu` -{% endif %} - -{% if include.component == "quickmount" %} -`ace_common` -{% endif %} - -{% if include.component == "rangecard" %} -`ACE_Advanced_Ballistics`, `ace_scopes` -{% endif %} - -{% if include.component == "realisticnames" %} -`ace_common` -{% endif %} - -{% if include.component == "realisticweights" %} -`ace_common` -{% endif %} - -{% if include.component == "rearm" %} -`ace_interaction` -{% endif %} - -{% if include.component == "recoil" %} -`ace_common` -{% endif %} - -{% if include.component == "refuel" %} -`ace_interaction` -{% endif %} - -{% if include.component == "reload" %} -`ace_interaction` -{% endif %} - -{% if include.component == "reloadlaunchers" %} -`ace_interaction` -{% endif %} - -{% if include.component == "repair" %} -`ace_interaction` -{% endif %} - {% if include.component == "respawn" %} `ace_common` {% endif %} -{% if include.component == "safemode" %} -`ace_common` -{% endif %} - -{% if include.component == "sandbag" %} -`ace_interaction` -{% endif %} - -{% if include.component == "scopes" %} -`ace_common` -{% endif %} - -{% if include.component == "slideshow" %} -`ace_common` -{% endif %} - -{% if include.component == "smallarms" %} -`ace_common` -{% endif %} - -{% if include.component == "spectator" %} -`ace_common` -{% endif %} - -{% if include.component == "spottingscope" %} -`ace_apl`, `ace_interaction` -{% endif %} - -{% if include.component == "switchunits" %} -`ace_common` -{% endif %} - -{% if include.component == "tacticalladder" %} -`ace_apl`, `ace_interaction` -{% endif %} - -{% if include.component == "tagging" %} -`ace_interaction` -{% endif %} - -{% if include.component == "thermals" %} -`ace_common` -{% endif %} - -{% if include.component == "trenches" %} -`ace_interaction` -{% endif %} - -{% if include.component == "tripod" %} -`ace_interaction` -{% endif %} - -{% if include.component == "ui" %} -`ace_common` -{% endif %} - -{% if include.component == "vector" %} -`ace_common` -{% endif %} - {% if include.component == "vehiclelock" %} `ace_interaction` {% endif %} -{% if include.component == "vehicles" %} +{% if include.component == "rangecard" %} +`ACE_Advanced_Ballistics`, `ace_scopes` +{% endif %} + +{% if include.component == "fonts" %} +`ace_main` +{% endif %} + +{% if include.component == "laser" %} +`ace_common` +{% endif %} + +{% if include.component == "tripod" %} +`ace_interaction` +{% endif %} + +{% if include.component == "map" %} +`ace_interaction` +{% endif %} + +{% if include.component == "interaction" %} +`ace_interact_menu` +{% endif %} + +{% if include.component == "captives" %} +`ACE_Interaction` +{% endif %} + +{% if include.component == "missionmodules" %} +`ace_common` +{% endif %} + +{% if include.component == "advanced_throwing" %} +`ace_common`, `ace_weaponselect` +{% endif %} + +{% if include.component == "noidle" %} +`ace_common` +{% endif %} + +{% if include.component == "grenades" %} +`ace_common` +{% endif %} + +{% if include.component == "movement" %} `ace_common` {% endif %} @@ -426,40 +382,112 @@ `ace_common` {% endif %} -{% if include.component == "weaponselect" %} +{% if include.component == "attach" %} +`ace_interaction` +{% endif %} + +{% if include.component == "chemlights" %} `ace_common` {% endif %} -{% if include.component == "weather" %} +{% if include.component == "fcs" %} +`ace_interaction` +{% endif %} + +{% if include.component == "maverick" %} +`ace_missileguidance` +{% endif %} + +{% if include.component == "nlaw" %} +`ace_missileguidance` +{% endif %} + +{% if include.component == "trenches" %} +`ace_interaction` +{% endif %} + +{% if include.component == "hearing" %} +`ace_interaction` +{% endif %} + +{% if include.component == "atragmx" %} +`ACE_Advanced_Ballistics`, `ACE_common`, `ACE_weather` +{% endif %} + +{% if include.component == "frag" %} `ace_common` {% endif %} -{% if include.component == "winddeflection" %} -`ace_weather` +{% if include.component == "optionsmenu" %} +`ace_common` {% endif %} -{% if include.component == "yardage450" %} -`ace_apl`, `ace_laser` +{% if include.component == "magazinerepack" %} +`ace_interaction` {% endif %} -{% if include.component == "zeus" %} -`ace_common`, `ace_ai` +{% if include.component == "ai" %} +`ace_common` +{% endif %} + +{% if include.component == "map_gestures" %} +`ace_common` +{% endif %} + +{% if include.component == "microdagr" %} +`ace_common` +{% endif %} + +{% if include.component == "finger" %} +`ace_common` +{% endif %} + +{% if include.component == "optics" %} +`ace_common` +{% endif %} + +{% if include.component == "compat_rh_de" %} +`RH_de_cfg` +{% endif %} + +{% if include.component == "nocrosshair" %} +`ace_common` +{% endif %} + +{% if include.component == "compat_rhs_afrf3" %} +`ace_rearm`, `ace_refuel`, `ace_repair`, `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_trucks`, `rhs_c_2s3`, `rhs_c_rva`, `rhs_c_heavyweapons` +{% endif %} + +{% if include.component == "compat_sma3_iansky" %} +`iansky_opt` +{% endif %} + +{% if include.component == "nouniformrestrictions" %} +`ace_common` +{% endif %} + +{% if include.component == "noactionmenu" %} +`ace_common` +{% endif %} + +{% if include.component == "tracers" %} +`ace_ballistics` {% endif %} {% if include.component == "compat_adr_97" %} `A3_Weapons_F_Mod` {% endif %} -{% if include.component == "compat_r3f" %} -`r3f_armes_c`, `r3f_armes`, `r3f_acc` -{% endif %} - {% if include.component == "compat_rh_acc" %} `RH_acc` {% endif %} -{% if include.component == "compat_rh_de" %} -`RH_de_cfg` +{% if include.component == "compat_r3f" %} +`r3f_armes_c`, `r3f_armes`, `r3f_acc` +{% endif %} + +{% if include.component == "compat_rhs_gref3" %} +`rhsgref_main`, `rhsgref_c_weapons` {% endif %} {% if include.component == "compat_rh_m4" %} @@ -470,43 +498,15 @@ `RH_PDW` {% endif %} -{% if include.component == "compat_rhs_afrf3" %} -`ace_rearm`, `ace_refuel`, `ace_repair`, `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_trucks`, `rhs_c_2s3`, `rhs_c_rva`, `rhs_c_heavyweapons` -{% endif %} - -{% if include.component == "compat_rhs_gref3" %} -`rhsgref_main`, `rhsgref_c_weapons` +{% if include.component == "compat_rksl_pm_ii" %} +`RKSL_PMII` {% endif %} {% if include.component == "compat_rhs_usf3" %} `ace_javelin`, `ace_rearm`, `ace_refuel`, `ace_repair`, `rhsusf_c_weapons`, `rhsusf_c_troops`, `rhsusf_c_m1a1`, `rhsusf_c_m1a2`, `RHS_US_A2_AirImport`, `rhsusf_c_m109`, `rhsusf_c_HEMTT_A4`, `rhsusf_c_hmmwv`, `rhsusf_c_rg33`, `rhsusf_c_fmtv`, `rhsusf_c_m113`, `RHS_US_A2Port_Armor`, `rhsusf_c_melb` {% endif %} -{% if include.component == "compat_rksl_pm_ii" %} -`RKSL_PMII` -{% endif %} - -{% if include.component == "compat_sma3_iansky" %} -`iansky_opt` -{% endif %} - -{% if include.component == "noactionmenu" %} -`ace_common` -{% endif %} - -{% if include.component == "nocrosshair" %} -`ace_common` -{% endif %} - -{% if include.component == "nouniformrestrictions" %} -`ace_common` -{% endif %} - {% if include.component == "particles" %} `ace_common` {% endif %} -{% if include.component == "tracers" %} -`ace_ballistics` -{% endif %} - From 3c697ca80b5b0aef55827c84b88ed99b000d2f7b Mon Sep 17 00:00:00 2001 From: God of Monkeys Date: Thu, 8 Feb 2018 05:15:15 +0800 Subject: [PATCH 023/235] Chinese Language Update (#6130) Chinese Language Update --- addons/advanced_ballistics/stringtable.xml | 4 + addons/arsenal/stringtable.xml | 130 +++++++++++++++++++++ addons/ballistics/stringtable.xml | 4 +- addons/common/stringtable.xml | 8 ++ addons/cookoff/stringtable.xml | 4 + addons/interaction/stringtable.xml | 2 + addons/markers/stringtable.xml | 6 + addons/maverick/stringtable.xml | 6 + addons/nightvision/stringtable.xml | 16 +++ addons/parachute/stringtable.xml | 4 + addons/realisticnames/stringtable.xml | 13 ++- addons/repair/stringtable.xml | 8 ++ addons/scopes/stringtable.xml | 6 + 13 files changed, 209 insertions(+), 2 deletions(-) diff --git a/addons/advanced_ballistics/stringtable.xml b/addons/advanced_ballistics/stringtable.xml index 7abec780da..f638e4c366 100644 --- a/addons/advanced_ballistics/stringtable.xml +++ b/addons/advanced_ballistics/stringtable.xml @@ -87,6 +87,8 @@ 銃口初速の変化 Abilita Variazione Velocità Volata 총구속도 변화적용 + 啟用槍口初速變化 + 启用枪口初速变化 Simulates slight variations in muzzle velocity between each shot @@ -94,6 +96,8 @@ 発射毎に僅かな銃口初速の変化をシミュレートします。 Simula lievi variazioni della velocità della volata tra un colpo e l'altro 각 사격 사이에 총구속도 변화를 시뮬레이션 합니다. + 模擬每發子彈的槍口初速都略有不同 + 模拟每发子弹的枪口初速都略有不同 Enable Ammo Temperature Simulation diff --git a/addons/arsenal/stringtable.xml b/addons/arsenal/stringtable.xml index e4c19a07b4..0af4347727 100644 --- a/addons/arsenal/stringtable.xml +++ b/addons/arsenal/stringtable.xml @@ -9,6 +9,8 @@ 非表示 Nascondere 숨김 + 隱藏 + 隐藏 Hide interface @@ -18,6 +20,8 @@ インターフェイスを隠す Nascondi interfaccia 인터페이스 숨기기 + 隱藏介面 + 隐藏介面 Loadouts @@ -27,6 +31,8 @@ 装備 Equipaggiamenti 로드아웃 + 裝備 + 装备 Export @@ -36,6 +42,8 @@ 出力 Esporta 내보내기 + 匯出 + 汇出 Import @@ -45,6 +53,8 @@ 取込 Importa 가져오기 + 匯入 + 汇入 Close @@ -54,6 +64,8 @@ 閉じる Chiudi 닫기 + 關閉 + 关闭 No virtual item available @@ -63,6 +75,8 @@ 利用可能なバーチャル アイテムは無し Nessun oggetto virtuale disponibile 가상장비 사용 불가 + 沒有可用的虛擬物品 + 没有可用的虚拟物品 Save @@ -72,6 +86,8 @@ 保存 Salva 저장 + 保存 + 保存 Save the current loadout @@ -81,6 +97,8 @@ 現在の装備を保存します Salva l'equipaggiamento corrente 현재 로드아웃 저장 + 保存當前的裝備 + 保存当前的装备 Rename @@ -90,6 +108,8 @@ 改名 Rinomina 이름바꾸기 + 重新命名 + 重新命名 Rename the selected loadout @@ -99,6 +119,8 @@ 現在選択中の装備を改名します Rinomina l'equipaggiamento selezionato 선택한 로드아웃의 이름 바꾸기 + 重新命名當前選擇的裝備 + 重新命名当前选择的装备 Load @@ -108,6 +130,8 @@ 読み込む Carica 불러오기 + 載入 + 载入 Load the selected loadout @@ -117,6 +141,8 @@ 現在選択中の装備を読み込みます Carica l'equipaggiamento selezionato 선택한 로드아웃 불러오기 + 載入當前選擇的裝備 + 载入当前选择的装备 Delete @@ -126,6 +152,8 @@ 削除 Elimina 삭제 + 刪除 + 删除 Delete the selected loadout @@ -135,6 +163,8 @@ 現在選択中の装備を削除します Elimina l'equipaggiamento selezionato 선택한 로드아웃 삭제하기 + 刪除當前選擇的裝備 + 删除当前选择的装备 My loadouts @@ -144,6 +174,8 @@ 自分の装備 I miei equipaggiamenti 내 로드아웃 + 我的裝備 + 我的装备 Loadouts saved in your profile @@ -153,6 +185,8 @@ 自プロフィールに保存された装備です Gli equipaggiamenti salvati nel tuo profilo 프로필에 저장된 로드아웃 + 裝備已保存到你的設定檔中 + 装备已保存到你的设定档中 Default loadouts @@ -162,6 +196,8 @@ 標準の装備 Equipaggiamenti standard 기본 로드아웃 + 預設裝備 + 预设装备 Loadouts made available by the mission maker @@ -171,6 +207,8 @@ 装備はミッション著者によって利用できます Equipaggiamenti resi disponibili dal creatore della missione 미션메이커가 허용한 로드아웃 + 任務作者提供的預設裝備 + 任务作者提供的预设装备 Public loadouts @@ -180,6 +218,8 @@ 公開装備 Equipaggiamenti pubblici 공용 로드아웃 + 公用裝備 + 公用装备 Loadouts shared by you and other players @@ -189,6 +229,8 @@ 自分か他人によって共有された装備です Equipaggiamenti condivisi da te e da altri giocatori 플레이어들이 공유하는 로드아웃 + 由你與其他玩家分享的裝備配置 + 由你与其他玩家分享的装备配置 Sort by weight @@ -198,6 +240,8 @@ 重量で並び替え Ordina per peso 무게로 정렬 + 以重量排序 + 以重量排序 Sort by amount @@ -207,6 +251,8 @@ 量で並び替え Ordina per quantitativo 갯수로 정렬 + 以數量排序 + 以数量排序 Share or stop sharing the selected loadout @@ -216,6 +262,8 @@ 選択した装備の共有設定 Condividi o smetti di condividere l'equipaggiamento selezionato 선택한 로드아웃 공유 혹은 공유중지 + 開始/停止分享當前選擇的裝備 + 开始/停止分享当前选择的装备 Private @@ -225,6 +273,8 @@ 非公開 Privato 개인 + 私用 + 私用 Public @@ -234,6 +284,8 @@ 公開 Pubblico 공용 + 公用 + 公用 The default loadouts list is empty! @@ -243,6 +295,8 @@ 標準の装備一欄が空です! La lista degli equipaggiamenti standard è vuota! 기본 로드아웃 목록이 비어있습니다! + 沒有預設的裝備清單! + 没有预设的装备清单! Default loadouts list exported to clipboard @@ -252,6 +306,8 @@ 標準の装備一欄はクリップボードへ出力されました La lista degli equipaggiamenti standard è stata esportata negli appunti 클립보드에 기본 로드아웃 목록 내보내기 + 預設的裝備清單已匯出到剪貼簿中 + 预设的装备清单已汇出到剪贴簿中 Current loadout exported to clipboard @@ -261,6 +317,8 @@ 現在の装備はクリップボードへ出力されました Equipaggiamento corrente esportato negli appunti 현재 로드아웃을 클립보드로 내보냈습니다. + 當前的裝備已匯出到剪貼簿中 + 当前的装备已汇出到剪贴簿中 Wrong format provided @@ -270,6 +328,8 @@ 間違ったフォーマットが入力されました Formato fornito sbagliato 잘못된 형식 입력됨 + 提供的格式錯誤 + 提供的格式错误 Default loadouts list imported from clipboard @@ -279,6 +339,8 @@ 標準の装備一欄はクリップボードから取込されました La lista degli equipaggiamenti standard è stata importata dagli appunti 클립보드에서 기본 로드아웃 가져오기 + 預設的裝備清單已從剪貼簿中匯入 + 预设的装备清单已从剪贴簿中汇入 Loadout imported from clipboard @@ -288,6 +350,8 @@ 装備はクリップボードから取込されました Equipaggiamento importato dagli appunti 클립보드에서 로드아웃을 가져왔습니다. + 裝備已從剪貼簿中匯入 + 装备已从剪贴簿中汇入 The following loadout was deleted: @@ -297,6 +361,8 @@ 次の装備は削除されました: Il seguente equipaggiamento è stato eliminato: 다음 로드아웃이 삭제됨 : + 以下的裝備已被刪除: + 以下的装备已被删除: The following loadout is not public anymore: @@ -306,6 +372,8 @@ 次の装備は非公開になりました: Il seguente eequipaggiamento non è più pubblico: 다음 로드아웃이 더이상 공용이 아님: + 以下的裝備已不再被分享: + 以下的装备已不再被分享: The name field is empty! @@ -315,6 +383,8 @@ 名前欄が空白です! Il campo del nome è vuoto! 이름칸이 비었습니다! + 名稱欄位為空! + 名称栏位为空! You are the author of this loadout @@ -324,6 +394,8 @@ あなたはこの装備の作者です Sei l'autore di questo equipaggiamento 이 로드아웃의 제작자입니다. + 你是這個裝備的作者 + 你是这个装备的作者 A loadout of yours with the same name is public @@ -333,6 +405,8 @@ あなたの装備は既に公開されているものと同名です Un tuo equipaggiamento con lo stesso nome è pubblico 같은 이름의 로드아웃이 공용에 있습니다. + 已有相同名稱的裝備在公用分享區 + 已有相同名称的装备在公用分享区 The following loadout was saved: @@ -342,6 +416,8 @@ 次の装備は保存されました: Il seguente equipaggiamento è stato salvato: 다음 로드아웃이 저장됨: + 以下的裝備已被保存: + 以下的装备已被保存: The following loadout was loaded: @@ -351,6 +427,8 @@ 次の装備が読み込みされました: Il seguente equipaggiamento è stato caricato: 다음 로드아웃을 불러옴: + 以下的裝備已被載入: + 以下的装备已被载入: A loadout with the same name already exist! @@ -360,6 +438,8 @@ 既にその名前は装備に使われています! Un equipaggiamento con lo stesso nome è gia esistente! 같은 이름의 로드아웃이 이미 존재합니다! + 已有相同名稱的裝備! + 已有相同名称的装备! was renamed to @@ -369,6 +449,8 @@ 次の名前に改名されました E' stato rinominato in 이름이 다음과 같이 변경됨: + 已被改名為 + 已被改名为 Invert camera controls @@ -378,6 +460,8 @@ カメラ操作を反転 Inverti comandi camera 카메라 조종 반전 + 反轉攝影機控制 + 反转摄影机控制 Enable mod icons @@ -387,6 +471,8 @@ MOD アイコンを表示 Abilita icone mod 모드 아이콘 허가 + 啟用模組圖示 + 启用模组图示 Panel font height @@ -396,6 +482,8 @@ パネルにあるフォントの高さ Altezza carattere del pannello 패널 폰트 높이 + 面板字體高度 + 面板字体高度 Allow default loadouts @@ -405,6 +493,8 @@ 標準の装備を許可 Consenti equipaggiamenti standard 기본 로드아웃 허용 + 允許預設裝備 + 允许预设装备 Allow loadout sharing @@ -414,6 +504,8 @@ 装備の共有を許可 Consenti condivisione equipaggiamenti 로드아웃 공유 허용 + 允許分享裝備 + 允许分享装备 Log missing / unavailable items @@ -423,6 +515,8 @@ 欠落 / 利用不可アイテムを記録 Log mancante / oggetto non disponibile 누락 된 항목 / 사용 할 수 없는 항목 기록 + 記錄遺失/無法使用的項目 + 记录遗失/无法使用的项目 Primary magazine @@ -432,6 +526,8 @@ Caricatore primario 주무기 탄약 Primärmagazin + 主要武器彈匣 + 主要武器弹匣 Secondary magazine @@ -441,6 +537,8 @@ Caricatore secondario 보조무기 탄약 Sekundärmagazin + 次要武器彈匣 + 次要武器弹匣 ACE Arsenal @@ -450,6 +548,8 @@ ACE 武器庫 Arsenale ACE ACE 아스날 + ACE虛擬軍火庫 + ACE虚拟军火库 Allow the use of the default loadouts tab @@ -459,6 +559,8 @@ Consenti l'uso della sezione per gli equipaggiamenti standard 기본 로드아웃 탭 사용 허가 Erlaube die Nutzung des Standardausrüstungsreiters + 允許使用預設的裝備 + 允许使用预设的装备 Show / hide mod icons for the left panel @@ -468,6 +570,8 @@ Mostra / nascondi le icone delle mod dal pannello sinistro 왼쪽 패널의 모드 아이콘 표시 / 숨기기 Zeigt/Versteckt Mod-Symbole in der linken Leiste + 在左面板中顯示/隱藏模組圖示 + 在左面板中显示/隐藏模组图示 Change the font height for text in the left / right panels @@ -477,6 +581,8 @@ Cambia l'altezza del font per il testo sul pannello sinistro / destro 왼쪽 / 오른쪽 패널 텍스트의 글꼴 높이 변경 Ändert die Schriftgröße für die linke/rechte Leiste + 變更左/右面板中的字體高度 + 变更左/右面板中的字体高度 Log missing / unavailable items in the RPT @@ -486,6 +592,8 @@ Log mancante / oggetto non disponibile nell' RPT RPT에 누락 된 항목 / 사용할 수없는 항목 기록 Fehlende Gegenstände werden in der RPT aufgezeichnet + 記錄遺失/無法使用的項目到RPT檔案中 + 记录遗失/无法使用的项目到RPT档案中 Unable to open ACE arsenal @@ -494,6 +602,8 @@ Impossibile aprire l'arsenale ACE ACE 武器庫を開けません ACE 아스날을 열 수 없음 + 無法開啟ACE虛擬軍火庫 + 无法开启ACE虚拟军火库 Import BI VA loadouts to ACE Arsenal @@ -501,6 +611,8 @@ Importiert die BI-VA-Ausrüstungen in das ACE-Arsenal 標準の VA 装備から ACE 武器庫へ取り込み 바닐라 로드아웃을 ace 아스날로 가져오기 + 匯入BI原廠虛擬軍火庫的裝備到ACE虛擬軍火庫中 + 汇入BI原厂虚拟军火库的装备到ACE虚拟军火库中 No player unit available! Place a unit and mark it as "Player". @@ -508,6 +620,8 @@ Keine Spielereinheit verfügbar. Setze eine Einheit und markiere sie als "Spieler". プレイヤー ユニットがありません!ユニットを設置しそれを"Player"と名付けてください。 플레이어 유닛을 사용할 수 없습니다! 유닛을 놓고 "플레이어"라고 표시하십시오. + 沒有可用的玩家單位!請擺放一個單位並設定成"玩家"。 + 没有可用的玩家单位!请摆放一个单位并设定成"玩家"。 No loadouts to import. @@ -515,42 +629,58 @@ Keine Ausrüstungen zum Importieren 取り込みする装備がありません。 가져올 로드 아웃이 없습니다. + 沒有裝備被匯入。 + 没有装备被汇入。 ACE Arsenal ACE-Arsenal ACE 武器庫 ACE 아스날 + ACE虛擬軍火庫 + ACE虚拟军火库 Return to ACE Arsenal. Zurück zum ACE-Arsenal. ACE 武器庫へ戻ります。 ACE 아스날로 돌아가기 + 返回到ACE虛擬軍火庫。 + 返回到ACE虚拟军火库。 Use ACE Arsenal to try out different weapons and equipment. Verwende ACE-Arsenal und sieh dir verschiedene Waffen und Ausrüstung an und probiere sie aus. さまざまな武器と装備を試せるよう ACE 武器庫を使用します。 ACE Arsenal을 사용하여 다른 무기와 장비를 시험해보십시오. + 使用ACE虛擬軍火庫來嘗試不同的武器與裝備。 + 使用ACE虚拟军火库来尝试不同的武器与装备。 Try weapons and equipment and create your own loadouts. Probiere verschiedene Waffen und Ausrüstung aus und stelle dir eigene Ausrüstungsprofile zusammen. さまざまな武器と装備を試して、あなただけの装備を作成してください。 무기와 장비를 사용해보고 자신의 로드아웃을 만듭니다. + 嘗試不同的武器與裝備來組合你個人的裝備配置。 + 尝试不同的武器与装备来组合你个人的装备配置。 Open the loadouts screen Affiche la page des équipements + 開啟裝備選單 + 开启装备选单 Export current / default loadouts Exporte l'équipement actuel ou la liste d'équipements de base + 匯出當前/預設的裝備 + 汇出当前/预设的装备 Import current / default loadouts Importer l'équipement actuel ou la liste d'équipements de base + 匯入當前/預設的裝備 + 汇入当前/预设的装备 diff --git a/addons/ballistics/stringtable.xml b/addons/ballistics/stringtable.xml index d8c09cbaeb..d4ff60c811 100644 --- a/addons/ballistics/stringtable.xml +++ b/addons/ballistics/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -2006,6 +2006,8 @@ .338 Scenar 338 Scenar .338 Scenar + .338 Scenar + .338 Scenar Caliber: 8.6x70mm (300gr Lapua Scenar)<br />Rounds: 10 diff --git a/addons/common/stringtable.xml b/addons/common/stringtable.xml index bbf71c4eea..94e7f4cb89 100644 --- a/addons/common/stringtable.xml +++ b/addons/common/stringtable.xml @@ -634,6 +634,8 @@ Laser/torcia dell'arma costantemente accesi 무기 레이저 포인터 / 손전등 지속 Kontinuität des Laserpointers/Taktischen Lichts + 保持武器雷射/手電筒的狀態 + 保持武器雷射/手电筒的状态 Enable gunlight after weapon switch or vehicle enter/exit if it was previously enabled. @@ -642,6 +644,8 @@ Abilita la torcia/laser dopo il cambio dell'arma o l'entrata/uscita del veicolo se precedentemente attiva. 무기를 바꾸거나 차량에 승하차 할 때 이전에 스위치 켜고 끔을 유지합니다. Aktiviert Laserpointer/Taktisches Licht nach einem Waffenwechsel oder dem Auf-/Absitzen, falls es zuvor aktiv war. + 保存武器雷射/手電筒的開關狀態,使玩家切換武器或進出載具時能保持之前的的狀態。 + 保存武器雷射/手电筒的开关状态,使玩家切换武器或进出载具时能保持之前的的状态。 Banana @@ -1163,11 +1167,15 @@ Allow turning down music Erlaube Musik leiser stellen 음악 끄기 허용 + 允許調低音樂音量 + 允许调低音乐音量 Allow ACE scripts to turn down the music. Erlaube ACE-Skripten, die Musik leiser zu stellen. ACE 스크립트가 음악을 끌 수 있습니다. + 允許ACE腳本去控制音樂的音量。 + 允许ACE脚本去控制音乐的音量。 diff --git a/addons/cookoff/stringtable.xml b/addons/cookoff/stringtable.xml index 006c433146..01ee1c04b6 100644 --- a/addons/cookoff/stringtable.xml +++ b/addons/cookoff/stringtable.xml @@ -123,12 +123,16 @@ 誘爆の可能性係数 Coefficiente probabilità esplosione Faktor für Wahrscheinlichkeit der Durchzündung + 殉爆發生機率係數 + 殉爆发生机率系数 Multiplier for cook-off probability. Higher value results in higher cook-off probability 誘爆する可能性の乗数。高い値では誘爆する可能性が高まります。 Moltiplicatore per la probabilità dell'esplosione. Un valore più alto aumenta la probabilità dell'esplosione Faktor für Wahrscheinlichkeit der Durchzündung. Ein höherer Wert führt zu höherer Durchzündungswahrscheinlichkeit. + 調整殉爆發生機率係數。值越高代表越容易發生殉爆。 + 调整殉爆发生机率系数。值越高代表越容易发生殉爆。 diff --git a/addons/interaction/stringtable.xml b/addons/interaction/stringtable.xml index 08081daaca..c0fd822f86 100644 --- a/addons/interaction/stringtable.xml +++ b/addons/interaction/stringtable.xml @@ -1081,6 +1081,8 @@ 身体を引き出す Estrai il corpo 시체 끌기 + 拿出屍體 + 拿出尸体 diff --git a/addons/markers/stringtable.xml b/addons/markers/stringtable.xml index b23462ba46..afcf9e1ba7 100644 --- a/addons/markers/stringtable.xml +++ b/addons/markers/stringtable.xml @@ -31,18 +31,24 @@ Erlaube Marker zu bewegen für 次ユーザーにマーカー移動を許可 마커 이동 허가 + 誰可以移動標誌 + 谁可以移动标志 Restricts which players are able to move markers while holding the Alt key. Beschränkt welche Spieler Marker mit gedrückter Alt-Taste bewegen können. どのプレイヤーが Alt キーを押しながらマーカー移動をさせられるか制限できます。 Alt 키를 누른 상태에서 마커를 움직일 수있는 플레이어를 제한합니다. + 設定誰可以透過按住Alt鍵來移動標誌。 + 设定谁可以透过按住Alt键来移动标志。 Nobody Niemand 不許可 비활성 + 沒有人 + 没有人 All players diff --git a/addons/maverick/stringtable.xml b/addons/maverick/stringtable.xml index 5233f7bf2f..e43d70a620 100644 --- a/addons/maverick/stringtable.xml +++ b/addons/maverick/stringtable.xml @@ -51,12 +51,16 @@ Kh-25ML, Laser Guided Air-to-Ground-Missile Ch-25ML, Lasergelenkte Luft-Boden-Rakete Kh-25ML, 레이저 유도 대공 미사일 + Kh-25ML,雷射導引對地導彈 + Kh-25ML,雷射导引对地导弹 1x Kh-25ML [ACE] 1x Ch-25ML [ACE] 1x Х-25МЛ [ACE] 1x Kh-25ML [ACE] + 1x Kh-25ML [ACE] + 1x Kh-25ML [ACE] @@ -74,6 +78,8 @@ Ch-25ML Х-25МЛ Kh-25ML + Kh-25ML + Kh-25ML diff --git a/addons/nightvision/stringtable.xml b/addons/nightvision/stringtable.xml index a8a0585a37..9088b7a417 100644 --- a/addons/nightvision/stringtable.xml +++ b/addons/nightvision/stringtable.xml @@ -6,6 +6,8 @@ ACE 暗視装置 Visione notturna ACE ACE-Nachtsicht + ACE夜視鏡 + ACE夜视镜 NV Goggles (Gen1) @@ -248,37 +250,51 @@ 暗視装置の霧の規模 Livello Nebbia NVG Nebel in Nachtsicht + 夜視鏡霧氣程度 + 夜视镜雾气程度 Fog is used to limit visibility. 霧は視界制限のために使われます。 La nebbia viene utilizzata per limitare la visibilità. Nebel wird genutzt, um die Sichtbarkeit einzuschränken. + 透過霧氣來縮減夜視鏡的可視距離。 + 透过雾气来缩减夜视镜的可视距离。 NVG Effect Scale 暗視装置の効果規模 Effetto livello NVG Nachtsichteffekte + 夜視鏡效果程度 + 夜视镜效果程度 Blur and brightness effects [Setting to 0 will disable ALL nightvision effects] ぼかしと粒子、明度効果 [0 に設定で全効果を無効化します] Effetti di sfocatura e luminosità [Importare a 0 disabiliterà TUTTI gli effetti della visione notturna] Unschärfe und Helligkeitseffekte [Dies auf 0 zu setzen deaktiviert SÄMTLICHE Nachtsichteffekte] + 調整模糊與亮度的效果。[設值為0會關閉所有夜視鏡的特殊效果] + 调整模糊与亮度的效果。[设值为0会关闭所有夜视镜的特殊效果] Aim Down Sights Blur 照準器を使用時にぼかし Visierunschärfe + 瞄準具模糊程度 + 瞄准具模糊程度 NVG Noise Scale Intensität des Bildrauschens + 夜視鏡雜訊程度 + 夜视镜杂讯程度 Image noise intensity when wearing NVGs Intensität des Bildrauschens im Nachtsichtgerät + 調整配戴夜視鏡時畫面雜訊的多寡。 + 调整配戴夜视镜时画面杂讯的多寡。 diff --git a/addons/parachute/stringtable.xml b/addons/parachute/stringtable.xml index 820aa822d1..1c975454c7 100644 --- a/addons/parachute/stringtable.xml +++ b/addons/parachute/stringtable.xml @@ -102,12 +102,16 @@ Freifall-Höhenmesser verstecken 降下時に高度計を非表示 Nascondi Altimetro in Caduta Libera + 隱藏自由落體高度計 + 隐藏自由落体高度计 Hides the altitude and speed shown while free falling or parachuting. Blendet den Höhen- und Geschwindigkeitsmesser während des Fallschirmspringens aus. 自由降下時かパラシュート中に高度と速度を非表示にします。 Nasconde l'altitudine e la velocità mostrate durante la caduta libera o paracadutandosi. + 在自由落體時或開傘下隱藏自由落體高度計。 + 在自由落体时或开伞下隐藏自由落体高度计。 diff --git a/addons/realisticnames/stringtable.xml b/addons/realisticnames/stringtable.xml index 61a54b393b..6a9345f9a0 100644 --- a/addons/realisticnames/stringtable.xml +++ b/addons/realisticnames/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -1102,6 +1102,7 @@ JAS 39 グリペン JAS 39 그리펜 JAS 39 獅鷲戰鬥機 + JAS 39 狮鹫战斗机 Ka-60 Kasatka @@ -3234,26 +3235,36 @@ Polaris DAGOR (XM312) Polaris DAGOR (XM312) ポラリス DAGOR (XM312) + "北極星"先進佈署越野車 (XM312重機槍) + "北极星"先进布署越野车 (XM312重机枪) Polaris DAGOR Polaris DAGOR ポラリス DAGOR + "北極星"先進佈署越野車 + "北极星"先进布署越野车 Polaris DAGOR (light) Polaris DAGOR (leicht) ポラリス DAGOR (軽) + "北極星"先進佈署越野車 (輕型) + "北极星"先进布署越野车 (轻型) LSV Mk. II (M134) LSV Mk. II (M134) LSV Mk. II (M134) + 輕型突擊車2式 (M134迷你機炮) + 轻型突击车2式 (M134迷你机炮) LSV Mk. II LSV Mk. II LSV Mk. II + 輕型突擊車2式 + 轻型突击车2式 diff --git a/addons/repair/stringtable.xml b/addons/repair/stringtable.xml index fb4a44ca7b..d5f9329b96 100644 --- a/addons/repair/stringtable.xml +++ b/addons/repair/stringtable.xml @@ -1797,24 +1797,32 @@ Ersatzketten 予備履帯 Cingoli di Scorta + 備用履帶 + 备用履带 Number of spare tracks in cargo. Anzahl der Ersatzketten im Laderaum. カーゴ内にある予備履帯の数を指定します。 Numero dei cingoli di scorta nel cargo. + 設定載具在貨艙內攜帶的備用履帶數量。 + 设定载具在货舱内携带的备用履带数量。 Spare Wheels Ersatzreifen 予備タイヤ Ruote di Scorta + 備用輪胎 + 备用轮胎 Number of spare wheels in cargo. Anzahl der Ersatzreifen im Laderaum. カーゴ内にある予備タイヤの数を指定します。 Numero delle ruote di scorta nel cargo. + 設定載具在貨艙內攜帶的備用輪胎數量。 + 设定载具在货舱内携带的备用轮胎数量。 diff --git a/addons/scopes/stringtable.xml b/addons/scopes/stringtable.xml index aac4152678..9bb2468339 100644 --- a/addons/scopes/stringtable.xml +++ b/addons/scopes/stringtable.xml @@ -234,6 +234,8 @@ 簡略なゼロイン Azzeramento semplificato 단순화 된 영점 조정 + 簡單歸零 + 简单归零 Replicates the vanilla zeroing system for riflescopes. @@ -241,6 +243,8 @@ 標準で使われるライフルスコープ用のゼロイン システムを複製します。 Replica il sistema di azzeramento vanilla per le ottiche. 라이플스코프 용 바닐라 영점조정 시스템을 복제합니다. + 使用原版的歸零系統來取代ACE複雜的歸零模擬。 + 使用原版的归零系统来取代ACE复杂的归零模拟。 Minor adjustment up @@ -392,6 +396,8 @@ ゼロイン調節を初期化 Resetta i valori dell'azzeramento 영점 조정 재설정 + 重設歸零 + 重设归零 This module adds windage and elevation adjustment turrets on high power rifle scopes. From f0b72031056ee7b695f451722da5b6c611a54954 Mon Sep 17 00:00:00 2001 From: ace3mod Date: Wed, 7 Feb 2018 22:15:51 +0100 Subject: [PATCH 024/235] [Docs] Update component dependencies Automatically committed through Travis CI. [ci skip] --- docs/_includes/dependencies_list.md | 772 ++++++++++++++-------------- 1 file changed, 386 insertions(+), 386 deletions(-) diff --git a/docs/_includes/dependencies_list.md b/docs/_includes/dependencies_list.md index b8a8b6e978..c38e95b5a6 100644 --- a/docs/_includes/dependencies_list.md +++ b/docs/_includes/dependencies_list.md @@ -1,320 +1,20 @@ -{% if include.component == "inventory" %} -`ace_common` -{% endif %} - -{% if include.component == "mk6mortar" %} -`ace_interaction` -{% endif %} - -{% if include.component == "arsenal" %} -`ace_common` -{% endif %} - -{% if include.component == "weather" %} -`ace_common` -{% endif %} - -{% if include.component == "recoil" %} -`ace_common` -{% endif %} - -{% if include.component == "reloadlaunchers" %} -`ace_interaction` -{% endif %} - -{% if include.component == "flashlights" %} -`ace_interaction` -{% endif %} - -{% if include.component == "weaponselect" %} -`ace_common` -{% endif %} - -{% if include.component == "refuel" %} -`ace_interaction` -{% endif %} - -{% if include.component == "rearm" %} -`ace_interaction` -{% endif %} - -{% if include.component == "realisticweights" %} -`ace_common` -{% endif %} - -{% if include.component == "yardage450" %} -`ace_apl`, `ace_laser` -{% endif %} - -{% if include.component == "advanced_ballistics" %} -`ace_ballistics`, `ace_weather` -{% endif %} - -{% if include.component == "aircraft" %} -`ace_common` -{% endif %} - -{% if include.component == "logistics_uavbattery" %} -`ace_interaction` -{% endif %} - -{% if include.component == "zeus" %} -`ace_common`, `ace_ai` -{% endif %} - -{% if include.component == "quickmount" %} -`ace_common` -{% endif %} - -{% if include.component == "laserpointer" %} -`ace_common` -{% endif %} - -{% if include.component == "tagging" %} -`ace_interaction` -{% endif %} - {% if include.component == "apl" %} `ace_main` {% endif %} -{% if include.component == "medical_ai" %} -`ace_medical` -{% endif %} - -{% if include.component == "slideshow" %} -`ace_common` -{% endif %} - -{% if include.component == "common" %} -`ace_main`, `ace_modules` -{% endif %} - -{% if include.component == "javelin" %} -`ace_main`, `ace_common`, `ace_missileguidance` -{% endif %} - -{% if include.component == "smallarms" %} -`ace_common` -{% endif %} - -{% if include.component == "repair" %} -`ace_interaction` -{% endif %} - -{% if include.component == "disarming" %} -`ACE_Interaction` -{% endif %} - -{% if include.component == "dogtags" %} -`ace_interaction` -{% endif %} - -{% if include.component == "thermals" %} -`ace_common` -{% endif %} - -{% if include.component == "minedetector" %} -`ace_explosives` -{% endif %} - -{% if include.component == "medical" %} -`ace_interaction`, `ace_apl` -{% endif %} - -{% if include.component == "noradio" %} -`ace_common` -{% endif %} - -{% if include.component == "tacticalladder" %} -`ace_apl`, `ace_interaction` -{% endif %} - -{% if include.component == "cargo" %} -`ace_interaction` -{% endif %} - {% if include.component == "vector" %} `ace_common` {% endif %} -{% if include.component == "scopes" %} -`ace_common` -{% endif %} - -{% if include.component == "advanced_fatigue" %} -`ace_common` -{% endif %} - -{% if include.component == "hitreactions" %} -`ace_common` -{% endif %} - -{% if include.component == "logistics_wirecutter" %} -`ace_interaction` -{% endif %} - -{% if include.component == "gforces" %} -`ace_common` -{% endif %} - -{% if include.component == "overpressure" %} -`ace_common` -{% endif %} - -{% if include.component == "ui" %} -`ace_common` -{% endif %} - -{% if include.component == "safemode" %} -`ace_common` -{% endif %} - -{% if include.component == "interact_menu" %} -`ace_common` -{% endif %} - -{% if include.component == "nightvision" %} -`ace_common` -{% endif %} - -{% if include.component == "sandbag" %} -`ace_interaction` -{% endif %} - -{% if include.component == "backpacks" %} -`ace_common` -{% endif %} - -{% if include.component == "parachute" %} -`ace_common` -{% endif %} - -{% if include.component == "gunbag" %} -`ace_interaction`, `ace_movement` -{% endif %} - -{% if include.component == "kestrel4500" %} -`ACE_common`, `ACE_weather` -{% endif %} - -{% if include.component == "disposable" %} -`ace_common` -{% endif %} - -{% if include.component == "realisticnames" %} -`ace_common` -{% endif %} - -{% if include.component == "fastroping" %} -`ace_interaction` -{% endif %} - -{% if include.component == "gestures" %} -`ace_interact_menu` -{% endif %} - -{% if include.component == "goggles" %} -`ace_common` -{% endif %} - -{% if include.component == "nametags" %} -`ace_interaction` -{% endif %} - -{% if include.component == "spectator" %} -`ace_common` -{% endif %} - -{% if include.component == "markers" %} -`ace_common` -{% endif %} - -{% if include.component == "missileguidance" %} -`ace_laser` -{% endif %} - -{% if include.component == "dagr" %} -`ace_weather` -{% endif %} - -{% if include.component == "switchunits" %} -`ace_common` -{% endif %} - -{% if include.component == "huntir" %} -`ace_common` -{% endif %} - -{% if include.component == "flashsuppressors" %} -`ace_common` -{% endif %} - -{% if include.component == "vehicles" %} -`ace_common` -{% endif %} - -{% if include.component == "explosives" %} -`ace_interaction` -{% endif %} - -{% if include.component == "maptools" %} -`ace_interaction` -{% endif %} - -{% if include.component == "cookoff" %} -`ace_common` -{% endif %} - -{% if include.component == "concertina_wire" %} -`ace_apl`, `ace_interaction` -{% endif %} - -{% if include.component == "dragging" %} -`ace_interaction` -{% endif %} - -{% if include.component == "reload" %} -`ace_interaction` -{% endif %} - -{% if include.component == "ballistics" %} -`ace_common` -{% endif %} - -{% if include.component == "modules" %} -`ace_main` -{% endif %} - -{% if include.component == "mx2a" %} -`ace_apl` -{% endif %} - -{% if include.component == "hellfire" %} -`ace_interaction`, `ace_missileguidance` -{% endif %} - -{% if include.component == "medical_blood" %} -`ace_main` -{% endif %} - -{% if include.component == "medical_menu" %} -`ace_medical` -{% endif %} - -{% if include.component == "pylons" %} -`ace_interact_menu` -{% endif %} - {% if include.component == "winddeflection" %} `ace_weather` {% endif %} -{% if include.component == "spottingscope" %} -`ace_apl`, `ace_interaction` +{% if include.component == "frag" %} +`ace_common` {% endif %} -{% if include.component == "norearm" %} +{% if include.component == "ai" %} `ace_common` {% endif %} @@ -322,59 +22,131 @@ `ace_interaction` {% endif %} -{% if include.component == "respawn" %} +{% if include.component == "nlaw" %} +`ace_missileguidance` +{% endif %} + +{% if include.component == "smallarms" %} `ace_common` {% endif %} -{% if include.component == "vehiclelock" %} +{% if include.component == "medical_menu" %} +`ace_medical` +{% endif %} + +{% if include.component == "mk6mortar" %} `ace_interaction` {% endif %} -{% if include.component == "rangecard" %} -`ACE_Advanced_Ballistics`, `ace_scopes` +{% if include.component == "zeus" %} +`ace_common`, `ace_ai` {% endif %} -{% if include.component == "fonts" %} -`ace_main` +{% if include.component == "nametags" %} +`ace_interaction` {% endif %} -{% if include.component == "laser" %} +{% if include.component == "dogtags" %} +`ace_interaction` +{% endif %} + +{% if include.component == "maptools" %} +`ace_interaction` +{% endif %} + +{% if include.component == "recoil" %} `ace_common` {% endif %} -{% if include.component == "tripod" %} -`ace_interaction` +{% if include.component == "flashsuppressors" %} +`ace_common` +{% endif %} + +{% if include.component == "dagr" %} +`ace_weather` +{% endif %} + +{% if include.component == "quickmount" %} +`ace_common` +{% endif %} + +{% if include.component == "goggles" %} +`ace_common` +{% endif %} + +{% if include.component == "aircraft" %} +`ace_common` +{% endif %} + +{% if include.component == "spottingscope" %} +`ace_apl`, `ace_interaction` +{% endif %} + +{% if include.component == "arsenal" %} +`ace_common` {% endif %} {% if include.component == "map" %} `ace_interaction` {% endif %} -{% if include.component == "interaction" %} -`ace_interact_menu` +{% if include.component == "vehiclelock" %} +`ace_interaction` {% endif %} -{% if include.component == "captives" %} -`ACE_Interaction` +{% if include.component == "missileguidance" %} +`ace_laser` +{% endif %} + +{% if include.component == "minedetector" %} +`ace_explosives` +{% endif %} + +{% if include.component == "explosives" %} +`ace_interaction` {% endif %} {% if include.component == "missionmodules" %} `ace_common` {% endif %} -{% if include.component == "advanced_throwing" %} -`ace_common`, `ace_weaponselect` +{% if include.component == "medical_ai" %} +`ace_medical` {% endif %} -{% if include.component == "noidle" %} +{% if include.component == "fcs" %} +`ace_interaction` +{% endif %} + +{% if include.component == "common" %} +`ace_main`, `ace_modules` +{% endif %} + +{% if include.component == "huntir" %} `ace_common` {% endif %} -{% if include.component == "grenades" %} +{% if include.component == "advanced_fatigue" %} `ace_common` {% endif %} -{% if include.component == "movement" %} +{% if include.component == "scopes" %} +`ace_common` +{% endif %} + +{% if include.component == "safemode" %} +`ace_common` +{% endif %} + +{% if include.component == "overpressure" %} +`ace_common` +{% endif %} + +{% if include.component == "pylons" %} +`ace_interact_menu` +{% endif %} + +{% if include.component == "optionsmenu" %} `ace_common` {% endif %} @@ -382,55 +154,223 @@ `ace_common` {% endif %} -{% if include.component == "attach" %} -`ace_interaction` +{% if include.component == "gunbag" %} +`ace_interaction`, `ace_movement` {% endif %} -{% if include.component == "chemlights" %} +{% if include.component == "weather" %} `ace_common` {% endif %} -{% if include.component == "fcs" %} -`ace_interaction` -{% endif %} - {% if include.component == "maverick" %} `ace_missileguidance` {% endif %} -{% if include.component == "nlaw" %} -`ace_missileguidance` -{% endif %} - -{% if include.component == "trenches" %} +{% if include.component == "cargo" %} `ace_interaction` {% endif %} -{% if include.component == "hearing" %} +{% if include.component == "hellfire" %} +`ace_interaction`, `ace_missileguidance` +{% endif %} + +{% if include.component == "cookoff" %} +`ace_common` +{% endif %} + +{% if include.component == "grenades" %} +`ace_common` +{% endif %} + +{% if include.component == "realisticweights" %} +`ace_common` +{% endif %} + +{% if include.component == "noidle" %} +`ace_common` +{% endif %} + +{% if include.component == "thermals" %} +`ace_common` +{% endif %} + +{% if include.component == "flashlights" %} `ace_interaction` {% endif %} +{% if include.component == "nightvision" %} +`ace_common` +{% endif %} + +{% if include.component == "hitreactions" %} +`ace_common` +{% endif %} + +{% if include.component == "switchunits" %} +`ace_common` +{% endif %} + +{% if include.component == "sandbag" %} +`ace_interaction` +{% endif %} + +{% if include.component == "dragging" %} +`ace_interaction` +{% endif %} + +{% if include.component == "advanced_throwing" %} +`ace_common`, `ace_weaponselect` +{% endif %} + +{% if include.component == "mx2a" %} +`ace_apl` +{% endif %} + +{% if include.component == "movement" %} +`ace_common` +{% endif %} + +{% if include.component == "spectator" %} +`ace_common` +{% endif %} + +{% if include.component == "weaponselect" %} +`ace_common` +{% endif %} + +{% if include.component == "medical" %} +`ace_interaction`, `ace_apl` +{% endif %} + +{% if include.component == "reload" %} +`ace_interaction` +{% endif %} + +{% if include.component == "fonts" %} +`ace_main` +{% endif %} + +{% if include.component == "tacticalladder" %} +`ace_apl`, `ace_interaction` +{% endif %} + +{% if include.component == "ballistics" %} +`ace_common` +{% endif %} + +{% if include.component == "tagging" %} +`ace_interaction` +{% endif %} + +{% if include.component == "gestures" %} +`ace_interact_menu` +{% endif %} + +{% if include.component == "slideshow" %} +`ace_common` +{% endif %} + +{% if include.component == "captives" %} +`ACE_Interaction` +{% endif %} + {% if include.component == "atragmx" %} `ACE_Advanced_Ballistics`, `ACE_common`, `ACE_weather` {% endif %} -{% if include.component == "frag" %} +{% if include.component == "ui" %} `ace_common` {% endif %} -{% if include.component == "optionsmenu" %} -`ace_common` +{% if include.component == "tripod" %} +`ace_interaction` {% endif %} {% if include.component == "magazinerepack" %} `ace_interaction` {% endif %} -{% if include.component == "ai" %} +{% if include.component == "disposable" %} `ace_common` {% endif %} -{% if include.component == "map_gestures" %} +{% if include.component == "yardage450" %} +`ace_apl`, `ace_laser` +{% endif %} + +{% if include.component == "laser" %} +`ace_common` +{% endif %} + +{% if include.component == "rangecard" %} +`ACE_Advanced_Ballistics`, `ace_scopes` +{% endif %} + +{% if include.component == "attach" %} +`ace_interaction` +{% endif %} + +{% if include.component == "medical_blood" %} +`ace_main` +{% endif %} + +{% if include.component == "optics" %} +`ace_common` +{% endif %} + +{% if include.component == "repair" %} +`ace_interaction` +{% endif %} + +{% if include.component == "javelin" %} +`ace_main`, `ace_common`, `ace_missileguidance` +{% endif %} + +{% if include.component == "modules" %} +`ace_main` +{% endif %} + +{% if include.component == "chemlights" %} +`ace_common` +{% endif %} + +{% if include.component == "norearm" %} +`ace_common` +{% endif %} + +{% if include.component == "trenches" %} +`ace_interaction` +{% endif %} + +{% if include.component == "reloadlaunchers" %} +`ace_interaction` +{% endif %} + +{% if include.component == "kestrel4500" %} +`ACE_common`, `ACE_weather` +{% endif %} + +{% if include.component == "logistics_uavbattery" %} +`ace_interaction` +{% endif %} + +{% if include.component == "markers" %} +`ace_common` +{% endif %} + +{% if include.component == "backpacks" %} +`ace_common` +{% endif %} + +{% if include.component == "advanced_ballistics" %} +`ace_ballistics`, `ace_weather` +{% endif %} + +{% if include.component == "inventory" %} +`ace_common` +{% endif %} + +{% if include.component == "noradio" %} `ace_common` {% endif %} @@ -438,11 +378,75 @@ `ace_common` {% endif %} +{% if include.component == "gforces" %} +`ace_common` +{% endif %} + +{% if include.component == "logistics_wirecutter" %} +`ace_interaction` +{% endif %} + +{% if include.component == "realisticnames" %} +`ace_common` +{% endif %} + +{% if include.component == "concertina_wire" %} +`ace_apl`, `ace_interaction` +{% endif %} + +{% if include.component == "interaction" %} +`ace_interact_menu` +{% endif %} + +{% if include.component == "vehicles" %} +`ace_common` +{% endif %} + +{% if include.component == "disarming" %} +`ACE_Interaction` +{% endif %} + +{% if include.component == "map_gestures" %} +`ace_common` +{% endif %} + +{% if include.component == "fastroping" %} +`ace_interaction` +{% endif %} + +{% if include.component == "laserpointer" %} +`ace_common` +{% endif %} + +{% if include.component == "parachute" %} +`ace_common` +{% endif %} + +{% if include.component == "respawn" %} +`ace_common` +{% endif %} + +{% if include.component == "hearing" %} +`ace_interaction` +{% endif %} + {% if include.component == "finger" %} `ace_common` {% endif %} -{% if include.component == "optics" %} +{% if include.component == "rearm" %} +`ace_interaction` +{% endif %} + +{% if include.component == "refuel" %} +`ace_interaction` +{% endif %} + +{% if include.component == "interact_menu" %} +`ace_common` +{% endif %} + +{% if include.component == "nouniformrestrictions" %} `ace_common` {% endif %} @@ -450,58 +454,14 @@ `RH_de_cfg` {% endif %} -{% if include.component == "nocrosshair" %} -`ace_common` -{% endif %} - -{% if include.component == "compat_rhs_afrf3" %} -`ace_rearm`, `ace_refuel`, `ace_repair`, `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_trucks`, `rhs_c_2s3`, `rhs_c_rva`, `rhs_c_heavyweapons` -{% endif %} - -{% if include.component == "compat_sma3_iansky" %} -`iansky_opt` -{% endif %} - -{% if include.component == "nouniformrestrictions" %} -`ace_common` -{% endif %} - -{% if include.component == "noactionmenu" %} -`ace_common` -{% endif %} - -{% if include.component == "tracers" %} -`ace_ballistics` -{% endif %} - -{% if include.component == "compat_adr_97" %} -`A3_Weapons_F_Mod` -{% endif %} - -{% if include.component == "compat_rh_acc" %} -`RH_acc` +{% if include.component == "compat_rksl_pm_ii" %} +`RKSL_PMII` {% endif %} {% if include.component == "compat_r3f" %} `r3f_armes_c`, `r3f_armes`, `r3f_acc` {% endif %} -{% if include.component == "compat_rhs_gref3" %} -`rhsgref_main`, `rhsgref_c_weapons` -{% endif %} - -{% if include.component == "compat_rh_m4" %} -`RH_m4_cfg` -{% endif %} - -{% if include.component == "compat_rh_pdw" %} -`RH_PDW` -{% endif %} - -{% if include.component == "compat_rksl_pm_ii" %} -`RKSL_PMII` -{% endif %} - {% if include.component == "compat_rhs_usf3" %} `ace_javelin`, `ace_rearm`, `ace_refuel`, `ace_repair`, `rhsusf_c_weapons`, `rhsusf_c_troops`, `rhsusf_c_m1a1`, `rhsusf_c_m1a2`, `RHS_US_A2_AirImport`, `rhsusf_c_m109`, `rhsusf_c_HEMTT_A4`, `rhsusf_c_hmmwv`, `rhsusf_c_rg33`, `rhsusf_c_fmtv`, `rhsusf_c_m113`, `RHS_US_A2Port_Armor`, `rhsusf_c_melb` {% endif %} @@ -510,3 +470,43 @@ `ace_common` {% endif %} +{% if include.component == "compat_sma3_iansky" %} +`iansky_opt` +{% endif %} + +{% if include.component == "compat_rh_acc" %} +`RH_acc` +{% endif %} + +{% if include.component == "compat_rhs_gref3" %} +`rhsgref_main`, `rhsgref_c_weapons` +{% endif %} + +{% if include.component == "nocrosshair" %} +`ace_common` +{% endif %} + +{% if include.component == "compat_adr_97" %} +`A3_Weapons_F_Mod` +{% endif %} + +{% if include.component == "noactionmenu" %} +`ace_common` +{% endif %} + +{% if include.component == "compat_rh_pdw" %} +`RH_PDW` +{% endif %} + +{% if include.component == "compat_rhs_afrf3" %} +`ace_rearm`, `ace_refuel`, `ace_repair`, `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_trucks`, `rhs_c_2s3`, `rhs_c_rva`, `rhs_c_heavyweapons` +{% endif %} + +{% if include.component == "tracers" %} +`ace_ballistics` +{% endif %} + +{% if include.component == "compat_rh_m4" %} +`RH_m4_cfg` +{% endif %} + From 41795484173ac406045cb4fc636f4520b7ff50b3 Mon Sep 17 00:00:00 2001 From: Thomas Kooi Date: Wed, 7 Feb 2018 22:38:34 +0100 Subject: [PATCH 025/235] Sort directories before extracting dependency information --- docs/_includes/dependencies_list.md | 802 ++++++++++++++-------------- tools/extract_dependencies.py | 8 +- 2 files changed, 405 insertions(+), 405 deletions(-) diff --git a/docs/_includes/dependencies_list.md b/docs/_includes/dependencies_list.md index c38e95b5a6..86c1ae1bb1 100644 --- a/docs/_includes/dependencies_list.md +++ b/docs/_includes/dependencies_list.md @@ -1,432 +1,100 @@ -{% if include.component == "apl" %} -`ace_main` +{% if include.component == "advanced_ballistics" %} +`ace_ballistics`, `ace_weather` {% endif %} -{% if include.component == "vector" %} +{% if include.component == "advanced_fatigue" %} `ace_common` {% endif %} -{% if include.component == "winddeflection" %} -`ace_weather` -{% endif %} - -{% if include.component == "frag" %} -`ace_common` +{% if include.component == "advanced_throwing" %} +`ace_common`, `ace_weaponselect` {% endif %} {% if include.component == "ai" %} `ace_common` {% endif %} -{% if include.component == "overheating" %} -`ace_interaction` -{% endif %} - -{% if include.component == "nlaw" %} -`ace_missileguidance` -{% endif %} - -{% if include.component == "smallarms" %} -`ace_common` -{% endif %} - -{% if include.component == "medical_menu" %} -`ace_medical` -{% endif %} - -{% if include.component == "mk6mortar" %} -`ace_interaction` -{% endif %} - -{% if include.component == "zeus" %} -`ace_common`, `ace_ai` -{% endif %} - -{% if include.component == "nametags" %} -`ace_interaction` -{% endif %} - -{% if include.component == "dogtags" %} -`ace_interaction` -{% endif %} - -{% if include.component == "maptools" %} -`ace_interaction` -{% endif %} - -{% if include.component == "recoil" %} -`ace_common` -{% endif %} - -{% if include.component == "flashsuppressors" %} -`ace_common` -{% endif %} - -{% if include.component == "dagr" %} -`ace_weather` -{% endif %} - -{% if include.component == "quickmount" %} -`ace_common` -{% endif %} - -{% if include.component == "goggles" %} -`ace_common` -{% endif %} - {% if include.component == "aircraft" %} `ace_common` {% endif %} -{% if include.component == "spottingscope" %} -`ace_apl`, `ace_interaction` +{% if include.component == "apl" %} +`ace_main` {% endif %} {% if include.component == "arsenal" %} `ace_common` {% endif %} -{% if include.component == "map" %} +{% if include.component == "atragmx" %} +`ACE_Advanced_Ballistics`, `ACE_common`, `ACE_weather` +{% endif %} + +{% if include.component == "attach" %} `ace_interaction` {% endif %} -{% if include.component == "vehiclelock" %} -`ace_interaction` -{% endif %} - -{% if include.component == "missileguidance" %} -`ace_laser` -{% endif %} - -{% if include.component == "minedetector" %} -`ace_explosives` -{% endif %} - -{% if include.component == "explosives" %} -`ace_interaction` -{% endif %} - -{% if include.component == "missionmodules" %} +{% if include.component == "backpacks" %} `ace_common` {% endif %} -{% if include.component == "medical_ai" %} -`ace_medical` -{% endif %} - -{% if include.component == "fcs" %} -`ace_interaction` -{% endif %} - -{% if include.component == "common" %} -`ace_main`, `ace_modules` -{% endif %} - -{% if include.component == "huntir" %} -`ace_common` -{% endif %} - -{% if include.component == "advanced_fatigue" %} -`ace_common` -{% endif %} - -{% if include.component == "scopes" %} -`ace_common` -{% endif %} - -{% if include.component == "safemode" %} -`ace_common` -{% endif %} - -{% if include.component == "overpressure" %} -`ace_common` -{% endif %} - -{% if include.component == "pylons" %} -`ace_interact_menu` -{% endif %} - -{% if include.component == "optionsmenu" %} -`ace_common` -{% endif %} - -{% if include.component == "viewdistance" %} -`ace_common` -{% endif %} - -{% if include.component == "gunbag" %} -`ace_interaction`, `ace_movement` -{% endif %} - -{% if include.component == "weather" %} -`ace_common` -{% endif %} - -{% if include.component == "maverick" %} -`ace_missileguidance` -{% endif %} - -{% if include.component == "cargo" %} -`ace_interaction` -{% endif %} - -{% if include.component == "hellfire" %} -`ace_interaction`, `ace_missileguidance` -{% endif %} - -{% if include.component == "cookoff" %} -`ace_common` -{% endif %} - -{% if include.component == "grenades" %} -`ace_common` -{% endif %} - -{% if include.component == "realisticweights" %} -`ace_common` -{% endif %} - -{% if include.component == "noidle" %} -`ace_common` -{% endif %} - -{% if include.component == "thermals" %} -`ace_common` -{% endif %} - -{% if include.component == "flashlights" %} -`ace_interaction` -{% endif %} - -{% if include.component == "nightvision" %} -`ace_common` -{% endif %} - -{% if include.component == "hitreactions" %} -`ace_common` -{% endif %} - -{% if include.component == "switchunits" %} -`ace_common` -{% endif %} - -{% if include.component == "sandbag" %} -`ace_interaction` -{% endif %} - -{% if include.component == "dragging" %} -`ace_interaction` -{% endif %} - -{% if include.component == "advanced_throwing" %} -`ace_common`, `ace_weaponselect` -{% endif %} - -{% if include.component == "mx2a" %} -`ace_apl` -{% endif %} - -{% if include.component == "movement" %} -`ace_common` -{% endif %} - -{% if include.component == "spectator" %} -`ace_common` -{% endif %} - -{% if include.component == "weaponselect" %} -`ace_common` -{% endif %} - -{% if include.component == "medical" %} -`ace_interaction`, `ace_apl` -{% endif %} - -{% if include.component == "reload" %} -`ace_interaction` -{% endif %} - -{% if include.component == "fonts" %} -`ace_main` -{% endif %} - -{% if include.component == "tacticalladder" %} -`ace_apl`, `ace_interaction` -{% endif %} - {% if include.component == "ballistics" %} `ace_common` {% endif %} -{% if include.component == "tagging" %} -`ace_interaction` -{% endif %} - -{% if include.component == "gestures" %} -`ace_interact_menu` -{% endif %} - -{% if include.component == "slideshow" %} -`ace_common` -{% endif %} - {% if include.component == "captives" %} `ACE_Interaction` {% endif %} -{% if include.component == "atragmx" %} -`ACE_Advanced_Ballistics`, `ACE_common`, `ACE_weather` -{% endif %} - -{% if include.component == "ui" %} -`ace_common` -{% endif %} - -{% if include.component == "tripod" %} +{% if include.component == "cargo" %} `ace_interaction` {% endif %} -{% if include.component == "magazinerepack" %} -`ace_interaction` -{% endif %} - -{% if include.component == "disposable" %} -`ace_common` -{% endif %} - -{% if include.component == "yardage450" %} -`ace_apl`, `ace_laser` -{% endif %} - -{% if include.component == "laser" %} -`ace_common` -{% endif %} - -{% if include.component == "rangecard" %} -`ACE_Advanced_Ballistics`, `ace_scopes` -{% endif %} - -{% if include.component == "attach" %} -`ace_interaction` -{% endif %} - -{% if include.component == "medical_blood" %} -`ace_main` -{% endif %} - -{% if include.component == "optics" %} -`ace_common` -{% endif %} - -{% if include.component == "repair" %} -`ace_interaction` -{% endif %} - -{% if include.component == "javelin" %} -`ace_main`, `ace_common`, `ace_missileguidance` -{% endif %} - -{% if include.component == "modules" %} -`ace_main` -{% endif %} - {% if include.component == "chemlights" %} `ace_common` {% endif %} -{% if include.component == "norearm" %} -`ace_common` -{% endif %} - -{% if include.component == "trenches" %} -`ace_interaction` -{% endif %} - -{% if include.component == "reloadlaunchers" %} -`ace_interaction` -{% endif %} - -{% if include.component == "kestrel4500" %} -`ACE_common`, `ACE_weather` -{% endif %} - -{% if include.component == "logistics_uavbattery" %} -`ace_interaction` -{% endif %} - -{% if include.component == "markers" %} -`ace_common` -{% endif %} - -{% if include.component == "backpacks" %} -`ace_common` -{% endif %} - -{% if include.component == "advanced_ballistics" %} -`ace_ballistics`, `ace_weather` -{% endif %} - -{% if include.component == "inventory" %} -`ace_common` -{% endif %} - -{% if include.component == "noradio" %} -`ace_common` -{% endif %} - -{% if include.component == "microdagr" %} -`ace_common` -{% endif %} - -{% if include.component == "gforces" %} -`ace_common` -{% endif %} - -{% if include.component == "logistics_wirecutter" %} -`ace_interaction` -{% endif %} - -{% if include.component == "realisticnames" %} -`ace_common` +{% if include.component == "common" %} +`ace_main`, `ace_modules` {% endif %} {% if include.component == "concertina_wire" %} `ace_apl`, `ace_interaction` {% endif %} -{% if include.component == "interaction" %} -`ace_interact_menu` +{% if include.component == "cookoff" %} +`ace_common` {% endif %} -{% if include.component == "vehicles" %} -`ace_common` +{% if include.component == "dagr" %} +`ace_weather` {% endif %} {% if include.component == "disarming" %} `ACE_Interaction` {% endif %} -{% if include.component == "map_gestures" %} +{% if include.component == "disposable" %} `ace_common` {% endif %} +{% if include.component == "dogtags" %} +`ace_interaction` +{% endif %} + +{% if include.component == "dragging" %} +`ace_interaction` +{% endif %} + +{% if include.component == "explosives" %} +`ace_interaction` +{% endif %} + {% if include.component == "fastroping" %} `ace_interaction` {% endif %} -{% if include.component == "laserpointer" %} -`ace_common` -{% endif %} - -{% if include.component == "parachute" %} -`ace_common` -{% endif %} - -{% if include.component == "respawn" %} -`ace_common` -{% endif %} - -{% if include.component == "hearing" %} +{% if include.component == "fcs" %} `ace_interaction` {% endif %} @@ -434,64 +102,368 @@ `ace_common` {% endif %} -{% if include.component == "rearm" %} +{% if include.component == "flashlights" %} `ace_interaction` {% endif %} -{% if include.component == "refuel" %} +{% if include.component == "flashsuppressors" %} +`ace_common` +{% endif %} + +{% if include.component == "fonts" %} +`ace_main` +{% endif %} + +{% if include.component == "frag" %} +`ace_common` +{% endif %} + +{% if include.component == "gestures" %} +`ace_interact_menu` +{% endif %} + +{% if include.component == "gforces" %} +`ace_common` +{% endif %} + +{% if include.component == "goggles" %} +`ace_common` +{% endif %} + +{% if include.component == "grenades" %} +`ace_common` +{% endif %} + +{% if include.component == "gunbag" %} +`ace_interaction`, `ace_movement` +{% endif %} + +{% if include.component == "hearing" %} `ace_interaction` {% endif %} +{% if include.component == "hellfire" %} +`ace_interaction`, `ace_missileguidance` +{% endif %} + +{% if include.component == "hitreactions" %} +`ace_common` +{% endif %} + +{% if include.component == "huntir" %} +`ace_common` +{% endif %} + {% if include.component == "interact_menu" %} `ace_common` {% endif %} -{% if include.component == "nouniformrestrictions" %} +{% if include.component == "interaction" %} +`ace_interact_menu` +{% endif %} + +{% if include.component == "inventory" %} `ace_common` {% endif %} -{% if include.component == "compat_rh_de" %} -`RH_de_cfg` +{% if include.component == "javelin" %} +`ace_main`, `ace_common`, `ace_missileguidance` {% endif %} -{% if include.component == "compat_rksl_pm_ii" %} -`RKSL_PMII` +{% if include.component == "kestrel4500" %} +`ACE_common`, `ACE_weather` {% endif %} -{% if include.component == "compat_r3f" %} -`r3f_armes_c`, `r3f_armes`, `r3f_acc` -{% endif %} - -{% if include.component == "compat_rhs_usf3" %} -`ace_javelin`, `ace_rearm`, `ace_refuel`, `ace_repair`, `rhsusf_c_weapons`, `rhsusf_c_troops`, `rhsusf_c_m1a1`, `rhsusf_c_m1a2`, `RHS_US_A2_AirImport`, `rhsusf_c_m109`, `rhsusf_c_HEMTT_A4`, `rhsusf_c_hmmwv`, `rhsusf_c_rg33`, `rhsusf_c_fmtv`, `rhsusf_c_m113`, `RHS_US_A2Port_Armor`, `rhsusf_c_melb` -{% endif %} - -{% if include.component == "particles" %} +{% if include.component == "laser" %} `ace_common` {% endif %} -{% if include.component == "compat_sma3_iansky" %} -`iansky_opt` -{% endif %} - -{% if include.component == "compat_rh_acc" %} -`RH_acc` -{% endif %} - -{% if include.component == "compat_rhs_gref3" %} -`rhsgref_main`, `rhsgref_c_weapons` -{% endif %} - -{% if include.component == "nocrosshair" %} +{% if include.component == "laserpointer" %} `ace_common` {% endif %} +{% if include.component == "logistics_uavbattery" %} +`ace_interaction` +{% endif %} + +{% if include.component == "logistics_wirecutter" %} +`ace_interaction` +{% endif %} + +{% if include.component == "magazinerepack" %} +`ace_interaction` +{% endif %} + +{% if include.component == "map" %} +`ace_interaction` +{% endif %} + +{% if include.component == "map_gestures" %} +`ace_common` +{% endif %} + +{% if include.component == "maptools" %} +`ace_interaction` +{% endif %} + +{% if include.component == "markers" %} +`ace_common` +{% endif %} + +{% if include.component == "maverick" %} +`ace_missileguidance` +{% endif %} + +{% if include.component == "medical" %} +`ace_interaction`, `ace_apl` +{% endif %} + +{% if include.component == "medical_ai" %} +`ace_medical` +{% endif %} + +{% if include.component == "medical_blood" %} +`ace_main` +{% endif %} + +{% if include.component == "medical_menu" %} +`ace_medical` +{% endif %} + +{% if include.component == "microdagr" %} +`ace_common` +{% endif %} + +{% if include.component == "minedetector" %} +`ace_explosives` +{% endif %} + +{% if include.component == "missileguidance" %} +`ace_laser` +{% endif %} + +{% if include.component == "missionmodules" %} +`ace_common` +{% endif %} + +{% if include.component == "mk6mortar" %} +`ace_interaction` +{% endif %} + +{% if include.component == "modules" %} +`ace_main` +{% endif %} + +{% if include.component == "movement" %} +`ace_common` +{% endif %} + +{% if include.component == "mx2a" %} +`ace_apl` +{% endif %} + +{% if include.component == "nametags" %} +`ace_interaction` +{% endif %} + +{% if include.component == "nightvision" %} +`ace_common` +{% endif %} + +{% if include.component == "nlaw" %} +`ace_missileguidance` +{% endif %} + +{% if include.component == "noidle" %} +`ace_common` +{% endif %} + +{% if include.component == "noradio" %} +`ace_common` +{% endif %} + +{% if include.component == "norearm" %} +`ace_common` +{% endif %} + +{% if include.component == "optics" %} +`ace_common` +{% endif %} + +{% if include.component == "optionsmenu" %} +`ace_common` +{% endif %} + +{% if include.component == "overheating" %} +`ace_interaction` +{% endif %} + +{% if include.component == "overpressure" %} +`ace_common` +{% endif %} + +{% if include.component == "parachute" %} +`ace_common` +{% endif %} + +{% if include.component == "pylons" %} +`ace_interact_menu` +{% endif %} + +{% if include.component == "quickmount" %} +`ace_common` +{% endif %} + +{% if include.component == "rangecard" %} +`ACE_Advanced_Ballistics`, `ace_scopes` +{% endif %} + +{% if include.component == "realisticnames" %} +`ace_common` +{% endif %} + +{% if include.component == "realisticweights" %} +`ace_common` +{% endif %} + +{% if include.component == "rearm" %} +`ace_interaction` +{% endif %} + +{% if include.component == "recoil" %} +`ace_common` +{% endif %} + +{% if include.component == "refuel" %} +`ace_interaction` +{% endif %} + +{% if include.component == "reload" %} +`ace_interaction` +{% endif %} + +{% if include.component == "reloadlaunchers" %} +`ace_interaction` +{% endif %} + +{% if include.component == "repair" %} +`ace_interaction` +{% endif %} + +{% if include.component == "respawn" %} +`ace_common` +{% endif %} + +{% if include.component == "safemode" %} +`ace_common` +{% endif %} + +{% if include.component == "sandbag" %} +`ace_interaction` +{% endif %} + +{% if include.component == "scopes" %} +`ace_common` +{% endif %} + +{% if include.component == "slideshow" %} +`ace_common` +{% endif %} + +{% if include.component == "smallarms" %} +`ace_common` +{% endif %} + +{% if include.component == "spectator" %} +`ace_common` +{% endif %} + +{% if include.component == "spottingscope" %} +`ace_apl`, `ace_interaction` +{% endif %} + +{% if include.component == "switchunits" %} +`ace_common` +{% endif %} + +{% if include.component == "tacticalladder" %} +`ace_apl`, `ace_interaction` +{% endif %} + +{% if include.component == "tagging" %} +`ace_interaction` +{% endif %} + +{% if include.component == "thermals" %} +`ace_common` +{% endif %} + +{% if include.component == "trenches" %} +`ace_interaction` +{% endif %} + +{% if include.component == "tripod" %} +`ace_interaction` +{% endif %} + +{% if include.component == "ui" %} +`ace_common` +{% endif %} + +{% if include.component == "vector" %} +`ace_common` +{% endif %} + +{% if include.component == "vehiclelock" %} +`ace_interaction` +{% endif %} + +{% if include.component == "vehicles" %} +`ace_common` +{% endif %} + +{% if include.component == "viewdistance" %} +`ace_common` +{% endif %} + +{% if include.component == "weaponselect" %} +`ace_common` +{% endif %} + +{% if include.component == "weather" %} +`ace_common` +{% endif %} + +{% if include.component == "winddeflection" %} +`ace_weather` +{% endif %} + +{% if include.component == "yardage450" %} +`ace_apl`, `ace_laser` +{% endif %} + +{% if include.component == "zeus" %} +`ace_common`, `ace_ai` +{% endif %} + {% if include.component == "compat_adr_97" %} `A3_Weapons_F_Mod` {% endif %} -{% if include.component == "noactionmenu" %} -`ace_common` +{% if include.component == "compat_r3f" %} +`r3f_armes_c`, `r3f_armes`, `r3f_acc` +{% endif %} + +{% if include.component == "compat_rh_acc" %} +`RH_acc` +{% endif %} + +{% if include.component == "compat_rh_de" %} +`RH_de_cfg` +{% endif %} + +{% if include.component == "compat_rh_m4" %} +`RH_m4_cfg` {% endif %} {% if include.component == "compat_rh_pdw" %} @@ -502,11 +474,39 @@ `ace_rearm`, `ace_refuel`, `ace_repair`, `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_trucks`, `rhs_c_2s3`, `rhs_c_rva`, `rhs_c_heavyweapons` {% endif %} +{% if include.component == "compat_rhs_gref3" %} +`rhsgref_main`, `rhsgref_c_weapons` +{% endif %} + +{% if include.component == "compat_rhs_usf3" %} +`ace_javelin`, `ace_rearm`, `ace_refuel`, `ace_repair`, `rhsusf_c_weapons`, `rhsusf_c_troops`, `rhsusf_c_m1a1`, `rhsusf_c_m1a2`, `RHS_US_A2_AirImport`, `rhsusf_c_m109`, `rhsusf_c_HEMTT_A4`, `rhsusf_c_hmmwv`, `rhsusf_c_rg33`, `rhsusf_c_fmtv`, `rhsusf_c_m113`, `RHS_US_A2Port_Armor`, `rhsusf_c_melb` +{% endif %} + +{% if include.component == "compat_rksl_pm_ii" %} +`RKSL_PMII` +{% endif %} + +{% if include.component == "compat_sma3_iansky" %} +`iansky_opt` +{% endif %} + +{% if include.component == "noactionmenu" %} +`ace_common` +{% endif %} + +{% if include.component == "nocrosshair" %} +`ace_common` +{% endif %} + +{% if include.component == "nouniformrestrictions" %} +`ace_common` +{% endif %} + +{% if include.component == "particles" %} +`ace_common` +{% endif %} + {% if include.component == "tracers" %} `ace_ballistics` {% endif %} -{% if include.component == "compat_rh_m4" %} -`RH_m4_cfg` -{% endif %} - diff --git a/tools/extract_dependencies.py b/tools/extract_dependencies.py index e1e29e58d1..33933a8fc6 100644 --- a/tools/extract_dependencies.py +++ b/tools/extract_dependencies.py @@ -50,9 +50,9 @@ def main(): open(dependencies_path, "w", newline="\n").close() if os.path.exists(addons_path): - addons = next(os.walk(addons_path))[1] + addons = sorted(next(os.walk(addons_path))[1]) if os.path.exists(optionals_path): - addons += ["."] + next(os.walk(optionals_path))[1] + addons += ["."] + sorted(next(os.walk(optionals_path))[1]) dependencies_path_current = dependencies_path addons_path_current = addons_path @@ -60,9 +60,9 @@ def main(): if "--acex" in sys.argv: open(dependenciesx_path, "w", newline="\n").close() if os.path.exists(addonsx_path): - addons += [".."] + next(os.walk(addonsx_path))[1] + addons += [".."] + sorted(next(os.walk(addonsx_path))[1]) if os.path.exists(optionalsx_path): - addons += ["."] + next(os.walk(optionalsx_path))[1] + addons += ["."] + sorted(next(os.walk(optionalsx_path))[1]) # Iterate through folders in the addons directories for folder in addons: From 73e7ad5c79061afd9d41face91feaef92b4f3240 Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Thu, 8 Feb 2018 12:01:41 -0600 Subject: [PATCH 026/235] Scopes - Use real zero for non-adjustable scopes (#6128) --- addons/scopes/functions/fnc_firedEH.sqf | 8 ++++---- addons/scopes/functions/fnc_getCurrentZeroRange.sqf | 1 + 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/addons/scopes/functions/fnc_firedEH.sqf b/addons/scopes/functions/fnc_firedEH.sqf index 6d63f9107a..b183109071 100644 --- a/addons/scopes/functions/fnc_firedEH.sqf +++ b/addons/scopes/functions/fnc_firedEH.sqf @@ -24,12 +24,9 @@ private _weaponIndex = [_unit, currentWeapon _unit] call EFUNC(common,getWeaponI if (_weaponIndex < 0) exitWith {}; private _adjustment = _unit getVariable [QGVAR(Adjustment), [[0, 0, 0], [0, 0, 0], [0, 0, 0]]]; -private _zeroing = +(_adjustment select _weaponIndex); +private _zeroing = (_adjustment select _weaponIndex) vectorMultiply 0.05729578; // Convert zeroing from mils to degrees (value of MRAD_TO_DEG(1)) TRACE_1("Adjusting With",_zeroing); -// Convert zeroing from mils to degrees -_zeroing = _zeroing vectorMultiply MRAD_TO_DEG(1); - if (GVAR(correctZeroing) || GVAR(simplifiedZeroing)) then { private _advancedBallistics = missionNamespace getVariable [QEGVAR(advanced_ballistics,enabled), false]; private _baseAngle = (_unit getVariable [QGVAR(baseAngle), [0,0,0]]) select _weaponIndex; @@ -39,6 +36,8 @@ if (GVAR(correctZeroing) || GVAR(simplifiedZeroing)) then { private _zeroCorrection = missionNamespace getVariable format[QGVAR(%1_%2_%3_%4_%5_%6_%7), _oldZeroRange, _newZeroRange, _boreHeight, _weapon, _ammo, _magazine, _advancedBallistics]; if (isNil "_zeroCorrection") then { _zeroCorrection = [_oldZeroRange, _newZeroRange, _boreHeight, _weapon, _ammo, _magazine, _advancedBallistics] call FUNC(calculateZeroAngleCorrection); + TRACE_7("new calc",_oldZeroRange,_newZeroRange,_boreHeight,_weapon,_ammo,_magazine,_advancedBallistics); + TRACE_1("",_zeroCorrection); }; if (GVAR(simplifiedZeroing)) then { _zeroing = [0, 0, _zeroCorrection - _baseAngle]; @@ -50,6 +49,7 @@ if (GVAR(correctZeroing) || GVAR(simplifiedZeroing)) then { #endif }; +TRACE_1("",_zeroing); if (_zeroing isEqualTo [0, 0, 0]) exitWith {}; _zeroing params ["_elevation", "_windage", "_zero"]; diff --git a/addons/scopes/functions/fnc_getCurrentZeroRange.sqf b/addons/scopes/functions/fnc_getCurrentZeroRange.sqf index 2da5f32eb0..946e2e0b2b 100644 --- a/addons/scopes/functions/fnc_getCurrentZeroRange.sqf +++ b/addons/scopes/functions/fnc_getCurrentZeroRange.sqf @@ -22,6 +22,7 @@ if (!GVAR(enabled)) exitWith { currentZeroing _unit }; private _weaponIndex = [_unit, currentWeapon _unit] call EFUNC(common,getWeaponIndex); if (_weaponIndex < 0) exitWith { currentZeroing _unit }; if (GVAR(simplifiedZeroing)) exitWith { + if (!(GVAR(canAdjustElevation) select _weaponIndex)) exitWith { currentZeroing _unit }; private _adjustment = _unit getVariable [QGVAR(Adjustment), [[0, 0, 0], [0, 0, 0], [0, 0, 0]]]; ((_adjustment select _weaponIndex) select 0) }; From 5bef98d4ffd499ed490ba7095adaac04979979ef Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Thu, 8 Feb 2018 12:32:01 -0600 Subject: [PATCH 027/235] Decrease direct hit damage done by AGM-114N (#6121) Fix #6114 --- addons/hellfire/CfgAmmo.hpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/addons/hellfire/CfgAmmo.hpp b/addons/hellfire/CfgAmmo.hpp index c8900459ad..234d9edeeb 100644 --- a/addons/hellfire/CfgAmmo.hpp +++ b/addons/hellfire/CfgAmmo.hpp @@ -59,9 +59,9 @@ class CfgAmmo { displayNameShort = "AGM-114N"; description = "AGM-114N"; descriptionShort = "AGM-114N"; - hit = 1100; + hit = 200; indirectHit = 200; - indirectHitRange = 10; + indirectHitRange = 12; explosionEffects = "BombExplosion"; class ace_missileguidance: ace_missileguidance { enabled = 1; // Missile Guidance must be explicitly enabled From e8da3e64356998209bd7ba6b8798ace6fcc0d85f Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Thu, 8 Feb 2018 13:42:07 -0600 Subject: [PATCH 028/235] Arsenal - Pass arsenal dispay to displayOpened event (#6109) --- addons/arsenal/functions/fnc_onArsenalOpen.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/arsenal/functions/fnc_onArsenalOpen.sqf b/addons/arsenal/functions/fnc_onArsenalOpen.sqf index c5d1cc0104..4a02dc136a 100644 --- a/addons/arsenal/functions/fnc_onArsenalOpen.sqf +++ b/addons/arsenal/functions/fnc_onArsenalOpen.sqf @@ -172,7 +172,7 @@ GVAR(currentWeaponType) = switch true do { default {-1}; }; -[QGVAR(displayOpened), []] call CBA_fnc_localEvent; +[QGVAR(displayOpened), [_display]] call CBA_fnc_localEvent; //--------------- Fade out unused elements private _mouseBlockCtrl = _display displayCtrl IDC_mouseBlock; From 9e213f0e9a58f5b4e068c9c759625fc65e31d57a Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Fri, 9 Feb 2018 14:27:21 -0600 Subject: [PATCH 029/235] Fix movedToSQF (#6124) --- addons/common/functions/fnc_cbaSettings.sqf | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/addons/common/functions/fnc_cbaSettings.sqf b/addons/common/functions/fnc_cbaSettings.sqf index 2b623e5813..0441680dfd 100644 --- a/addons/common/functions/fnc_cbaSettings.sqf +++ b/addons/common/functions/fnc_cbaSettings.sqf @@ -85,17 +85,18 @@ for "_index" from 0 to (_countOptions - 1) do { }; }; -_settingsConfig = missionConfigFile >> "ACE_Settings"; -_countOptions = count _settingsConfig; +private _missionSettingsConfig = missionConfigFile >> "ACE_Settings"; +_countOptions = count _missionSettingsConfig; TRACE_1("Reading settings from missionConfigFile",_countOptions); for "_index" from 0 to (_countOptions - 1) do { - private _optionEntry = _settingsConfig select _index; + private _optionEntry = _missionSettingsConfig select _index; private _settingName = configName _optionEntry; if ((toLower _settingName) in GVAR(cbaSettings_forcedSettings)) then { WARNING_1("Setting [%1] - Already Forced - ignoring missionConfig",_varName); } else { if ((isNil _settingName) && {(getNumber (_settingsConfig >> _settingName >> "movedToSQF")) == 0}) then { // New setting, that was first defined in missionConfigFile + INFO_1("Creating new CBA setting for ace_setting from mission config [%1]",_settingName); [_optionEntry] call FUNC(cbaSettings_loadFromConfig); } else { private _value = (_optionEntry >> "value") call BIS_fnc_getCfgData; From ba5d44b848c064ab35c7b906ecf6ae1a1b481ebd Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Fri, 9 Feb 2018 14:27:40 -0600 Subject: [PATCH 030/235] Allow displayTextStructured to be moved via game layout settings (#6102) * Allow displayTextStructured to be moved via game layout settings Fix #6081 * Fix comment, add upperleft bounds check --- addons/common/UI/ace_hint_ca.paa | Bin 0 -> 78186 bytes addons/common/config.cpp | 4 ++-- .../functions/fnc_displayTextStructured.sqf | 18 ++++++++---------- 3 files changed, 10 insertions(+), 12 deletions(-) create mode 100644 addons/common/UI/ace_hint_ca.paa diff --git a/addons/common/UI/ace_hint_ca.paa b/addons/common/UI/ace_hint_ca.paa new file mode 100644 index 0000000000000000000000000000000000000000..4ceceeb86772c0a5e6fbcf23cf75b7105429f683 GIT binary patch literal 78186 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 Date: Fri, 9 Feb 2018 21:28:34 +0100 Subject: [PATCH 031/235] weaponSelect CBA Setting (#5581) * weaponSelectCBASetting * Update to movedToSQF * Add category --- addons/weaponselect/ACE_Settings.hpp | 6 +----- addons/weaponselect/XEH_preInit.sqf | 2 ++ addons/weaponselect/initSettings.sqf | 8 ++++++++ 3 files changed, 11 insertions(+), 5 deletions(-) create mode 100644 addons/weaponselect/initSettings.sqf diff --git a/addons/weaponselect/ACE_Settings.hpp b/addons/weaponselect/ACE_Settings.hpp index 5b58659f6e..ba3ccca74f 100644 --- a/addons/weaponselect/ACE_Settings.hpp +++ b/addons/weaponselect/ACE_Settings.hpp @@ -1,10 +1,6 @@ class ACE_Settings { class GVAR(displayText) { - typeName = "BOOL"; - isClientSettable = 1; - value = 1; - displayName = CSTRING(SettingDisplayTextName); - description = CSTRING(SettingDisplayTextDesc); + movedToSQF = 1; }; }; diff --git a/addons/weaponselect/XEH_preInit.sqf b/addons/weaponselect/XEH_preInit.sqf index 0335ee5fda..01c9f2484f 100644 --- a/addons/weaponselect/XEH_preInit.sqf +++ b/addons/weaponselect/XEH_preInit.sqf @@ -26,4 +26,6 @@ GVAR(GrenadesNonFrag) = []; false } count getArray (configFile >> "CfgWeapons" >> "Throw" >> "muzzles"); +#include "initSettings.sqf" + ADDON = true; diff --git a/addons/weaponselect/initSettings.sqf b/addons/weaponselect/initSettings.sqf new file mode 100644 index 0000000000..d4fc725783 --- /dev/null +++ b/addons/weaponselect/initSettings.sqf @@ -0,0 +1,8 @@ +// CBA Settings [ADDON: ace_weaponselect]: + +[QGVAR(displayText), "CHECKBOX", +[LSTRING(SettingDisplayTextName), LSTRING(SettingDisplayTextDesc)], +localize ELSTRING(common,ACEKeybindCategoryWeapons), +true, // default value +false, // isGlobal +{[QGVAR(displayText), _this] call EFUNC(common,cbaSettings_settingChanged)}] call CBA_settings_fnc_init; From 8b9480de408367f55d2c950999e38ba44d202369 Mon Sep 17 00:00:00 2001 From: Josuan Albin Date: Fri, 9 Feb 2018 21:30:37 +0100 Subject: [PATCH 032/235] Add various misc improvements for ACE Arsenal (#6111) * Disable anim previews when center isn't the player * Abuse configs to change the edit loadout 3DEN entry * Remove inheriting as it's not needed * Remove uneeded condition * Add zeus modules for ACE Arsenal, revert old arsenal modules * Add 3 new arsenal EHs * Add a setting to disable the identity tabs in ace arsenal * Pass loadoutName in the onloadoutLoad EH * Change foreach to forEach and ctrlcommit to ctrlCommit * Resize the right window when the load bar isn't there * Add a tooltip for the "clear container" button * Improve onKeyDown, add classname copying using ctrl+c --- addons/arsenal/XEH_preInit.sqf | 2 + addons/arsenal/defines.hpp | 30 +++++++++++ addons/arsenal/functions/fnc_buttonExport.sqf | 2 + addons/arsenal/functions/fnc_buttonImport.sqf | 2 + .../functions/fnc_buttonLoadoutsLoad.sqf | 2 + .../arsenal/functions/fnc_onArsenalClose.sqf | 1 + .../arsenal/functions/fnc_onArsenalOpen.sqf | 31 +++++++---- addons/arsenal/functions/fnc_onKeyDown.sqf | 54 ++++++++++++------- addons/arsenal/functions/fnc_showItem.sqf | 2 +- addons/arsenal/stringtable.xml | 12 +++++ addons/arsenal/ui/RscAttributes.hpp | 1 + addons/arsenal/ui/RscCommon.hpp | 11 ++++ addons/zeus/CfgFactionClasses.hpp | 5 ++ addons/zeus/CfgVehicles.hpp | 12 +++++ addons/zeus/XEH_PREP.hpp | 2 + addons/zeus/config.cpp | 9 ++++ .../functions/fnc_moduleAddAceArsenal.sqf | 36 +++++++++++++ .../zeus/functions/fnc_moduleAddArsenal.sqf | 12 ++--- .../functions/fnc_moduleRemoveAceArsenal.sqf | 37 +++++++++++++ .../functions/fnc_moduleRemoveArsenal.sqf | 16 ++---- addons/zeus/stringtable.xml | 6 +++ 21 files changed, 237 insertions(+), 48 deletions(-) create mode 100644 addons/zeus/functions/fnc_moduleAddAceArsenal.sqf create mode 100644 addons/zeus/functions/fnc_moduleRemoveAceArsenal.sqf diff --git a/addons/arsenal/XEH_preInit.sqf b/addons/arsenal/XEH_preInit.sqf index 537af9c11d..d91a73ac96 100644 --- a/addons/arsenal/XEH_preInit.sqf +++ b/addons/arsenal/XEH_preInit.sqf @@ -12,6 +12,8 @@ GVAR(modList) = ["","curator","kart","heli","mark","expansion","expansionpremium [QGVAR(camInverted), "CHECKBOX", localize LSTRING(invertCameraSetting), localize LSTRING(settingCategory), false] call CBA_Settings_fnc_init; [QGVAR(enableModIcons), "CHECKBOX", [LSTRING(modIconsSetting), LSTRING(modIconsTooltip)], localize LSTRING(settingCategory), true] call CBA_Settings_fnc_init; [QGVAR(fontHeight), "SLIDER", [LSTRING(fontHeightSetting), LSTRING(fontHeightTooltip)], localize LSTRING(settingCategory), [1, 10, 4.5, 1]] call CBA_Settings_fnc_init; +[QGVAR(enableIdentityTabs), "CHECKBOX", localize LSTRING(enableIdentityTabsSettings), localize LSTRING(settingCategory), true, true] call CBA_Settings_fnc_init; + // Arsenal loadouts [QGVAR(allowDefaultLoadouts), "CHECKBOX", [LSTRING(allowDefaultLoadoutsSetting), LSTRING(defaultLoadoutsTooltip)], localize LSTRING(settingCategory), true, true] call CBA_Settings_fnc_init; diff --git a/addons/arsenal/defines.hpp b/addons/arsenal/defines.hpp index ca5e7ed6a2..b414484103 100644 --- a/addons/arsenal/defines.hpp +++ b/addons/arsenal/defines.hpp @@ -200,6 +200,21 @@ _buttonCurrentMag2Ctrl ctrlCommit FADE_DELAY;\ IDC_rightTabContentListnBox,\ RIGHT_PANEL_ITEMS_BACKGROUND_IDCS,\ IDC_buttonRemoveAll\ +];\ +{\ + _x = _display displayCtrl _x;\ + _x ctrlSetPosition [\ + safezoneX + safezoneW - 93 * GRID_W,\ + safezoneY + 14 * GRID_H,\ + 80 * GRID_W,\ + safezoneH - 28 * GRID_H\ + ];\ + _x ctrlCommit 0;\ +} foreach [\ + IDC_rightTabContent,\ + IDC_rightTabContentListnBox,\ + IDC_blockRightFrame,\ + IDC_blockRighttBackground\ ]; #define TOGGLE_RIGHT_PANEL_CONTAINER\ @@ -232,6 +247,21 @@ _buttonCurrentMag2Ctrl ctrlCommit FADE_DELAY;\ IDC_buttonCurrentMag2,\ IDC_iconBackgroundCurrentMag,\ IDC_iconBackgroundCurrentMag2\ +];\ +{\ + _x = _display displayCtrl _x;\ + _x ctrlSetPosition [\ + safezoneX + safezoneW - 93 * GRID_W,\ + safezoneY + 14 * GRID_H,\ + 80 * GRID_W,\ + safezoneH - 34 * GRID_H\ + ];\ + _x ctrlCommit 0;\ +} foreach [\ + IDC_rightTabContent,\ + IDC_rightTabContentListnBox,\ + IDC_blockRightFrame,\ + IDC_blockRighttBackground\ ]; #define TOGGLE_RIGHT_PANEL_HIDE\ diff --git a/addons/arsenal/functions/fnc_buttonExport.sqf b/addons/arsenal/functions/fnc_buttonExport.sqf index 7bcac4c8ba..dd9233764b 100644 --- a/addons/arsenal/functions/fnc_buttonExport.sqf +++ b/addons/arsenal/functions/fnc_buttonExport.sqf @@ -49,3 +49,5 @@ if (GVAR(shiftState)) then { [_display, localize LSTRING(exportCurrent)] call FUNC(message); }; + +[QGVAR(loadoutExported), [_display, GVAR(shiftState)]] call CBA_fnc_localEvent; diff --git a/addons/arsenal/functions/fnc_buttonImport.sqf b/addons/arsenal/functions/fnc_buttonImport.sqf index 76cd2f3a75..7cc059d818 100644 --- a/addons/arsenal/functions/fnc_buttonImport.sqf +++ b/addons/arsenal/functions/fnc_buttonImport.sqf @@ -109,3 +109,5 @@ if (GVAR(shiftState) && {is3DEN}) then { [_display, localize LSTRING(importedCurrent)] call FUNC(message); }; }; + +[QGVAR(loadoutImported), [_display, (GVAR(shiftState) && {is3DEN})]] call CBA_fnc_localEvent; diff --git a/addons/arsenal/functions/fnc_buttonLoadoutsLoad.sqf b/addons/arsenal/functions/fnc_buttonLoadoutsLoad.sqf index 9d413a233c..131bc1331f 100644 --- a/addons/arsenal/functions/fnc_buttonLoadoutsLoad.sqf +++ b/addons/arsenal/functions/fnc_buttonLoadoutsLoad.sqf @@ -88,3 +88,5 @@ call FUNC(updateUniqueItemsList); [GVAR(center), GVAR(currentInsignia)] call bis_fnc_setUnitInsignia; [(findDisplay IDD_ace_arsenal), [localize LSTRING(loadoutLoaded), _loadoutName] joinString " "] call FUNC(message); + +[QGVAR(onLoadoutLoad), [_loadout, _loadoutName]] call CBA_fnc_localEvent; diff --git a/addons/arsenal/functions/fnc_onArsenalClose.sqf b/addons/arsenal/functions/fnc_onArsenalClose.sqf index f9d2e2f2c5..f5194825fd 100644 --- a/addons/arsenal/functions/fnc_onArsenalClose.sqf +++ b/addons/arsenal/functions/fnc_onArsenalClose.sqf @@ -99,5 +99,6 @@ GVAR(currentInsignia) = nil; GVAR(currentAction) = nil; GVAR(center) = nil; +GVAR(centerNotPlayer) = nil; showHUD true; diff --git a/addons/arsenal/functions/fnc_onArsenalOpen.sqf b/addons/arsenal/functions/fnc_onArsenalOpen.sqf index 4a02dc136a..31777f5ed6 100644 --- a/addons/arsenal/functions/fnc_onArsenalOpen.sqf +++ b/addons/arsenal/functions/fnc_onArsenalOpen.sqf @@ -87,8 +87,8 @@ for "_index" from 0 to 10 do { if (_x != "") then { (GVAR(virtualItems) select _index) select ([2, 1, 0, 3] select _forEachIndex) pushBackUnique _x; }; - } foreach _x; - } foreach _accsArray; + } forEach _x; + } forEach _accsArray; { if !(_x isEqualTo []) then { @@ -101,7 +101,7 @@ for "_index" from 0 to 10 do { (GVAR(virtualItems) select 2) pushBackUnique (_x select 1); }; }; - } foreach _magsArray; + } forEach _magsArray; }; // Inventory items @@ -113,7 +113,7 @@ for "_index" from 0 to 10 do { default { private _array = (LIST_DEFAULTS select _index) select {!(_x isEqualTo "")}; if !(_array isEqualTo []) then { - {(GVAR(virtualItems) select _index) pushBackUnique _x} foreach _array; + {(GVAR(virtualItems) select _index) pushBackUnique _x} forEach _array; }; }; }; @@ -163,7 +163,7 @@ for "_index" from 0 to 15 do { private _index = 10 + (["itemmap", "itemcompass", "itemradio", "itemwatch", "itemgps"] find (tolower _simulationType)); GVAR(currentItems) set [_index, _x]; -} foreach (assignedItems GVAR(center)); +} forEach (assignedItems GVAR(center)); GVAR(currentWeaponType) = switch true do { case (currentWeapon GVAR(center) == GVAR(currentItems) select 0): {0}; @@ -184,7 +184,7 @@ _mouseBlockCtrl ctrlEnable false; _x ctrlSetFade 1; _x ctrlShow false; _x ctrlCommit 0; -} foreach [ +} forEach [ IDC_blockRightFrame, IDC_blockRighttBackground, IDC_loadIndicator, @@ -258,8 +258,8 @@ if (is3DEN) then { private _ctrl = _display displayctrl _x; _ctrl ctrlEnable false; _ctrl ctrlSetFade 0.6; - _ctrl ctrlcommit 0; - } foreach [ + _ctrl ctrlCommit 0; + } forEach [ IDC_buttonFace, IDC_buttonVoice, IDC_buttonInsigna @@ -267,6 +267,19 @@ if (is3DEN) then { _buttonCloseCtrl = _display displayCtrl IDC_menuBarClose; _buttonCloseCtrl ctrlSetText (localize "str_ui_debug_but_apply"); +} else { + GVAR(centerNotPlayer) = (GVAR(center) != player); + + { + private _ctrl = _display displayCtrl _x; + _ctrl ctrlEnable GVAR(enableIdentityTabs); + _ctrl ctrlSetFade ([0.6, 0] select GVAR(enableIdentityTabs)); + _ctrl ctrlCommit 0; + } forEach [ + IDC_buttonFace, + IDC_buttonVoice, + IDC_buttonInsigna + ]; }; //--------------- Prepare the left panel @@ -282,7 +295,7 @@ GVAR(rightTabLnBFocus) = false; private _panel = _display displayCtrl _x; _panel ctrlSetFontHeight (GVAR(fontHeight) * GRID_H); _panel ctrlCommit 0; -} foreach [IDC_leftTabContent, IDC_rightTabContent, IDC_rightTabContentListnBox]; +} forEach [IDC_leftTabContent, IDC_rightTabContent, IDC_rightTabContentListnBox]; [_display, _display displayCtrl IDC_buttonPrimaryWeapon] call FUNC(fillLeftPanel); diff --git a/addons/arsenal/functions/fnc_onKeyDown.sqf b/addons/arsenal/functions/fnc_onKeyDown.sqf index b963974033..d06055f149 100644 --- a/addons/arsenal/functions/fnc_onKeyDown.sqf +++ b/addons/arsenal/functions/fnc_onKeyDown.sqf @@ -85,9 +85,31 @@ if !(_loadoutsDisplay isEqualTo displayNull) then { case (_keyPressed == DIK_BACKSPACE): { [_display] call FUNC(buttonHide); }; - // Export button + // Export button / export classname case (_keyPressed == DIK_C && {_ctrlState}): { - [_display] call FUNC(buttonExport); + if (GVAR(leftTabFocus) || {GVAR(rightTabFocus)} || {GVAR(rightTabLnBFocus)}) then { + switch true do { + case (GVAR(leftTabFocus)): { + private _control = (_display displayCtrl IDC_leftTabContent); + _control lbData (lbCurSel _control) + }; + case (GVAR(rightTabFocus)): { + private _control = (_display displayCtrl IDC_rightTabContent); + _control lbData (lbCurSel _control) + }; + case (GVAR(rightTabLnBFocus)): { + private _control = (_display displayCtrl IDC_rightTabContentListnBox); + _control lnbData [(lnbCurSelRow _control), 0] + }; + } params ["_className"]; + + "ace_clipboard" callExtension (_className + ";"); + "ace_clipboard" callExtension "--COMPLETE--"; + + [_display, localize LSTRING(exportedClassnameText)] call FUNC(message); + } else { + [_display] call FUNC(buttonExport); + }; }; // Import button case (_keyPressed == DIK_V && {_ctrlState}): { @@ -124,6 +146,18 @@ if !(_loadoutsDisplay isEqualTo displayNull) then { playsound ["RscDisplayCurator_visionMode",true]; }; + // Panel up down + case (_keyPressed in [DIK_UP, DIK_DOWN]): { + if (GVAR(leftTabFocus) || {GVAR(rightTabFocus)} || {GVAR(rightTabLnBFocus)}) then { + _return = false; + }; + }; + // Right panel lnb + and - buttons + case (_keyPressed in [DIK_LEFT, DIK_RIGHT]): { + if (GVAR(rightTabLnBFocus)) then { + [_display, [1, 0] select (_keyPressed == DIK_LEFT)] call FUNC(buttonCargo); + }; + }; }; } else { switch true do { @@ -167,22 +201,6 @@ if !(_loadoutsDisplay isEqualTo displayNull) then { }; }; }; - - if (GVAR(leftTabFocus) && {_keyPressed in [DIK_UP, DIK_DOWN]}) then { - _return = false; - }; - - if (GVAR(rightTabFocus) && {_keyPressed in [DIK_UP, DIK_DOWN]}) then { - _return = false; - }; - - if (GVAR(rightTabLnBFocus) && {_keyPressed in [DIK_UP, DIK_DOWN]}) then { - _return = false; - }; - - if (GVAR(rightTabLnBFocus) && {_keyPressed in [DIK_LEFT, DIK_RIGHT]}) then { - [_display, [1, 0] select (_keyPressed == DIK_LEFT)] call FUNC(buttonCargo); - }; }; _return diff --git a/addons/arsenal/functions/fnc_showItem.sqf b/addons/arsenal/functions/fnc_showItem.sqf index e97ebd8dd5..478ae4218d 100644 --- a/addons/arsenal/functions/fnc_showItem.sqf +++ b/addons/arsenal/functions/fnc_showItem.sqf @@ -13,7 +13,7 @@ #include "script_component.hpp" #include "..\defines.hpp" - +if (GVAR(centerNotPlayer)) exitWith {}; private _nextAction = switch (GVAR(currentLeftPanel)) do { diff --git a/addons/arsenal/stringtable.xml b/addons/arsenal/stringtable.xml index 0af4347727..f22d38a8c4 100644 --- a/addons/arsenal/stringtable.xml +++ b/addons/arsenal/stringtable.xml @@ -682,5 +682,17 @@ 匯入當前/預設的裝備 汇入当前/预设的装备 + + Enable the faces / voices / insignias tabs + Activer les onglets faces / voix / insignes + + + Empty the selected container + Vider le conteneur selectionné + + + Exported class name to clipboard + Nom de classe exporté dans le presse papier + diff --git a/addons/arsenal/ui/RscAttributes.hpp b/addons/arsenal/ui/RscAttributes.hpp index e9c4f1f6b4..e52929a58a 100644 --- a/addons/arsenal/ui/RscAttributes.hpp +++ b/addons/arsenal/ui/RscAttributes.hpp @@ -717,6 +717,7 @@ class GVAR(display) { class buttonRemoveAll: ctrlButtonPicture { idc = IDC_buttonRemoveAll; text = QPATHTOF(data\iconClearContainer.paa); + tooltip = CSTRING(buttonClearContainerTooltip); colorBackground[]={0,0,0,0.5}; onButtonClick = QUOTE(ctrlParent (_this select 0) call FUNC(buttonClearAll)); fade=1; diff --git a/addons/arsenal/ui/RscCommon.hpp b/addons/arsenal/ui/RscCommon.hpp index 60bceeaec3..1d580c679e 100644 --- a/addons/arsenal/ui/RscCommon.hpp +++ b/addons/arsenal/ui/RscCommon.hpp @@ -271,6 +271,17 @@ class Display3DEN { class ContextMenu :ctrlMenu { class Items { class Arsenal { + items[]= {"aceArsenal", "virtualArsenal"}; + }; + class virtualArsenal { + text = "BI Virtual Arsenal"; + action= QUOTE(['arsenal'] call bis_fnc_3DENEntityMenu); + value=0; + data="Arsenal"; + opensNewWindow=1; + }; + class aceArsenal: virtualArsenal { + text = "ACE Arsenal"; action= QUOTE(call FUNC(open3DEN)); }; }; diff --git a/addons/zeus/CfgFactionClasses.hpp b/addons/zeus/CfgFactionClasses.hpp index 7d758adfc0..6c164a3c5d 100644 --- a/addons/zeus/CfgFactionClasses.hpp +++ b/addons/zeus/CfgFactionClasses.hpp @@ -24,4 +24,9 @@ class CfgFactionClasses { priority = 2; side = 7; }; + class GVAR(Arsenal) { + displayName = "ACE Arsenal"; + priority = 2; + side = 7; + }; }; diff --git a/addons/zeus/CfgVehicles.hpp b/addons/zeus/CfgVehicles.hpp index 49fcb9532a..efa777e5ec 100644 --- a/addons/zeus/CfgVehicles.hpp +++ b/addons/zeus/CfgVehicles.hpp @@ -266,6 +266,18 @@ class CfgVehicles { displayName = CSTRING(ModuleRemoveArsenal_DisplayName); function = QFUNC(moduleRemoveArsenal); }; + class GVAR(AddFullAceArsenal): GVAR(moduleBase) { + curatorCanAttach = 1; + category = QGVAR(Arsenal); + displayName = CSTRING(ModuleAddFullACEArsenal_DisplayName); + function = QFUNC(moduleAddAceArsenal); + }; + class GVAR(RemoveFullAceArsenal): GVAR(moduleBase) { + curatorCanAttach = 1; + category = QGVAR(Arsenal); + displayName = CSTRING(ModuleRemoveACEArsenal_DisplayName); + function = QFUNC(moduleRemoveAceArsenal); + }; class ModuleArsenal_F: Module_F { function=QFUNC(bi_moduleArsenal); }; diff --git a/addons/zeus/XEH_PREP.hpp b/addons/zeus/XEH_PREP.hpp index aba07e7114..648282216a 100644 --- a/addons/zeus/XEH_PREP.hpp +++ b/addons/zeus/XEH_PREP.hpp @@ -8,6 +8,7 @@ PREP(bi_moduleRemoteControl); PREP(getModuleDestination); PREP(handleZeusUnitAssigned); PREP(moduleAddArsenal); +PREP(moduleAddAceArsenal); PREP(moduleAddSpareTrack); PREP(moduleAddSpareWheel); PREP(moduleAddOrRemoveFRIES); @@ -18,6 +19,7 @@ PREP(moduleGlobalSetSkill); PREP(moduleGroupSide); PREP(moduleLoadIntoCargo); PREP(moduleRemoveArsenal); +PREP(moduleRemoveAceArsenal); PREP(moduleSearchNearby); PREP(moduleSetMedic); PREP(moduleSetMedicalVehicle); diff --git a/addons/zeus/config.cpp b/addons/zeus/config.cpp index 5b764b6007..8e6d9767d6 100644 --- a/addons/zeus/config.cpp +++ b/addons/zeus/config.cpp @@ -22,6 +22,8 @@ class CfgPatches { QGVAR(moduleSuppressiveFire), QGVAR(AddFullArsenal), QGVAR(RemoveFullArsenal), + QGVAR(AddFullAceArsenal), + QGVAR(RemoveFullAceArsenal), QGVAR(moduleTeleportPlayers) }; weapons[] = {}; @@ -69,6 +71,12 @@ class CfgPatches { QGVAR(moduleConfigurePylons) }; }; + class GVAR(arsenal): ADDON { + units[] = { + QGVAR(AddFullAceArsenal), + QGVAR(RemoveFullAceArsenal) + }; + }; }; class ACE_Curator { @@ -78,6 +86,7 @@ class ACE_Curator { GVAR(cargoAndRepair)[] = {"ace_cargo", "ace_repair"}; GVAR(fastroping) = "ace_fastroping"; GVAR(pylons) = "ace_pylons"; + GVAR(arsenal) = "ace_arsenal"; }; #include "CfgFactionClasses.hpp" diff --git a/addons/zeus/functions/fnc_moduleAddAceArsenal.sqf b/addons/zeus/functions/fnc_moduleAddAceArsenal.sqf new file mode 100644 index 0000000000..d3a6a0cb72 --- /dev/null +++ b/addons/zeus/functions/fnc_moduleAddAceArsenal.sqf @@ -0,0 +1,36 @@ +/* + * Author: alganthe + * Add a full ACE Arsenal to an object + * + * Arguments: + * 0: The module logic + * + * Return Value: + * None + * + * Public: No + */ +#include "script_component.hpp" + +params ["_logic"]; +if (!local _logic) exitWith {}; + +private _object = attachedTo _logic; +TRACE_3("moduleAddArsenal",_logic,_object,typeOf _object); + +switch (true) do { + case (isNull _object): { + [LSTRING(NothingSelected)] call FUNC(showMessage); + }; + case (isPlayer _object): { + ["str_a3_cfgvehicles_moduleremotecontrol_f_errorPlayer"] call FUNC(showMessage); + }; + case (!alive _object): { + [LSTRING(OnlyAlive)] call FUNC(showMessage); + }; + default { + [_object, true, true] call EFUNC(arsenal,initBox); + }; +}; + +deleteVehicle _logic; diff --git a/addons/zeus/functions/fnc_moduleAddArsenal.sqf b/addons/zeus/functions/fnc_moduleAddArsenal.sqf index 68b5148521..b8eed64d76 100644 --- a/addons/zeus/functions/fnc_moduleAddArsenal.sqf +++ b/addons/zeus/functions/fnc_moduleAddArsenal.sqf @@ -29,15 +29,9 @@ switch (true) do { [LSTRING(OnlyAlive)] call FUNC(showMessage); }; default { - if (["ACE_Arsenal"] call EFUNC(common,isModLoaded)) then { - - [_object, true, true] call EFUNC(arsenal,initBox); - } else { - - TRACE_1("BIS_fnc_arsenal: AmmoboxInit",_object); - // Global Effects: "Action to access the Arsenal will be added automatically on all clients." - ["AmmoboxInit", [_object, true]] call BIS_fnc_arsenal; - }; + TRACE_1("BIS_fnc_arsenal: AmmoboxInit",_object); + // Global Effects: "Action to access the Arsenal will be added automatically on all clients." + ["AmmoboxInit", [_object, true]] call BIS_fnc_arsenal; }; }; diff --git a/addons/zeus/functions/fnc_moduleRemoveAceArsenal.sqf b/addons/zeus/functions/fnc_moduleRemoveAceArsenal.sqf new file mode 100644 index 0000000000..c39b51a3de --- /dev/null +++ b/addons/zeus/functions/fnc_moduleRemoveAceArsenal.sqf @@ -0,0 +1,37 @@ +/* + * Author: alganthe + * Remove ACE Arsenal from an object + * + * Arguments: + * 0: The module logic + * + * Return Value: + * None + * + * Public: No +*/ + +#include "script_component.hpp" + +params ["_logic"]; +if (!local _logic) exitWith {}; + +private _object = attachedTo _logic; +TRACE_3("moduleRemoveArsenal",_logic,_object,typeOf _object); + +switch (true) do { + case (isNull _object): { + [LSTRING(NothingSelected)] call FUNC(showMessage); + }; + case (isPlayer _object): { + ["str_a3_cfgvehicles_moduleremotecontrol_f_errorPlayer"] call FUNC(showMessage); + }; + case (!alive _object): { + [LSTRING(OnlyAlive)] call FUNC(showMessage); + }; + default { + [_object, true, true] call EFUNC(arsenal,removeBox); + }; +}; + +deleteVehicle _logic; diff --git a/addons/zeus/functions/fnc_moduleRemoveArsenal.sqf b/addons/zeus/functions/fnc_moduleRemoveArsenal.sqf index b14509c272..9693881810 100644 --- a/addons/zeus/functions/fnc_moduleRemoveArsenal.sqf +++ b/addons/zeus/functions/fnc_moduleRemoveArsenal.sqf @@ -31,17 +31,11 @@ switch (true) do { }; default { - if (["ACE_Arsenal"] call EFUNC(common,isModLoaded)) then { - - [_object, true, true] call EFUNC(arsenal,removeBox); - } else { - - TRACE_1("Calling removeVirtualXXXCargo functions",_object); - [_object, (_object call BIS_fnc_getVirtualItemCargo), true] call BIS_fnc_removeVirtualItemCargo; - [_object, (_object call BIS_fnc_getVirtualWeaponCargo), true] call BIS_fnc_removeVirtualWeaponCargo; - [_object, (_object call BIS_fnc_getVirtualMagazineCargo), true] call BIS_fnc_removeVirtualMagazineCargo; - [_object, (_object call BIS_fnc_getVirtualBackpackCargo), true] call BIS_fnc_removeVirtualBackpackCargo; - }; + TRACE_1("Calling removeVirtualXXXCargo functions", _object); + [_object, (_object call BIS_fnc_getVirtualItemCargo), true] call BIS_fnc_removeVirtualItemCargo; + [_object, (_object call BIS_fnc_getVirtualWeaponCargo), true] call BIS_fnc_removeVirtualWeaponCargo; + [_object, (_object call BIS_fnc_getVirtualMagazineCargo), true] call BIS_fnc_removeVirtualMagazineCargo; + [_object, (_object call BIS_fnc_getVirtualBackpackCargo), true] call BIS_fnc_removeVirtualBackpackCargo; }; }; diff --git a/addons/zeus/stringtable.xml b/addons/zeus/stringtable.xml index 7b34b84039..3981cb63ef 100644 --- a/addons/zeus/stringtable.xml +++ b/addons/zeus/stringtable.xml @@ -1238,5 +1238,11 @@ 解除驻军驻守状态 주둔해제 + + Add full ACE Arsenal + + + Remove ACE Arsenal + From 59783a2e7a7a1bf7edf11aa40784b4cfff2340b4 Mon Sep 17 00:00:00 2001 From: Dystopian Date: Sat, 10 Feb 2018 00:31:05 +0300 Subject: [PATCH 033/235] Small changes to persistent laserpointer (#6101) --- addons/common/functions/fnc_switchPersistentLaser.sqf | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/addons/common/functions/fnc_switchPersistentLaser.sqf b/addons/common/functions/fnc_switchPersistentLaser.sqf index 5ba9d5ce05..0a186d8076 100644 --- a/addons/common/functions/fnc_switchPersistentLaser.sqf +++ b/addons/common/functions/fnc_switchPersistentLaser.sqf @@ -20,9 +20,10 @@ params ["_enabled"]; if (!_enabled) exitWith { if (isNil QGVAR(laserKeyDownEH)) exitWith {}; ["KeyDown", GVAR(laserKeyDownEH)] call CBA_fnc_removeDisplayHandler; - ["weapon", GVAR(laserWeaponEH)] call CBA_fnc_removePlayerEventHandler; + ["loadout", GVAR(laserLoadoutEH)] call CBA_fnc_removePlayerEventHandler; ["turret", GVAR(laserTurretEH)] call CBA_fnc_removePlayerEventHandler; ["vehicle", GVAR(laserVehicleEH)] call CBA_fnc_removePlayerEventHandler; + ["weapon", GVAR(laserWeaponEH)] call CBA_fnc_removePlayerEventHandler; }; GVAR(laserKeyDownEH) = ["KeyDown", { @@ -42,7 +43,7 @@ GVAR(laserKeyDownEH) = ["KeyDown", { }] call CBA_fnc_addDisplayHandler; private _laserEH = { - if (sunOrMoon > 0.5) exitWith {}; + if (sunOrMoon == 1) exitWith {}; params ["_player"]; private _weaponIndex = [_player, currentWeapon _player] call FUNC(getWeaponIndex); if ( @@ -60,6 +61,7 @@ private _laserEH = { ] call CBA_fnc_waitUntilAndExecute; }; -GVAR(laserWeaponEH) = ["weapon", _laserEH] call CBA_fnc_addPlayerEventHandler; +GVAR(laserLoadoutEH) = ["loadout", _laserEH] call CBA_fnc_addPlayerEventHandler; GVAR(laserTurretEH) = ["turret", _laserEH] call CBA_fnc_addPlayerEventHandler; GVAR(laserVehicleEH) = ["vehicle", _laserEH] call CBA_fnc_addPlayerEventHandler; +GVAR(laserWeaponEH) = ["weapon", _laserEH] call CBA_fnc_addPlayerEventHandler; From 4cabaa48b78f3051995a7cafed0bd0a2ace1091c Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Fri, 9 Feb 2018 19:17:57 -0600 Subject: [PATCH 034/235] Pylons - Fix old weapons not being removed (#6100) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Pylons - Fix old weapons not being removed Fix #6088 - Use removeWeaponTurret instead of removeWeaponGlobal - Fix "Too Far" warning showing on completion * Fix _x * Fix var name Co-Authored-By: Ozan Eğitmen --- addons/pylons/XEH_postInit.sqf | 11 ++++++++++- addons/pylons/functions/fnc_configurePylons.sqf | 7 +++++-- addons/pylons/functions/fnc_showDialog.sqf | 5 ++++- 3 files changed, 19 insertions(+), 4 deletions(-) diff --git a/addons/pylons/XEH_postInit.sqf b/addons/pylons/XEH_postInit.sqf index 8dae8d4552..72a07078d0 100644 --- a/addons/pylons/XEH_postInit.sqf +++ b/addons/pylons/XEH_postInit.sqf @@ -28,8 +28,17 @@ } forEach GVAR(aircraftWithPylons); [QGVAR(setPylonLoadOutEvent), { - params ["_aircraft", "_pylonIndex", "_pylon", "_turret"]; + params ["_aircraft", "_pylonIndex", "_pylon", "_turret", "_weaponToRemove"]; + TRACE_5("setPylonLoadOutEvent",_aircraft,_pylonIndex,_pylon,_turret,_weaponToRemove); _aircraft setPylonLoadOut [_pylonIndex, _pylon, false, _turret]; + if (_weaponToRemove != "") then { + { + if (_aircraft turretLocal _x) then { + TRACE_3("removing",_aircraft,_x,_weaponToRemove); + _aircraft removeWeaponTurret [_weaponToRemove, _x]; + }; + } forEach [[-1], [0]]; + }; }] call CBA_fnc_addEventHandler; [QGVAR(setAmmoOnPylonEvent), { diff --git a/addons/pylons/functions/fnc_configurePylons.sqf b/addons/pylons/functions/fnc_configurePylons.sqf index 2fbc91e949..401063f8a9 100644 --- a/addons/pylons/functions/fnc_configurePylons.sqf +++ b/addons/pylons/functions/fnc_configurePylons.sqf @@ -27,8 +27,10 @@ if (_currentPylon == count _pylonsToConfigure) exitWith {}; { (_this select 0) params ["_pylonsToConfigure", "_currentPylon"]; private _pylonIndex = _pylonsToConfigure select _currentPylon; + TRACE_2("",_currentPylon,_pylonIndex); // Remove the weapon of current pylon from aircraft IF weapon is only on this pylon + private _weaponToRemove = ""; private _currentPylonMagazine = (getPylonMagazines GVAR(currentAircraft)) select _pylonIndex; if (_currentPylonMagazine != "") then { private _allPylonWeapons = (getPylonMagazines GVAR(currentAircraft)) apply { @@ -36,7 +38,8 @@ if (_currentPylon == count _pylonsToConfigure) exitWith {}; }; private _pylonWeapon = _allPylonWeapons select _pylonIndex; if (({_x == _pylonWeapon} count _allPylonWeapons) == 1) then { - GVAR(currentAircraft) removeWeaponGlobal _pylonWeapon; + TRACE_2("Removing unused weapon",_pylonWeapon,_allPylonWeapons); + _weaponToRemove = _pylonWeapon; }; }; @@ -47,7 +50,7 @@ if (_currentPylon == count _pylonsToConfigure) exitWith {}; [ QGVAR(setPylonLoadOutEvent), - [GVAR(currentAircraft), _pylonIndex + 1, _pylonMagazine, _turret] + [GVAR(currentAircraft), _pylonIndex + 1, _pylonMagazine, _turret, _weaponToRemove] ] call CBA_fnc_globalEvent; private _count = if (GVAR(rearmNewPylons) || {GVAR(isCurator)}) then { diff --git a/addons/pylons/functions/fnc_showDialog.sqf b/addons/pylons/functions/fnc_showDialog.sqf index 47b6585c89..5be18d20e8 100644 --- a/addons/pylons/functions/fnc_showDialog.sqf +++ b/addons/pylons/functions/fnc_showDialog.sqf @@ -149,7 +149,10 @@ if (!GVAR(isCurator)) then { isNull (GVAR(currentAircraft) getVariable [QGVAR(currentUser), objNull]) || {(ace_player distanceSqr GVAR(currentAircraft)) > GVAR(searchDistanceSqr)} }, { - [localize LSTRING(TooFar), false, 5] call EFUNC(common,displayText); + TRACE_3("disconnect/far",GVAR(currentAircraft),ace_player distance GVAR(currentAircraft),GVAR(currentAircraft) getVariable QGVAR(currentUser)); + if ((ace_player distanceSqr GVAR(currentAircraft)) > GVAR(searchDistanceSqr)) then { + [localize LSTRING(TooFar), false, 5] call EFUNC(common,displayText); + }; call FUNC(onButtonClose); }] call CBA_fnc_waitUntilAndExecute; }; From e73a2ddec04ee455728bd813e06a6cfd3b1d3d1b Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Fri, 9 Feb 2018 20:31:22 -0600 Subject: [PATCH 035/235] NightVision - Add setting for shutter effects (#6134) Also convert to cba settings Close #6119 --- addons/nightvision/ACE_Settings.hpp | 33 ++---------- addons/nightvision/XEH_preInit.sqf | 2 + .../functions/fnc_onFiredPlayer.sqf | 2 +- addons/nightvision/initSettings.sqf | 54 +++++++++++++++++++ addons/nightvision/stringtable.xml | 6 +++ 5 files changed, 68 insertions(+), 29 deletions(-) create mode 100644 addons/nightvision/initSettings.sqf diff --git a/addons/nightvision/ACE_Settings.hpp b/addons/nightvision/ACE_Settings.hpp index 6487b7a501..1b9b0e164a 100644 --- a/addons/nightvision/ACE_Settings.hpp +++ b/addons/nightvision/ACE_Settings.hpp @@ -1,40 +1,17 @@ class ACE_Settings { class GVAR(disableNVGsWithSights) { - category = CSTRING(Category); - displayName = CSTRING(DisableNVGsWithSights_DisplayName); - description = CSTRING(DisableNVGsWithSights_description); - typeName = "BOOL"; - value = 0; + movedToSQF = 1; }; class GVAR(fogScaling) { - category = CSTRING(Category); - displayName = CSTRING(fogScaling_DisplayName); - description = CSTRING(fogScaling_Description); - typeName = "SCALAR"; - value = 1; - sliderSettings[] = {0, 2, 1, 1}; + movedToSQF = 1; }; class GVAR(noiseScaling) { - category = CSTRING(Category); - displayName = CSTRING(noiseScaling_DisplayName); - description = CSTRING(noiseScaling_Description); - typeName = "SCALAR"; - value = 1; - sliderSettings[] = {0, 2, 1, 1}; + movedToSQF = 1; }; class GVAR(effectScaling) { - category = CSTRING(Category); - displayName = CSTRING(effectScaling_DisplayName); - description = CSTRING(effectScaling_Description); - typeName = "SCALAR"; - value = 1; - sliderSettings[] = {0, 2, 1, 1}; + movedToSQF = 1; }; class GVAR(aimDownSightsBlur) { - category = CSTRING(Category); - displayName = CSTRING(aimDownSightsBlur_DisplayName); - typeName = "SCALAR"; - value = 1; - sliderSettings[] = {0, 2, 1, 1}; + movedToSQF = 1; }; }; diff --git a/addons/nightvision/XEH_preInit.sqf b/addons/nightvision/XEH_preInit.sqf index b47cf6628d..d021ef1f57 100644 --- a/addons/nightvision/XEH_preInit.sqf +++ b/addons/nightvision/XEH_preInit.sqf @@ -6,4 +6,6 @@ PREP_RECOMPILE_START; #include "XEH_PREP.hpp" PREP_RECOMPILE_END; +#include "initSettings.sqf"; + ADDON = true; diff --git a/addons/nightvision/functions/fnc_onFiredPlayer.sqf b/addons/nightvision/functions/fnc_onFiredPlayer.sqf index 3621c975f8..efd01e1fd4 100644 --- a/addons/nightvision/functions/fnc_onFiredPlayer.sqf +++ b/addons/nightvision/functions/fnc_onFiredPlayer.sqf @@ -18,7 +18,7 @@ //IGNORE_PRIVATE_WARNING ["_unit", "_weapon", "_muzzle", "_mode", "_ammo", "_magazine", "_projectile"]; TRACE_7("firedEH:",_unit, _weapon, _muzzle, _mode, _ammo, _magazine, _projectile); -if ((!GVAR(running)) || {_weapon == "throw"} || {_weapon == "put"}) exitWith {}; +if ((!GVAR(running)) || {!GVAR(shutterEffects)} || {_weapon == "throw"} || {_weapon == "put"}) exitWith {}; private _visibleFireCoef = 1; if (_unit == ace_player) then { diff --git a/addons/nightvision/initSettings.sqf b/addons/nightvision/initSettings.sqf new file mode 100644 index 0000000000..884c53055a --- /dev/null +++ b/addons/nightvision/initSettings.sqf @@ -0,0 +1,54 @@ +// CBA Settings [ADDON: ace_nightVision]: + +[ + QGVAR(effectScaling), "SLIDER", + [LSTRING(effectScaling_DisplayName), LSTRING(effectScaling_Description)], + localize LSTRING(Category), + [0,2,1,1], // [min, max, default value, trailing decimals (-1 for whole numbers only)] + true, // isGlobal + {[QGVAR(effectScaling), _this] call EFUNC(common,cbaSettings_settingChanged)} +] call CBA_settings_fnc_init; +[ + QGVAR(fogScaling), "SLIDER", + [LSTRING(fogScaling_DisplayName), LSTRING(fogScaling_Description)], + localize LSTRING(Category), + [0,2,1,1], // [min, max, default value, trailing decimals (-1 for whole numbers only)] + true, // isGlobal + {[QGVAR(fogScaling), _this] call EFUNC(common,cbaSettings_settingChanged)} +] call CBA_settings_fnc_init; + +[ + QGVAR(noiseScaling), "SLIDER", + [LSTRING(noiseScaling_DisplayName), LSTRING(noiseScaling_Description)], + localize LSTRING(Category), + [0,2,1,1], // [min, max, default value, trailing decimals (-1 for whole numbers only)] + true, // isGlobal + {[QGVAR(noiseScaling), _this] call EFUNC(common,cbaSettings_settingChanged)} +] call CBA_settings_fnc_init; + +[ + QGVAR(aimDownSightsBlur), "SLIDER", + [LSTRING(aimDownSightsBlur_DisplayName)], + localize LSTRING(Category), + [0,2,1,1], // [min, max, default value, trailing decimals (-1 for whole numbers only)] + true, // isGlobal + {[QGVAR(aimDownSightsBlur), _this] call EFUNC(common,cbaSettings_settingChanged)} +] call CBA_settings_fnc_init; + +[ + QGVAR(disableNVGsWithSights), "CHECKBOX", + [LSTRING(DisableNVGsWithSights_DisplayName), LSTRING(DisableNVGsWithSights_description)], + localize LSTRING(Category), + false, // default value + true, // isGlobal + {[QGVAR(disableNVGsWithSights), _this] call EFUNC(common,cbaSettings_settingChanged)} +] call CBA_settings_fnc_init; + +[ + QGVAR(shutterEffects), "CHECKBOX", + [LSTRING(shutterEffects_DisplayName), LSTRING(shutterEffects_description)], + localize LSTRING(Category), + true, // default value + false, // isGlobal + {[QGVAR(shutterEffects), _this] call EFUNC(common,cbaSettings_settingChanged)} +] call CBA_settings_fnc_init; diff --git a/addons/nightvision/stringtable.xml b/addons/nightvision/stringtable.xml index 9088b7a417..ad4b6bf218 100644 --- a/addons/nightvision/stringtable.xml +++ b/addons/nightvision/stringtable.xml @@ -296,5 +296,11 @@ 調整配戴夜視鏡時畫面雜訊的多寡。 调整配戴夜视镜时画面杂讯的多寡。 + + Shutter Effects + + + Rolling shutter effect from muzzle flashes + From 2b89b3102b6876c4b295c3e0d538d6d237213058 Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Fri, 9 Feb 2018 20:31:38 -0600 Subject: [PATCH 036/235] HuntIR - Register as a feature cam (block NVG border) (#6138) Fix #6135 --- addons/common/functions/fnc_isFeatureCameraActive.sqf | 1 + addons/huntir/functions/fnc_cam.sqf | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/addons/common/functions/fnc_isFeatureCameraActive.sqf b/addons/common/functions/fnc_isFeatureCameraActive.sqf index dfe3869905..1875b08681 100644 --- a/addons/common/functions/fnc_isFeatureCameraActive.sqf +++ b/addons/common/functions/fnc_isFeatureCameraActive.sqf @@ -27,6 +27,7 @@ !( isNull curatorCamera && // Curator {!GETMVAR(EGVAR(spectator,isSet),false)} && // ACE Spectator + {GETMVAR(EGVAR(huntir,stop),true)} && // ACE Hunt IR {isNull GETMVAR(BIS_EGSpectatorCamera_camera, objNull)} && // BIS Nexus Spectator {isNull GETUVAR(BIS_fnc_arsenal_cam, objNull)} && // Arsenal camera {isNull GETMVAR(BIS_fnc_establishingShot_fakeUAV, objNull)} && // Establishing shot camera diff --git a/addons/huntir/functions/fnc_cam.sqf b/addons/huntir/functions/fnc_cam.sqf index 753293f5ad..867420f8e1 100644 --- a/addons/huntir/functions/fnc_cam.sqf +++ b/addons/huntir/functions/fnc_cam.sqf @@ -55,7 +55,7 @@ GVAR(pphandle) ppEffectAdjust [1, 1, 0, [0.01, 0.02, 0.04, 0.01], [0.87, 1.08, 1 GVAR(pphandle) ppEffectCommit 0; GVAR(pphandle) ppEffectEnable true; -GVAR(stop) = false; +GVAR(stop) = false; // Var also used in ace_common_fnc_isFeatureCameraActive call FUNC(huntirCompass); GVAR(no_cams) = ACE_player nearEntities ["ACE_HuntIR", HUNTIR_MAX_TRANSMISSION_RANGE]; From c864a6d56992dd20d187f1eb46b447ea01915b16 Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Fri, 9 Feb 2018 20:32:14 -0600 Subject: [PATCH 037/235] Vehicle Lock - Convert to cba settings (#6133) Switch vehicleStartingLockState from slider to list Close #6014 --- .../fnc_cbaSettings_convertHelper.sqf | 3 +- addons/vehiclelock/ACE_Settings.hpp | 20 ++----------- addons/vehiclelock/XEH_preInit.sqf | 2 ++ addons/vehiclelock/initSettings.sqf | 28 +++++++++++++++++++ addons/vehiclelock/stringtable.xml | 14 +++++----- 5 files changed, 42 insertions(+), 25 deletions(-) create mode 100644 addons/vehiclelock/initSettings.sqf diff --git a/addons/common/functions/fnc_cbaSettings_convertHelper.sqf b/addons/common/functions/fnc_cbaSettings_convertHelper.sqf index d6ecd38591..6b6416e7df 100644 --- a/addons/common/functions/fnc_cbaSettings_convertHelper.sqf +++ b/addons/common/functions/fnc_cbaSettings_convertHelper.sqf @@ -67,6 +67,7 @@ private _settings = configProperties [configFile >> "ACE_Settings", "(isClass _x _valueTitles pushBack (if ((_x select [0, 1]) == "$") then {localize (_x select [1]);} else {_x}); } forEach (getArray (_config >> "values")); _cbaValueInfo = [_values, _valueTitles, getNumber (_config >> "value")]; + _cbaValueInfoHint = "[values, titles, defaultIndex]"; } else { _cbaSettingType = "SLIDER"; // [_min, _max, _default, _trailingDecimals] _cbaValueInfo = if (isArray (_config >> "sliderSettings")) then { @@ -116,7 +117,7 @@ private _settings = configProperties [configFile >> "ACE_Settings", "(isClass _x _output pushBack format [" %1, // %2", _cbaValueInfo, _cbaValueInfoHint]; _output pushBack format [" %1, // isGlobal", _cbaIsGlobal]; if ((_varName select [0, 4]) == "ACE_") then { - _output pushBack format [" {[QGVAR(%1), _this] call EFUNC(common,cbaSettings_settingChanged)}] call CBA_settings_fnc_init;", _gvarName]; + _output pushBack format [" {[QGVAR(%1), _this] call EFUNC(common,cbaSettings_settingChanged)}", _gvarName]; } else { _output pushBack format [" {[""%1"", _this] call ace_common_fnc_cbaSettings_settingChanged}", _varName]; }; diff --git a/addons/vehiclelock/ACE_Settings.hpp b/addons/vehiclelock/ACE_Settings.hpp index 75073f4f8f..29367b707f 100644 --- a/addons/vehiclelock/ACE_Settings.hpp +++ b/addons/vehiclelock/ACE_Settings.hpp @@ -1,25 +1,11 @@ class ACE_Settings { class GVAR(defaultLockpickStrength) { - category = CSTRING(DisplayName); - displayName = CSTRING(DefaultLockpickStrength_DisplayName); - description = CSTRING(DefaultLockpickStrength_Description); - value = 10; - typeName = "SCALAR"; - sliderSettings[] = {-1, 60, 5, 1}; + movedToSQF = 1; }; class GVAR(lockVehicleInventory) { - category = CSTRING(DisplayName); - displayName = CSTRING(LockVehicleInventory_DisplayName); - description = CSTRING(LockVehicleInventory_Description); - value = 0; - typeName = "BOOL"; + movedToSQF = 1; }; class GVAR(vehicleStartingLockState) { - category = CSTRING(DisplayName); - displayName = CSTRING(VehicleStartingLockState_DisplayName); - description = CSTRING(VehicleStartingLockState_Description); - value = -1; - typeName = "SCALAR"; - sliderSettings[] = {-1, 2, -1, -1}; // ToDo: Make this a list? + movedToSQF = 1; }; }; diff --git a/addons/vehiclelock/XEH_preInit.sqf b/addons/vehiclelock/XEH_preInit.sqf index b47cf6628d..9361d05015 100644 --- a/addons/vehiclelock/XEH_preInit.sqf +++ b/addons/vehiclelock/XEH_preInit.sqf @@ -6,4 +6,6 @@ PREP_RECOMPILE_START; #include "XEH_PREP.hpp" PREP_RECOMPILE_END; +#include "initSettings.sqf" + ADDON = true; diff --git a/addons/vehiclelock/initSettings.sqf b/addons/vehiclelock/initSettings.sqf new file mode 100644 index 0000000000..238268a8dc --- /dev/null +++ b/addons/vehiclelock/initSettings.sqf @@ -0,0 +1,28 @@ +// CBA Settings [ADDON: ace_vehicleLock]: + +[ + QGVAR(defaultLockpickStrength), "SLIDER", + [LSTRING(DefaultLockpickStrength_DisplayName), LSTRING(DefaultLockpickStrength_Description)], + LSTRING(DisplayName), + [-1,60,10,1], // [min, max, default value, trailing decimals (-1 for whole numbers only)] + true, // isGlobal + {[QGVAR(defaultLockpickStrength), _this] call EFUNC(common,cbaSettings_settingChanged)} +] call CBA_settings_fnc_init; + +[ + QGVAR(lockVehicleInventory), "CHECKBOX", + [LSTRING(LockVehicleInventory_DisplayName), LSTRING(LockVehicleInventory_Description)], + LSTRING(DisplayName), + false, // default value + true, // isGlobal + {[QGVAR(lockVehicleInventory), _this] call EFUNC(common,cbaSettings_settingChanged)} +] call CBA_settings_fnc_init; + +[ + QGVAR(vehicleStartingLockState), "LIST", + [LSTRING(VehicleStartingLockState_DisplayName), LSTRING(VehicleStartingLockState_Description)], + LSTRING(DisplayName), + [[-1,0,1,2],["str_cfg_envsounds_default", LSTRING(VehicleStartingLockState_AsIs), LSTRING(VehicleStartingLockState_Locked), LSTRING(VehicleStartingLockState_Unlocked)], 0], // [values, titles, defaultIndex] + true, // isGlobal + {[QGVAR(vehicleStartingLockState), _this] call EFUNC(common,cbaSettings_settingChanged)} +] call CBA_settings_fnc_init; diff --git a/addons/vehiclelock/stringtable.xml b/addons/vehiclelock/stringtable.xml index b6edabfc7a..e7cd5e3b14 100644 --- a/addons/vehiclelock/stringtable.xml +++ b/addons/vehiclelock/stringtable.xml @@ -2,13 +2,13 @@ - Vehicle Lock - Blocco Veicolo - 載具上鎖 - 载具上锁 - 車両の施錠 - 차량 잠금 - Fahrzeugsperre + ACE Vehicle Lock + ACE Blocco Veicolo + ACE 載具上鎖 + ACE 载具上锁 + ACE 車両の施錠 + ACE 차량 잠금 + ACE Fahrzeugsperre Unlock Vehicle From 1c6c7914dc6851db4463c085172e0632103a2827 Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Fri, 9 Feb 2018 21:45:21 -0600 Subject: [PATCH 038/235] Interaction - Fix div0 error in getVehiclePos (#6139) * Interaction - Fix div0 error in getVehiclePos * Formating --- addons/interaction/functions/fnc_getVehiclePos.sqf | 7 ++++--- addons/interaction/functions/fnc_getVehiclePosComplex.sqf | 6 +++--- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/addons/interaction/functions/fnc_getVehiclePos.sqf b/addons/interaction/functions/fnc_getVehiclePos.sqf index ebcb856267..6d32519bd5 100644 --- a/addons/interaction/functions/fnc_getVehiclePos.sqf +++ b/addons/interaction/functions/fnc_getVehiclePos.sqf @@ -26,9 +26,10 @@ private _relPos = _target worldToModelVisual ASLToAGL _cameraPosASL; #endif _relPos params ["_dx", "_dy", "_dz"]; -private _ndx = (abs _dx) / ((abs (_bbx)) - 1); -private _ndy = (abs _dy) / ((abs (_bbY)) - 1); -private _ndz = (abs _dz) / ((abs (_bbZ)) - 1); +private _ndx = (abs _dx) / (((abs (_bbX)) - 1) max 1); +private _ndy = (abs _dy) / (((abs (_bbY)) - 1) max 1); +private _ndz = (abs _dz) / (((abs (_bbZ)) - 1) max 1); + private _pos = []; if (_ndx > _ndy) then { diff --git a/addons/interaction/functions/fnc_getVehiclePosComplex.sqf b/addons/interaction/functions/fnc_getVehiclePosComplex.sqf index bfb9fef803..be22134ffa 100644 --- a/addons/interaction/functions/fnc_getVehiclePosComplex.sqf +++ b/addons/interaction/functions/fnc_getVehiclePosComplex.sqf @@ -29,9 +29,9 @@ if (isNumber (_config >> QGVAR(bodyLength))) then {_bbY = getNumber (_config >> private _relPos = _target worldToModelVisual ASLToAGL _cameraPosASL; _relPos params ["_dx", "_dy", "_dz"]; -private _ndx = (abs _dx) / ((abs (_bbx)) - 1); -private _ndy = (abs _dy) / ((abs (_bbY)) - 1); -private _ndz = (abs _dz) / ((abs (_bbZ)) - 1); +private _ndx = (abs _dx) / (((abs (_bbX)) - 1) max 1); +private _ndy = (abs _dy) / (((abs (_bbY)) - 1) max 1); +private _ndz = (abs _dz) / (((abs (_bbZ)) - 1) max 1); private _pos = []; From 04191e3c992c19972d7a873341fbff18bfc05de3 Mon Sep 17 00:00:00 2001 From: Josuan Albin Date: Sat, 10 Feb 2018 20:13:59 +0100 Subject: [PATCH 039/235] Fix ACE Arsenal interaction condition (#6140) * Fix ACE Arsenal interaction condition * Remove empty array --- addons/arsenal/functions/fnc_initBox.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/arsenal/functions/fnc_initBox.sqf b/addons/arsenal/functions/fnc_initBox.sqf index adf122ddbe..52d7662a00 100644 --- a/addons/arsenal/functions/fnc_initBox.sqf +++ b/addons/arsenal/functions/fnc_initBox.sqf @@ -49,7 +49,7 @@ if (_global && {isMultiplayer} && {{_object in _x} count GVAR(EHIDArray) == 0}) { params ["_target", "_player"]; - [_player, _target, ["isNotSwimming", "isNotCarrying", "isNotDragging", "notOnMap", "isNotEscorting", "isNotOnLadder"]] call EFUNC(common,canInteractWith) + [_player, _target] call EFUNC(common,canInteractWith) }, {}, [] From e683c524d7da44d70e45bc1ec201a2d71c709ae9 Mon Sep 17 00:00:00 2001 From: Dystopian Date: Tue, 13 Feb 2018 22:27:57 +0300 Subject: [PATCH 040/235] Map - Add Camping Light support (#6087) * Add Camping Light support * Add intensity check --- .../functions/fnc_lightIntensityFromObject.sqf | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/addons/common/functions/fnc_lightIntensityFromObject.sqf b/addons/common/functions/fnc_lightIntensityFromObject.sqf index 6725a71580..4991370f5d 100644 --- a/addons/common/functions/fnc_lightIntensityFromObject.sqf +++ b/addons/common/functions/fnc_lightIntensityFromObject.sqf @@ -79,6 +79,21 @@ if (_lightSource isKindOf "CAManBase") then { } forEach _lights; + if (isCollisionLightOn _lightSource) then { + private _markerLights = [ + _lightSource, + {configProperties [configFile >> "CfgVehicles" >> typeOf _this >> "MarkerLights", "isClass _x", true]}, + uiNamespace, + format [QEGVAR(cache,MarkerLights_%1), typeOf _lightSource], + 1E11 + ] call FUNC(cachedCall); + { + private _position = _lightSource modelToWorld (_lightSource selectionPosition getText (_x >> "name")); + private _distance = _unitPos distance _position; + _lightLevel = _lightLevel max (linearConversion [0, 10, _distance, 1, 0, true] * linearConversion [0, 1300, getNumber (_x >> "intensity"), 0, 1, true]); + } forEach _markerLights; + }; + // handle campfires if (inflamed _lightSource) then { private _distance = _unitPos distance position _lightSource; From f214b884a24162e814557d3c869404caa7bbb683 Mon Sep 17 00:00:00 2001 From: Whigital Date: Tue, 13 Feb 2018 20:30:38 +0100 Subject: [PATCH 041/235] Settings strings (#6136) * [hearing] Update strings * [medical] Update strings * [medical_ai] Update strings * [medical_menu] Update strings * [nametags] Update strings * [nametags] Use existing DisplayName entries * [medical_menu] Correct spelling * [medical] Disable unreferenced setting * [medical] Overdosing strings * [medical_menu] Correct key IDs * [repair] Update strings * [medical] Correct spelling --- addons/hearing/ACE_Settings.hpp | 4 ++++ addons/hearing/stringtable.xml | 12 ++++++++++++ addons/medical/ACE_Settings.hpp | 10 ++++++++++ addons/medical/stringtable.xml | 18 ++++++++++++++++++ addons/medical_ai/ACE_Settings.hpp | 2 ++ addons/medical_ai/stringtable.xml | 6 ++++++ addons/medical_menu/ACE_Settings.hpp | 2 ++ addons/medical_menu/stringtable.xml | 6 ++++++ addons/nametags/ACE_Settings.hpp | 3 +++ addons/nametags/stringtable.xml | 3 +++ addons/repair/ACE_Settings.hpp | 2 ++ addons/repair/stringtable.xml | 6 ++++++ 12 files changed, 74 insertions(+) diff --git a/addons/hearing/ACE_Settings.hpp b/addons/hearing/ACE_Settings.hpp index 8814f2466d..a395ddd99f 100644 --- a/addons/hearing/ACE_Settings.hpp +++ b/addons/hearing/ACE_Settings.hpp @@ -8,12 +8,16 @@ class ACE_Settings { }; class GVAR(earplugsVolume) { category = CSTRING(Module_DisplayName); + displayName = CSTRING(earplugsVolume_DisplayName); + description = CSTRING(earplugsVolume_Description); value = 0.5; typeName = "SCALAR"; sliderSettings[] = {0, 1, 0.5, 1}; }; class GVAR(unconsciousnessVolume) { category = CSTRING(Module_DisplayName); + displayName = CSTRING(unconsciousnessVolume_DisplayName); + description = CSTRING(unconsciousnessVolume_Description); value = 0.4; typeName = "SCALAR"; sliderSettings[] = {0, 1, 0.4, 1}; diff --git a/addons/hearing/stringtable.xml b/addons/hearing/stringtable.xml index d745734ca1..1d5a2830b0 100644 --- a/addons/hearing/stringtable.xml +++ b/addons/hearing/stringtable.xml @@ -282,5 +282,17 @@ 增加`ACE_EarPlugs`物品给拥有巨大噪音武器的单位。当你想自定装备时,此功能可被关闭。 增加`ACE_EarPlugs`物品給擁有巨大噪音武器的單位。當你想自定裝備時,此功能可被關閉。 + + Earplugs Volume + + + Volume when using earplugs. + + + Unconscious Volume + + + Volume when unconscious. + diff --git a/addons/medical/ACE_Settings.hpp b/addons/medical/ACE_Settings.hpp index 3ba1052ea1..ee393c37e7 100644 --- a/addons/medical/ACE_Settings.hpp +++ b/addons/medical/ACE_Settings.hpp @@ -32,6 +32,8 @@ class ACE_Settings { }; class GVAR(enableOverdosing) { category = CSTRING(Category_Medical); + displayName = CSTRING(MedicalSettings_enableOverdosing_DisplayName); + description = CSTRING(MedicalSettings_enableOverdosing_Description); typeName = "BOOL"; value = 1; }; @@ -134,11 +136,15 @@ class ACE_Settings { value = -1; sliderSettings[] = {-1, 25, -1, -1}; }; + + /* class GVAR(allowDeadBodyMovement) { category = CSTRING(Category_Medical); typeName = "BOOL"; value = 0; }; + */ + class GVAR(allowLitterCreation) { category = CSTRING(Category_Medical); displayName = CSTRING(MedicalSettings_allowLitterCreation_DisplayName); @@ -275,11 +281,15 @@ class ACE_Settings { }; class GVAR(allowUnconsciousAnimationOnTreatment) { category = CSTRING(Category_Medical); + displayName = CSTRING(MedicalSettings_allowUnconsciousAnimationOnTreatment_DisplayName); + description = CSTRING(MedicalSettings_allowUnconsciousAnimationOnTreatment_Description); typeName = "BOOL"; value = 0; }; class GVAR(moveUnitsFromGroupOnUnconscious) { category = CSTRING(Category_Medical); + displayName = CSTRING(MedicalSettings_moveUnitsFromGroupOnUnconscious_DisplayName); + description = CSTRING(MedicalSettings_moveUnitsFromGroupOnUnconscious_Description); typeName = "BOOL"; value = 0; }; diff --git a/addons/medical/stringtable.xml b/addons/medical/stringtable.xml index 55174bb84f..527bf7e31b 100644 --- a/addons/medical/stringtable.xml +++ b/addons/medical/stringtable.xml @@ -5623,5 +5623,23 @@ 关闭盖子 뚜껑 닫기 + + Unconscious animation during treatment + + + Allow animation of unconscious patients during treatment. + + + Move unconscious units from group + + + When a group member goes unconscious, removes them from their group. + + + Overdosing + + + Makes patient vulnerable to Morphine/Epinephrine/Atropine overdosing. + diff --git a/addons/medical_ai/ACE_Settings.hpp b/addons/medical_ai/ACE_Settings.hpp index 8a43c34484..fc24f6dc2f 100644 --- a/addons/medical_ai/ACE_Settings.hpp +++ b/addons/medical_ai/ACE_Settings.hpp @@ -1,6 +1,8 @@ class ACE_Settings { class GVAR(enabledFor) { category = ECSTRING(medical,Category_Medical); + displayName = CSTRING(enabledFor_DisplayName); + description = CSTRING(enabledFor_Description); value = 2; typeName = "SCALAR"; values[] = {ECSTRING(Common,Disabled), CSTRING(enabledFor_OnlyServerAndHC), ECSTRING(Common,Enabled)}; diff --git a/addons/medical_ai/stringtable.xml b/addons/medical_ai/stringtable.xml index b2bda42146..c638e15072 100644 --- a/addons/medical_ai/stringtable.xml +++ b/addons/medical_ai/stringtable.xml @@ -1,6 +1,12 @@  + + Medical AI enabled for + + + Enable AI units to heal themselves and each other. + Only Server and HC Nur Server und HC diff --git a/addons/medical_menu/ACE_Settings.hpp b/addons/medical_menu/ACE_Settings.hpp index e3ece532fd..b180157b3a 100644 --- a/addons/medical_menu/ACE_Settings.hpp +++ b/addons/medical_menu/ACE_Settings.hpp @@ -25,6 +25,8 @@ class ACE_Settings { category = ECSTRING(medical,Category_Medical); }; class GVAR(maxRange) { + displayName = CSTRING(maxRange); + description = CSTRING(maxRange_Descr); //for ref: 3d interaction (MEDICAL_ACTION_DISTANCE) is 1.75 value = 3; typeName = "SCALAR"; diff --git a/addons/medical_menu/stringtable.xml b/addons/medical_menu/stringtable.xml index 96b765d174..0f3c8c41df 100644 --- a/addons/medical_menu/stringtable.xml +++ b/addons/medical_menu/stringtable.xml @@ -826,5 +826,11 @@ 鼻咽管 鼻咽管 + + Medical Menu maximum range + + + Maximum distance from where the Medical Menu can be opened. + diff --git a/addons/nametags/ACE_Settings.hpp b/addons/nametags/ACE_Settings.hpp index 5f2956d03c..702cba07cd 100644 --- a/addons/nametags/ACE_Settings.hpp +++ b/addons/nametags/ACE_Settings.hpp @@ -37,6 +37,7 @@ class ACE_Settings { category = CSTRING(Module_DisplayName); }; class GVAR(showCursorTagForVehicles) { + displayName = CSTRING(showCursorTagForVehicles_DisplayName); value = 0; typeName = "BOOL"; isClientSettable = 0; @@ -52,6 +53,7 @@ class ACE_Settings { category = CSTRING(Module_DisplayName); }; class GVAR(playerNamesViewDistance) { + displayName = CSTRING(playerNamesViewDistance_DisplayName); value = 5; typeName = "SCALAR"; isClientSettable = 0; @@ -59,6 +61,7 @@ class ACE_Settings { sliderSettings[] = {0, 50, 5, 1}; }; class GVAR(playerNamesMaxAlpha) { + displayName = CSTRING(playerNamesMaxAlpha); value = 0.8; typeName = "SCALAR"; isClientSettable = 0; diff --git a/addons/nametags/stringtable.xml b/addons/nametags/stringtable.xml index ef6f27fb16..97366549d7 100644 --- a/addons/nametags/stringtable.xml +++ b/addons/nametags/stringtable.xml @@ -539,5 +539,8 @@ 在荧幕边框旁淡出 在螢幕邊框旁淡出 + + Player tags transparency + diff --git a/addons/repair/ACE_Settings.hpp b/addons/repair/ACE_Settings.hpp index ea3994caec..d5fc6a430e 100644 --- a/addons/repair/ACE_Settings.hpp +++ b/addons/repair/ACE_Settings.hpp @@ -80,6 +80,8 @@ class ACE_Settings { _values[] = {{}, {"ToolKit"}}; }; class GVAR(autoShutOffEngineWhenStartingRepair) { + displayName = CSTRING(autoShutOffEngineWhenStartingRepair_name); + description = CSTRING(autoShutOffEngineWhenStartingRepair_description); typeName = "BOOL"; value = 0; category = ECSTRING(OptionsMenu,CategoryLogistics); diff --git a/addons/repair/stringtable.xml b/addons/repair/stringtable.xml index d5f9329b96..0135f50fc7 100644 --- a/addons/repair/stringtable.xml +++ b/addons/repair/stringtable.xml @@ -1824,5 +1824,11 @@ 設定載具在貨艙內攜帶的備用輪胎數量。 设定载具在货舱内携带的备用轮胎数量。 + + Auto shut off engine on repair + + + Automatically shut off the engine when doing repairs. + From 1d6e07d18f27f758fc5c139d591bbcd74252f418 Mon Sep 17 00:00:00 2001 From: Josuan Albin Date: Thu, 15 Feb 2018 17:03:22 +0100 Subject: [PATCH 042/235] Add ACE Arsenal stats (#6110) * Add test class * Add stats mockup * Merge branch 'master' of https://github.com/acemod/ACE3 into arsenalStats * Finish mockup, add basic hide/show logic * Add base for stats * Use CBA EHs for stats to allow 3rd party mods of it * Add handleStats and most of the UI behaviors for stats * Continue work on stats * Add container stats * Add page support for stats * Add text for the ROF stat * Add accuracy in MOA for the accuracy stat * Change accuracy shown number to 1 decimal instead of 2 * Add MIL in the dispersion stat text * Change stats layout, remove dummy text strings * Add some AB stats * Remove last test string * Replace configExtremes by normal lookup where it's relevant * Add "undefined value" string when AB stat isn't present Mostly for laucnhers * Fix typo in preInit * Change drag model stat to ballistic coef * Fix issue with unused stats, change text to white when bar is present * Rewrite some part of handleStats Reason: add support for conditions, less redundant code, less reasons for dedmen to emasculate me * Re-add _hideUnusedFnc, handle empty stats arrays * Pass args to stat conditions, add test condition stat * Add hearing related stats * Remove the padding between stats and the stat bar / text * Add strings for stats * Change stats window to fit baer's suggestion * Algin the close stats button, add missing strings * Finish code review * Add missing newline * Remove duplicate strings * Add explosive range stat * Use proper string for the explo range stat * Fix capitalization for ctrlParent * Fix conditional stats blocking other stats * Add better integration for ballistics, hearing and explosive stats * Replace the private array in handleStat by params * Add backblast stats * Add backblast stat strings * Add flashlight map color and g-force reduction stats * Shorten preInit * Change stats close button to fit arsenal design * Improve stats page indicator look * Rework how stats are stored and retrieved * Remove args config entry, add priority entry, add vanilla weapon stats * Add vanilla container stats * Remove some lines in preInit * Add ballistics stats * Add hearing stats * Remove uneeded config entries * Add explosive range stat * Add backblast stats * Add spaces after semicolons in statements To make JJ happy because I don't care. * Add flashlights map color stat * Add gforce reduction stat FINALLY FUCKING DONE * Fix headers for the new stats funcs * Add add / remove stat API * Fix typo in removeStat header * Remove uneeded inline func * Clean up add / remove stat * Move all CfgACEArsenalStats entries to their own file * Replace STR_ACE_Ballistics_statAmmo by a BI string * Add script profiler related macro and code * Use the highest ballistic coef instead of first one defined * Add support for future ammo displayname * Add ACE_standardAtmosphere for ballistic coef * Add mag muzzle velocity stat * Add weapon muzzle velocity stat * Add comment explaining the ENABLE_PERF_PROFILING macro * Change cfgACEArsenalStats to ACE_Arsenal_Stats * Make JJ less pissy about spaces around = * Fix indentation in weaponMuzzleVelocity, use param * Use GVAR and EGVAR when appropriate * Prefix all stats except the base class * Fix Merge * Fix aspect ratio scaling of stats panel * Minor fixes --- addons/arsenal/ACE_Arsenal_Stats.hpp | 96 ++++++ addons/arsenal/XEH_PREP.hpp | 11 + addons/arsenal/XEH_preInit.sqf | 38 +++ addons/arsenal/XEH_preStart.sqf | 1 + addons/arsenal/config.cpp | 1 + addons/arsenal/defines.hpp | 26 ++ addons/arsenal/functions/fnc_addStat.sqf | 99 ++++++ addons/arsenal/functions/fnc_buttonHide.sqf | 9 +- addons/arsenal/functions/fnc_buttonStats.sqf | 31 ++ .../arsenal/functions/fnc_buttonStatsPage.sqf | 29 ++ addons/arsenal/functions/fnc_compileStats.sqf | 133 ++++++++ .../arsenal/functions/fnc_fillLeftPanel.sqf | 4 + .../arsenal/functions/fnc_fillRightPanel.sqf | 4 + addons/arsenal/functions/fnc_handleStats.sqf | 319 ++++++++++++++++++ addons/arsenal/functions/fnc_itemInfo.sqf | 8 + .../arsenal/functions/fnc_onArsenalClose.sqf | 5 + .../arsenal/functions/fnc_onArsenalOpen.sqf | 24 ++ .../functions/fnc_onSelChangedLeft.sqf | 4 + .../functions/fnc_onSelChangedRight.sqf | 4 + .../fnc_onSelChangedRightListnBox.sqf | 4 + addons/arsenal/functions/fnc_removeStat.sqf | 66 ++++ addons/arsenal/functions/fnc_showItem.sqf | 4 + addons/arsenal/functions/fnc_sortPanel.sqf | 4 + .../fnc_statBarStatement_default.sqf | 30 ++ .../functions/fnc_statBarStatement_impact.sqf | 34 ++ .../fnc_statTextStatement_accuracy.sqf | 31 ++ .../functions/fnc_statTextStatement_mass.sqf | 28 ++ .../fnc_statTextStatement_rateOfFire.sqf | 29 ++ .../functions/fnc_updateRightPanel.sqf | 4 + .../arsenal/functions/fnc_verifyLoadout.sqf | 4 +- addons/arsenal/script_component.hpp | 1 + addons/arsenal/stringtable.xml | 8 + addons/arsenal/ui/RscAttributes.hpp | 227 +++++++++++-- addons/ballistics/ACE_Arsenal_Stats.hpp | 66 ++++ addons/ballistics/CfgEventHandlers.hpp | 11 + addons/ballistics/XEH_PREP.hpp | 1 + addons/ballistics/XEH_preInit.sqf | 7 + addons/ballistics/XEH_preStart.sqf | 3 + addons/ballistics/config.cpp | 2 + ...statTextStatement_weaponMuzzleVelocity.sqf | 45 +++ .../ballistics/functions/script_component.hpp | 1 + addons/ballistics/stringtable.xml | 19 ++ addons/explosives/ACE_Arsenal_Stats.hpp | 13 + addons/explosives/config.cpp | 1 + addons/explosives/stringtable.xml | 4 + addons/flashlights/ACE_Arsenal_Stats.hpp | 13 + addons/flashlights/config.cpp | 1 + addons/flashlights/stringtable.xml | 4 + addons/gforces/ACE_Arsenal_Stats.hpp | 13 + addons/gforces/config.cpp | 1 + addons/gforces/stringtable.xml | 4 + addons/hearing/ACE_Arsenal_Stats.hpp | 21 ++ addons/hearing/config.cpp | 1 + addons/hearing/stringtable.xml | 8 + addons/overpressure/ACE_Arsenal_Stats.hpp | 21 ++ addons/overpressure/config.cpp | 1 + addons/overpressure/stringtable.xml | 6 + 57 files changed, 1564 insertions(+), 23 deletions(-) create mode 100644 addons/arsenal/ACE_Arsenal_Stats.hpp create mode 100644 addons/arsenal/functions/fnc_addStat.sqf create mode 100644 addons/arsenal/functions/fnc_buttonStats.sqf create mode 100644 addons/arsenal/functions/fnc_buttonStatsPage.sqf create mode 100644 addons/arsenal/functions/fnc_compileStats.sqf create mode 100644 addons/arsenal/functions/fnc_handleStats.sqf create mode 100644 addons/arsenal/functions/fnc_removeStat.sqf create mode 100644 addons/arsenal/functions/fnc_statBarStatement_default.sqf create mode 100644 addons/arsenal/functions/fnc_statBarStatement_impact.sqf create mode 100644 addons/arsenal/functions/fnc_statTextStatement_accuracy.sqf create mode 100644 addons/arsenal/functions/fnc_statTextStatement_mass.sqf create mode 100644 addons/arsenal/functions/fnc_statTextStatement_rateOfFire.sqf create mode 100644 addons/ballistics/ACE_Arsenal_Stats.hpp create mode 100644 addons/ballistics/CfgEventHandlers.hpp create mode 100644 addons/ballistics/XEH_PREP.hpp create mode 100644 addons/ballistics/XEH_preInit.sqf create mode 100644 addons/ballistics/XEH_preStart.sqf create mode 100644 addons/ballistics/functions/fnc_statTextStatement_weaponMuzzleVelocity.sqf create mode 100644 addons/ballistics/functions/script_component.hpp create mode 100644 addons/explosives/ACE_Arsenal_Stats.hpp create mode 100644 addons/flashlights/ACE_Arsenal_Stats.hpp create mode 100644 addons/gforces/ACE_Arsenal_Stats.hpp create mode 100644 addons/hearing/ACE_Arsenal_Stats.hpp create mode 100644 addons/overpressure/ACE_Arsenal_Stats.hpp diff --git a/addons/arsenal/ACE_Arsenal_Stats.hpp b/addons/arsenal/ACE_Arsenal_Stats.hpp new file mode 100644 index 0000000000..b9fbfc39c0 --- /dev/null +++ b/addons/arsenal/ACE_Arsenal_Stats.hpp @@ -0,0 +1,96 @@ +class GVAR(stats) { + class statBase { + scope = 1; + priority = 0; + stats[] = {}; + displayName = ""; + showBar = 0; + showText = 0; + barStatement = ""; + textStatement = ""; + condition = "true"; + tabs[] = {{}, {}}; + }; + class ACE_bananaPotassium: statBase { + scope = 2; + displayName= CSTRING(statPotassium); + showBar = 1; + barStatement = "1"; + condition = QUOTE((configName (_this select 1)) == 'ACE_Banana'); + tabs[] = {{}, {7}}; + }; + class ACE_mass: statBase { + scope = 2; + displayName= "$STR_a3_rscdisplayarsenal_stat_weight"; + showText = 1; + textStatement = QUOTE([ARR_2(_this select 0, _this select 1)] call FUNC(statTextStatement_mass)); + tabs[] = {{0,1,2,3,4,5,6,7,8,9,10,11,12,13,14}, {0,1,2,3,4,5,6,7}}; + }; + class ACE_rateOfFire: statBase { + scope = 2; + priority = 5; + stats[] = {"reloadTime"}; + displayName= "$STR_a3_rscdisplayarsenal_stat_rof"; + showBar = 1; + showText = 1; + barStatement = QUOTE([ARR_3((_this select 0) select 0, _this select 1, [ARR_3([ARR_2(-1.4, 0.31)], [ARR_2(1, 0.01)], true)])] call FUNC(statBarStatement_default)); + textStatement = QUOTE([ARR_3((_this select 0) select 0, _this select 1, [ARR_2([ARR_2(-1.4, 0.31)], false)])] call FUNC(statTextStatement_rateOfFire)); + tabs[] = {{0,1}, {}}; + }; + class ACE_accuracy: statBase { + scope = 2; + priority = 4; + stats[] = {"dispersion"}; + displayName = "$STR_a3_rscdisplayarsenal_stat_dispersion"; + showBar = 1; + showText = 1; + barStatement = QUOTE([ARR_3((_this select 0) select 0, _this select 1, [ARR_3([ARR_2(-4, -1.7)], [ARR_2(1, 0.01)], true)])] call FUNC(statBarStatement_default)); + textStatement = QUOTE([ARR_3((_this select 0) select 0, _this select 1, [ARR_2([ARR_2(-4, -1.7)], false)])] call FUNC(statTextStatement_accuracy)); + tabs[] = {{0,1}, {}}; + }; + class ACE_maxZeroing: statBase { + scope = 2; + priority = 3; + stats[] = {"maxZeroing"}; + displayName = "$STR_a3_rscdisplayarsenal_stat_range"; + showBar = 1; + barStatement = QUOTE([ARR_3((_this select 0) select 0, _this select 1, [ARR_3([ARR_2(0, 2500)], [ARR_2(0.01, 1)], false)])] call FUNC(statBarStatement_default)); + tabs[] = {{0,1,2}, {}}; + }; + class ACE_impact: statBase { + scope = 2; + priority = 2; + stats[] = {"hit", "initSpeed"}; + displayName = "$STR_a3_rscdisplayarsenal_stat_impact"; + showBar = 1; + barStatement = QUOTE([ARR_3(_this select 0, _this select 1, [ARR_3([ARR_2(0, 3.2)], [ARR_2(-1, 1100)], 2006)])] call FUNC(statBarStatement_impact)); + tabs[] = {{0,1,2}, {}}; + }; + class ACE_ballisticProtection: statBase { + scope = 2; + priority = 5; + stats[] = {"passthrough"}; + displayName = "$STR_a3_rscdisplayarsenal_stat_passthrough"; + showBar = 1; + barStatement = QUOTE([ARR_3((_this select 0) select 0, _this select 1, [ARR_3([ARR_2(0, 0.63)], [ARR_2(0.01, 1)], false)])] call FUNC(statBarStatement_default)); + tabs[] = {{3,4,6}, {}}; + }; + class ACE_explosiveResistance: statBase { + scope = 2; + priority = 4; + stats[] = {"armor"}; + displayName = "$STR_a3_rscdisplayarsenal_stat_armor"; + showBar = 1; + barStatement = QUOTE([ARR_3((_this select 0) select 0, _this select 1, [ARR_3([ARR_2(0, 0.80)], [ARR_2(0.01, 1)], false)])] call FUNC(statBarStatement_default)); + tabs[] = {{3,4,6}, {}}; + }; + class ACE_load: statBase { + scope = 2; + priority = 3; + stats[] = {"maximumLoad"}; + displayName = "$STR_a3_rscdisplayarsenal_stat_load"; + showBar = 1; + barStatement = QUOTE([ARR_3((_this select 0) select 0, _this select 1, [ARR_3([ARR_2(0, 500)], [ARR_2(0.01, 1)], false)])] call FUNC(statBarStatement_default)); + tabs[] = {{3,4,5}, {}}; + }; +}; diff --git a/addons/arsenal/XEH_PREP.hpp b/addons/arsenal/XEH_PREP.hpp index 7596b769d8..e74de9c1aa 100644 --- a/addons/arsenal/XEH_PREP.hpp +++ b/addons/arsenal/XEH_PREP.hpp @@ -1,4 +1,5 @@ PREP(addListBoxItem); +PREP(addStat); PREP(addVirtualItems); PREP(buttonCargo); PREP(buttonClearAll); @@ -10,7 +11,10 @@ PREP(buttonLoadoutsLoad); PREP(buttonLoadoutsRename); PREP(buttonLoadoutsSave); PREP(buttonLoadoutsShare); +PREP(buttonStats); +PREP(buttonStatsPage); PREP(clearSearchbar); +PREP(compileStats); PREP(fillLeftPanel); PREP(fillLoadoutsList); PREP(fillRightPanel); @@ -18,6 +22,7 @@ PREP(handleLoadoutsSearchbar); PREP(handleMouse); PREP(handleScrollWheel); PREP(handleSearchbar); +PREP(handleStats); PREP(initBox); PREP(itemInfo); PREP(loadoutsChangeTab); @@ -37,10 +42,16 @@ PREP(open3DEN); PREP(openBox); PREP(portVALoadouts); PREP(removeBox); +PREP(removeStat); PREP(removeVirtualItems); PREP(scanConfig); PREP(showItem); PREP(sortPanel); +PREP(statBarStatement_default); +PREP(statBarStatement_impact); +PREP(statTextStatement_accuracy); +PREP(statTextStatement_mass); +PREP(statTextStatement_rateOfFire); PREP(updateCamPos); PREP(updateRightPanel); PREP(updateUniqueItemsList); diff --git a/addons/arsenal/XEH_preInit.sqf b/addons/arsenal/XEH_preInit.sqf index d91a73ac96..1919941139 100644 --- a/addons/arsenal/XEH_preInit.sqf +++ b/addons/arsenal/XEH_preInit.sqf @@ -1,4 +1,5 @@ #include "script_component.hpp" +#include "defines.hpp" ADDON = false; @@ -20,4 +21,41 @@ GVAR(modList) = ["","curator","kart","heli","mark","expansion","expansionpremium [QGVAR(allowSharedLoadouts), "CHECKBOX", localize LSTRING(allowSharingSetting), localize LSTRING(settingCategory), true, true] call CBA_Settings_fnc_init; [QGVAR(EnableRPTLog), "CHECKBOX", [LSTRING(printToRPTSetting), LSTRING(printToRPTTooltip)], localize LSTRING(settingCategory), false, false] call CBA_Settings_fnc_init; +[QGVAR(statsToggle), { + params ["_display", "_showStats"]; + + private _statsCtrlGroupCtrl = _display displayCtrl IDC_statsBox; + private _statsPreviousPageCtrl = _display displayCtrl IDC_statsPreviousPage; + private _statsNextPageCtrl = _display displayCtrl IDC_statsNextPage; + private _statsCurrentPageCtrl = _display displayCtrl IDC_statsCurrentPage; + + private _statsButtonCtrl = _display displayCtrl IDC_statsButton; + private _statsButtonCloseCtrl = _display displayCtrl IDC_statsButtonClose; + + { + _x ctrlShow (GVAR(showStats) && {_showStats}); + } forEach [ + _statsCtrlGroupCtrl, + _statsPreviousPageCtrl, + _statsNextPageCtrl, + _statsCurrentPageCtrl, + _statsButtonCloseCtrl + ]; + + _statsButtonCtrl ctrlShow (!GVAR(showStats) && {_showStats}) +}] call CBA_fnc_addEventHandler; + +[QGVAR(statsButton), { + _this call FUNC(buttonStats); +}] call CBA_fnc_addEventHandler; + +[QGVAR(statsChangePage), { + _this call FUNC(buttonStatsPage); +}] call CBA_fnc_addEventHandler; + + +[QGVAR(displayStats), { + _this call FUNC(handleStats); +}] call CBA_fnc_addEventHandler; + ADDON = true; diff --git a/addons/arsenal/XEH_preStart.sqf b/addons/arsenal/XEH_preStart.sqf index ed7f4f0345..711d7b3018 100644 --- a/addons/arsenal/XEH_preStart.sqf +++ b/addons/arsenal/XEH_preStart.sqf @@ -3,3 +3,4 @@ #include "XEH_PREP.hpp" call FUNC(scanConfig); +call FUNC(compileStats); diff --git a/addons/arsenal/config.cpp b/addons/arsenal/config.cpp index 0c3000ab3c..9ba31a31f6 100644 --- a/addons/arsenal/config.cpp +++ b/addons/arsenal/config.cpp @@ -39,3 +39,4 @@ class Cfg3DEN { #include "ui\RscAttributes.hpp" #include "CfgEventHandlers.hpp" #include "RscDisplayMain.hpp" +#include "ACE_Arsenal_Stats.hpp" diff --git a/addons/arsenal/defines.hpp b/addons/arsenal/defines.hpp index b414484103..42c0e70536 100644 --- a/addons/arsenal/defines.hpp +++ b/addons/arsenal/defines.hpp @@ -104,6 +104,32 @@ #define IDC_buttonMisc 38 #define IDC_buttonRemoveAllSelected 39 #define IDC_buttonRemoveAll 40 +#define IDC_statsBox 51 +#define IDC_statsTitle1 5101 +#define IDC_statsBackground1 5102 +#define IDC_statsBar1 5103 +#define IDC_statsText1 5104 +#define IDC_statsTitle2 5105 +#define IDC_statsBackground2 5106 +#define IDC_statsBar2 5107 +#define IDC_statsText2 5108 +#define IDC_statsTitle3 5109 +#define IDC_statsBackground3 5110 +#define IDC_statsBar3 5111 +#define IDC_statsText3 5112 +#define IDC_statsTitle4 5113 +#define IDC_statsBackground4 5114 +#define IDC_statsBar4 5115 +#define IDC_statsText4 5116 +#define IDC_statsTitle5 5117 +#define IDC_statsBackground5 5118 +#define IDC_statsBar5 5119 +#define IDC_statsText5 5120 +#define IDC_statsPreviousPage 52 +#define IDC_statsNextPage 53 +#define IDC_statsCurrentPage 54 +#define IDC_statsButton 55 +#define IDC_statsButtonClose 56 #define IDD_loadouts_display 1127002 #define IDC_centerBox 3 diff --git a/addons/arsenal/functions/fnc_addStat.sqf b/addons/arsenal/functions/fnc_addStat.sqf new file mode 100644 index 0000000000..6b14dcdcd2 --- /dev/null +++ b/addons/arsenal/functions/fnc_addStat.sqf @@ -0,0 +1,99 @@ +/* + * Author: Alganthe + * Add a stat to ACE Arsenal. + * + * Arguments: + * 0: Tabs to add the stat to (ARRAY of ARRAYS) + * 0.1: Left tab indexes (ARRAY of NUMBERS) + * 0.2 Right tab indexes (ARRAY of NUMBERS) + * 1: Stat class (STRING) (A unique string for each stat) + * 2: Config entries to pass (ARRAY of STRINGS) + * 3: Title (STRING) + * 4: Show bar / show text bools (ARRAY of BOOLS) + * 4.1 Show bar (BOOL) + * 4.2 Show text (BOOL) + * 5: Array of statements (ARRAY of ARRAYS) + * 5.1: Bar code (CODE) + * 5.2 Text code (CODE) + * 5.3 Condition code (CODE) + * 6: Priority (NUMBER) (Optional) + * + * Return Value: + * 0: Array of IDs (ARRAY of STRINGS) + * + * Example: + * [[[0,1,2], [7]], "scopeStat", ["scope"], "Scope", [false, true], [{}, { + params ["_statsArray", "_itemCfg"]; + getNumber (_itemCfg >> _statsArray select 0) + }, {true}]] call ACE_arsenal_fnc_addStat + * + * Public: Yes +*/ +#include "script_component.hpp" +params [ + ["_tabs", [[], []], [[]], 2], + ["_class", "", [""]], + ["_stats", [], [[]]], + ["_title", "", [""]], + ["_bools", [false, false], [[]], 2], + ["_statements", [{}, {}, {true}], [[]], 3], + ["_priority", 0, [0]] +]; + +_tabs params [ + ["_leftTabs", [], [[]]], + ["_rightTabs", [], [[]]] +]; + +_bools params [["_showBar", false, [false]], ["_showText", false, [false]]]; + +_statements params [ + ["_barStatement", {}, [{}]], + ["_textStatement", {}, [{}]], + ["_condition", {true}, [{}]] +]; + +private _statsListLeftPanel = uiNamespace getVariable QGVAR(statsListLeftPanel); +private _statsListRightPanel = uiNamespace getVariable QGVAR(statsListRightPanel); +private _returnArray = []; + +private _fnc_addToTabs = { + params ["_tabsList", "_tabsToAddTo", "_sideString", "_returnIndex"]; + { + private _currentTab = _tabsList select _x; + + private _finalID = [_class, _sideString, [str _x, format ["0%1", _x]] select (_x < 10)] joinString ""; + + if ({{_x select 0 == _finalID} count _x > 0} count _currentTab > 0) then { + TRACE_1("A stat with this ID already exists", _finalID); + } else { + + private _arrayToSave = +_finalArray; + _arrayToSave set [0, _finalID]; + _returnArray pushBack _finalID; + + // Add to existing page if there's enough space, otherwise create a new page + if ({count _x < 5} count _currentTab > 0) then { + { + if (count _x < 5) exitWith { + (_currentTab select _forEachIndex) append [_arrayToSave]; + }; + } foreach _currentTab; + } else { + _currentTab pushBack [_arrayToSave]; + }; + }; + } foreach _tabsToAddTo; +}; + +private _finalArray = ["", _stats, _title, [_showBar, _showText], [_barStatement, _textStatement, _condition], _priority]; + +if (count _leftTabs > 0) then { + [_statsListLeftPanel, _leftTabs, "L", 0] call _fnc_addToTabs; +}; + +if (count _rightTabs > 0) then { + [_statsListRightPanel, _rightTabs, "R", 1] call _fnc_addToTabs; +}; + +_returnArray diff --git a/addons/arsenal/functions/fnc_buttonHide.sqf b/addons/arsenal/functions/fnc_buttonHide.sqf index d79ff779d1..da870e0b9f 100644 --- a/addons/arsenal/functions/fnc_buttonHide.sqf +++ b/addons/arsenal/functions/fnc_buttonHide.sqf @@ -48,5 +48,12 @@ private _showToggle = !ctrlShown (_display displayCtrl IDC_menuBar); IDC_buttonCurrentMag, IDC_buttonCurrentMag2, IDC_iconBackgroundCurrentMag, - IDC_iconBackgroundCurrentMag2 + IDC_iconBackgroundCurrentMag2, + IDC_statsButton, + IDC_statsPreviousPage, + IDC_statsNextPage, + IDC_statsCurrentPage, + IDC_statsButtonClose ]; + +[QGVAR(statsToggle), [_display, _showToggle]] call CBA_fnc_localEvent; diff --git a/addons/arsenal/functions/fnc_buttonStats.sqf b/addons/arsenal/functions/fnc_buttonStats.sqf new file mode 100644 index 0000000000..7fe2d1fbf1 --- /dev/null +++ b/addons/arsenal/functions/fnc_buttonStats.sqf @@ -0,0 +1,31 @@ +/* + * Author: Alganthe + * Toggle the stats control group + * + * Arguments: + * 0: Arsenal display + * 1: Button control + * + * Return Value: + * None + * + * Public: No +*/ +#include "script_component.hpp" +#include "..\defines.hpp" + +params ["_display"]; + +(_display displayCtrl IDC_statsButton) ctrlShow GVAR(showStats); +GVAR(showStats) = !GVAR(showStats); + +{ + (_display displayCtrl _x) ctrlShow GVAR(showStats); +} foreach [ + IDC_statsBox, + IDC_statsPreviousPage, + IDC_statsNextPage, + IDC_statsCurrentPage, + IDC_statsButtonClose +]; + diff --git a/addons/arsenal/functions/fnc_buttonStatsPage.sqf b/addons/arsenal/functions/fnc_buttonStatsPage.sqf new file mode 100644 index 0000000000..b1c1cdf7eb --- /dev/null +++ b/addons/arsenal/functions/fnc_buttonStatsPage.sqf @@ -0,0 +1,29 @@ +/* + * Author: Alganthe + * Handles the previous / next page buttons for stats + * + * Arguments: + * 0: Arsenal display + * 1: Previous or next (false = previous, true = next) + * + * Return Value: + * None + * + * Public: No +*/ +#include "script_component.hpp" +#include "..\defines.hpp" + +params ["_display", "_control", "_nextPage"]; + +TRACE_1("control enabled", ctrlEnabled _control); +if !(ctrlEnabled _control) exitWith {}; + +GVAR(statsInfo) params ["_isLeftPanel", "_statsIndex", "_panelControl", "_curSel", "_itemCfg"]; + +private _pageList = [GVAR(statsPagesRight), GVAR(statsPagesLeft)] select (_isLeftPanel); +private _newPageNumber = [(_pageList select _statsIndex) - 1, (_pageList select _statsIndex) + 1] select _nextPage; + +_pageList set [_statsIndex, _newPageNumber]; + +[QGVAR(displayStats), [_display, _panelControl, _curSel, _itemCfg]] call CBA_fnc_localEvent; diff --git a/addons/arsenal/functions/fnc_compileStats.sqf b/addons/arsenal/functions/fnc_compileStats.sqf new file mode 100644 index 0000000000..05a77d9efd --- /dev/null +++ b/addons/arsenal/functions/fnc_compileStats.sqf @@ -0,0 +1,133 @@ +/* + * Author: Alganthe + * Create the internal stats arrays on preStart + * + * Arguments: + * None + * + * Return Value: + * None + * + * Public: No +*/ +#include "script_component.hpp" + +private _fnc_addToTabs = { + params ["_tabsList", "_tabsToAddTo", "_sideString"]; + { + private _currentTab = _tabsList select _x; + private _availablePagesCount = {count _x < 5} count _currentTab; + + private _arrayToSave = +_finalArray; + _arrayToSave set [0, ([_class, _sideString, [str _x, format ["0%1", _x]] select (_x < 10)] joinString "")]; + + if (_availablePagesCount > 0) then { + + { + if (count _x < 5) exitWith { + (_currentTab select _forEachIndex) append [_arrayToSave]; + }; + } foreach _currentTab; + } else { + _currentTab pushBack [_arrayToSave]; + }; + } foreach _tabsToAddTo; +}; + +private _fnc_sortLists = { + params ["_tabsList"]; + + { + private _page = _x; + { + { + reverse _x; + } foreach _x; + + _x sort false; + + { + reverse _x; + } foreach _x; + } foreach _page; + } foreach _tabsList; +}; + +private _statsListLeftPanel = uiNamespace getVariable [QGVAR(statsListLeftPanel), [ + [[]], // Primary 0 + [[]], // Handgun 1 + [[]], // Launcher 2 + [[]], // Uniform 3 + [[]], // Vests 4 + [[]], // Backpacks 5 + [[]], // Headgear 6 + [[]], // Goggles 7 + [[]], // NVGs 8 + [[]], // Binoculars 9 + [[]], // Map 10 + [[]], // GPS 11 + [[]], // Radio 12 + [[]], // Compass 13 + [[]] // Watch 14 +]]; + +private _statsListRightPanel = uiNamespace getVariable [QGVAR(statsListRightPanel), [ + [[]], // Optics 0 + [[]], // Side accs 1 + [[]], // Muzzle 2 + [[]], // Bipod 3 + [[]], // Mag 4 + [[]], // Throw 5 + [[]], // Put 6 + [[]] // Misc 7 +]]; + +//------------------------- Config handling +private _configEntries = "(getNumber (_x >> 'scope')) == 2" configClasses (configFile >> QGVAR(stats)); + +{ + private _finalArray = []; + + private _class = configName _x; + private _stats = getArray (_x >> "stats"); + private _displayName = getText (_x >> "displayName"); + private _showBar = getNumber (_x >> "showBar") == 1; + private _showText = getNumber (_x >> "showText") == 1; + private _condition = getText (_x >> "condition"); + private _priority = getNumber (_x >> "priority"); + (getArray (_x >> "tabs")) params ["_leftTabsList", "_rightTabsList"]; + + if (_condition != "") then { + _condition = compile _condition; + }; + + _finalArray = ["", _stats, _displayName, [_showBar, _showText], [{}, {}, _condition], _priority]; + + if (_showBar) then { + private _barStatement = compile (getText (_x >> "barStatement")); + (_finalArray select 4) set [0, _barStatement]; + }; + + if (_showText) then { + private _textStatement = compile (getText (_x >> "textStatement")); + (_finalArray select 4) set [1, _textStatement]; + }; + + TRACE_3("stats array", _finalArray, _leftTabsList, _rightTabsList); + + if (count _leftTabsList > 0) then { + [_statsListLeftPanel, _leftTabsList, "L"] call _fnc_addToTabs; + }; + + if (count _rightTabsList > 0) then { + [_statsListRightPanel, _rightTabsList, "R"] call _fnc_addToTabs; + }; +} foreach _configEntries; + +[_statsListLeftPanel] call _fnc_sortLists; +[_statsListRightPanel] call _fnc_sortLists; + +//------------------------- Config Handling + +uiNamespace setVariable [QGVAR(statsListLeftPanel), _statsListLeftPanel]; +uiNamespace setVariable [QGVAR(statsListRightPanel), _statsListRightPanel]; diff --git a/addons/arsenal/functions/fnc_fillLeftPanel.sqf b/addons/arsenal/functions/fnc_fillLeftPanel.sqf index 83a4336ea0..46dbd86e83 100644 --- a/addons/arsenal/functions/fnc_fillLeftPanel.sqf +++ b/addons/arsenal/functions/fnc_fillLeftPanel.sqf @@ -14,6 +14,10 @@ #include "script_component.hpp" #include "..\defines.hpp" +#ifdef ENABLE_PERF_PROFILING + private _scopeFillLeftPanel = createProfileScope QFUNC(fillLeftPanel); +#endif + params ["_display", "_control"]; private _ctrlIDC = ctrlIDC _control; diff --git a/addons/arsenal/functions/fnc_fillRightPanel.sqf b/addons/arsenal/functions/fnc_fillRightPanel.sqf index c62ea3cab8..52d91cf20c 100644 --- a/addons/arsenal/functions/fnc_fillRightPanel.sqf +++ b/addons/arsenal/functions/fnc_fillRightPanel.sqf @@ -14,6 +14,10 @@ #include "script_component.hpp" #include "..\defines.hpp" +#ifdef ENABLE_PERF_PROFILING + private _scopeFillRightPanel = createProfileScope QFUNC(fillRightPanel); +#endif + params ["_display", "_control"]; private _ctrlIDC = ctrlIDC _control; diff --git a/addons/arsenal/functions/fnc_handleStats.sqf b/addons/arsenal/functions/fnc_handleStats.sqf new file mode 100644 index 0000000000..4105fe092e --- /dev/null +++ b/addons/arsenal/functions/fnc_handleStats.sqf @@ -0,0 +1,319 @@ +/* + * Author: Alganthe + * Handles the stats control group + * + * Arguments: + * 0: Arsenal display + * 1: Current panel control + * 2: Current panel selection + * 3: Item config entry + * + * Return Value: + * None + * + * Public: No +*/ +#include "script_component.hpp" +#include "..\defines.hpp" + +#ifdef ENABLE_PERF_PROFILING + private _scopeHandleStats = createProfileScope QFUNC(handleStats); +#endif + +params ["_display", "_control", "_curSel", "_itemCfg"]; + +private _statsBoxCtrl = _display displayCtrl IDC_statsBox; +private _statsPreviousPageCtrl = _display displayCtrl IDC_statsPreviousPage; +private _statsNextPageCtrl = _display displayCtrl IDC_statsNextPage; +private _statsCurrentPageCtrl = _display displayCtrl IDC_statsCurrentPage; + +private _hideUnusedFnc = { + params ["_numbers"]; + + { + private _statsTitleCtrl = _display displayCtrl (5101 + ((_x - 1) * 4)); + private _statsTitleIDC = ctrlIDC _statsTitleCtrl; + + private _statsBackgroundCtrl = _display displayCtrl (_statsTitleIDC + 1); + private _statsBarCtrl = _display displayCtrl (_statsTitleIDC + 2); + private _statsTextCtrl = _display displayCtrl (_statsTitleIDC + 3); + + { + _x ctrlSetFade 1; + _x ctrlCommit 0; + } forEach [ + _statsTitleCtrl, + _statsBackgroundCtrl, + _statsBarCtrl, + _statsTextCtrl + ]; + } forEach _numbers; +}; + +if !(isNil "_itemCfg") then { + + private _handleStatsFnc = { + params ["_statsIndex", "_leftPanel"]; + + // Get the proper list and page + if (_leftPanel) then { + [true, (uiNamespace getVariable QGVAR(statsListLeftPanel)) select _statsIndex, GVAR(statsPagesLeft) select _statsIndex] + } else { + [false, (uiNamespace getVariable QGVAR(statsListRightPanel)) select _statsIndex, GVAR(statsPagesRight) select _statsIndex] + } params ["_isLeftPanel", "_statsArray", "_currentPage"]; + + private _statsList = _statsArray select _currentPage; + + private _statsCount = 0; + + // Handle titles, bars and text + _statsList = _statsList select [0, 5]; + if !(_statsList isEqualTo []) then { + { + _x params ["_ID", "_configEntry", "_title", "_bools", "_statements"]; + _bools params ["_showBar", "_showText"]; + _statements params [["_barStatement", {}, [{}]], ["_textStatement", {}, [{}]], ["_condition", {true}, [{}]]]; + + private _statsTitleCtrl = _display displayCtrl (5101 + _forEachIndex * 4); + private _statsTitleIDC = ctrlIDC _statsTitleCtrl; + private _statsBackgroundCtrl = _display displayCtrl (_statsTitleIDC + 1); + private _statsBarCtrl = _display displayCtrl (_statsTitleIDC + 2); + private _statsTextCtrl = _display displayCtrl (_statsTitleIDC + 3); + + _statsCount = _statsCount + 1; + _statsTitleCtrl ctrlSetText _title; + _statsTitleCtrl ctrlSetFade 0; + + // Handle bars + if (_showBar) then { + _statsBarCtrl progressSetPosition ([_configEntry, _itemCfg] call _barStatement); + + _statsBackgroundCtrl ctrlSetFade 0; + _statsBarCtrl ctrlSetFade 0; + } else { + _statsBackgroundCtrl ctrlSetFade 1; + _statsBarCtrl ctrlSetFade 1; + }; + + // Handle text entries + if (_showText) then { + private _textStatementResult = [_configEntry, _itemCfg] call _textStatement; + + if (_textStatementResult isEqualtype "") then { + _statsTextCtrl ctrlSetText _textStatementResult; + } else { + _statsTextCtrl ctrlSetText (str _textStatementResult); + }; + _statsTextCtrl ctrlSetTextColor ([[1,1,1,1], [0,0,0,1]] select (_showBar)); + + _statsTextCtrl ctrlSetFade 0; + } else { + _statsTextCtrl ctrlSetFade 1; + }; + + { + _x ctrlCommit 0; + } forEach [ + _statsTitleCtrl, + _statsBackgroundCtrl, + _statsBarCtrl, + _statsTextCtrl + ]; + } forEach (_statsList select { + _x params ["_ID","_configEntry", "_title", "_bools", "_statements"]; + _statements params [["_barStatement", {}, [{}]], ["_textStatement", {}, [{}]], ["_condition", {true}, [{}]]]; + + ([_configEntry, _itemCfg] call _condition) + }); + }; + + // Resize the window + switch (_statsCount) do { + case 0: { + [[1, 2, 3, 4, 5]] call _hideUnusedFnc; + _statsBoxCtrl ctrlSetPosition [ + (0.5 - WIDTH_TOTAL / 2) + WIDTH_GAP, + safezoneY + 1.8 * GRID_H, + 47 * GRID_W, + 11 * GRID_H + ]; + _statsBoxCtrl ctrlCommit 0; + }; + case 1: { + [[2, 3, 4, 5]] call _hideUnusedFnc; + _statsBoxCtrl ctrlSetPosition [ + (0.5 - WIDTH_TOTAL / 2) + WIDTH_GAP, + safezoneY + 1.8 * GRID_H, + 47 * GRID_W, + 15 * GRID_H + ]; + _statsBoxCtrl ctrlCommit 0; + }; + case 2: { + [[3, 4, 5]] call _hideUnusedFnc; + _statsBoxCtrl ctrlSetPosition [ + (0.5 - WIDTH_TOTAL / 2) + WIDTH_GAP, + safezoneY + 1.8 * GRID_H, + 47 * GRID_W, + 25 * GRID_H + ]; + _statsBoxCtrl ctrlCommit 0; + }; + case 3: { + [[4, 5]] call _hideUnusedFnc; + _statsBoxCtrl ctrlSetPosition [ + (0.5 - WIDTH_TOTAL / 2) + WIDTH_GAP, + safezoneY + 1.8 * GRID_H, + 47 * GRID_W, + 35 * GRID_H + ]; + _statsBoxCtrl ctrlCommit 0; + }; + case 4: { + [[5]] call _hideUnusedFnc; + _statsBoxCtrl ctrlSetPosition [ + (0.5 - WIDTH_TOTAL / 2) + WIDTH_GAP, + safezoneY + 1.8 * GRID_H, + 47 * GRID_W, + 45 * GRID_H + ]; + _statsBoxCtrl ctrlCommit 0; + }; + case 5: { + _statsBoxCtrl ctrlSetPosition [ + (0.5 - WIDTH_TOTAL / 2) + WIDTH_GAP, + safezoneY + 1.8 * GRID_H, + 47 * GRID_W, + 55 * GRID_H + ]; + _statsBoxCtrl ctrlCommit 0; + }; + }; + + GVAR(statsInfo) = [_isLeftPanel, _statsIndex, _control, _curSel, _itemCfg]; + + // Toggle page buttons + _statsPreviousPageCtrl ctrlEnable !(_currentPage == 0); + _statsNextPageCtrl ctrlEnable !(_currentPage + 1 >= count _statsArray); + _statsCurrentPageCtrl ctrlSetText ([localize LSTRING(page), str (_currentPage + 1)] joinString " "); + + { + _x ctrlSetFade 0; + _x ctrlCommit 0; + } forEach [ + _statsPreviousPageCtrl, + _statsNextPageCtrl, + _statsCurrentPageCtrl + ]; + }; + + if (ctrlIDC _control == IDC_leftTabContent) then { + + switch (GVAR(currentLeftPanel)) do { + case IDC_buttonPrimaryWeapon: { + [0, true] call _handleStatsFnc; + }; + case IDC_buttonHandgun: { + [1, true] call _handleStatsFnc; + }; + case IDC_buttonSecondaryWeapon: { + [2, true] call _handleStatsFnc; + }; + case IDC_buttonUniform: { + [3, true] call _handleStatsFnc; + }; + case IDC_buttonVest: { + [4, true] call _handleStatsFnc; + }; + case IDC_buttonBackpack: { + [5, true] call _handleStatsFnc; + }; + case IDC_buttonHeadgear: { + [6, true] call _handleStatsFnc; + }; + case IDC_buttonGoggles: { + [7, true] call _handleStatsFnc; + }; + case IDC_buttonNVG: { + [8, true] call _handleStatsFnc; + }; + case IDC_buttonBinoculars: { + [9, true] call _handleStatsFnc; + }; + case IDC_buttonMap: { + [10, true] call _handleStatsFnc; + }; + case IDC_buttonGPS: { + [11, true] call _handleStatsFnc; + }; + case IDC_buttonRadio: { + [12, true] call _handleStatsFnc; + }; + case IDC_buttonCompass: { + [13, true] call _handleStatsFnc; + }; + case IDC_buttonWatch: { + [14, true] call _handleStatsFnc; + }; + case IDC_buttonFace: { + [15, true] call _handleStatsFnc; + }; + case IDC_buttonVoice: { + [16, true] call _handleStatsFnc; + }; + case IDC_buttonInsigna: { + [17, true] call _handleStatsFnc; + }; + }; + } else { + + switch (GVAR(currentRightPanel)) do { + case IDC_buttonOptic: { + [0, false] call _handleStatsFnc; + }; + case IDC_buttonItemAcc: { + [1, false] call _handleStatsFnc; + }; + case IDC_buttonMuzzle: { + [2, false] call _handleStatsFnc; + }; + case IDC_buttonBipod: { + [3, false] call _handleStatsFnc; + }; + case IDC_buttonCurrentMag; + case IDC_buttonCurrentMag2; + case IDC_buttonMag; + case IDC_buttonMagALL: { + [4, false] call _handleStatsFnc; + }; + case IDC_buttonThrow: { + [5, false] call _handleStatsFnc; + }; + case IDC_buttonPut: { + [6, false] call _handleStatsFnc; + }; + case IDC_buttonMisc: { + [7, false] call _handleStatsFnc; + }; + }; + }; +} else { + + [[1, 2, 3, 4, 5]] call _hideUnusedFnc; + _statsBoxCtrl ctrlSetPosition [ + (0.5 - WIDTH_TOTAL / 2) + WIDTH_GAP, + safezoneY + 1.8 * GRID_H, + 47 * GRID_W, + 11 * GRID_H + ]; + _statsBoxCtrl ctrlCommit 0; + + { + _x ctrlSetFade 1; + _x ctrlCommit 0; + } forEach [ + _statsPreviousPageCtrl, + _statsNextPageCtrl, + _statsCurrentPageCtrl + ]; +}; diff --git a/addons/arsenal/functions/fnc_itemInfo.sqf b/addons/arsenal/functions/fnc_itemInfo.sqf index 9dcfe2ea86..45d5d03164 100644 --- a/addons/arsenal/functions/fnc_itemInfo.sqf +++ b/addons/arsenal/functions/fnc_itemInfo.sqf @@ -16,6 +16,10 @@ #include "script_component.hpp" #include "..\defines.hpp" +#ifdef ENABLE_PERF_PROFILING + private _scopeItemInfo = createProfileScope QFUNC(itemInfo); +#endif + params ["_display", "_control", "_curSel" ,"_itemCfg"]; private _ctrlInfo = _display displayCtrl IDC_infoBox; @@ -25,6 +29,8 @@ if (isClass _itemCfg) then { _ctrlInfo ctrlSetFade 0; _ctrlInfo ctrlCommit FADE_DELAY; + [QGVAR(displayStats), [_display, _control, _curSel, _itemCfg]] call CBA_fnc_localEvent; + // Name + author private _ctrlInfoName = _display displayCtrl IDC_infoName; _ctrlInfoName ctrlSetText ([_control lbText _curSel, _control lnbText [_curSel, 1]] select (ctrlType _control == 102)); @@ -70,6 +76,8 @@ if (isClass _itemCfg) then { _ctrlDLCBackground ctrlcommit 0; } else { + [QGVAR(displayStats), [_display, _control, -1, nil]] call CBA_fnc_localEvent; + _ctrlInfo ctrlSetFade 1; _ctrlInfo ctrlCommit FADE_DELAY; }; diff --git a/addons/arsenal/functions/fnc_onArsenalClose.sqf b/addons/arsenal/functions/fnc_onArsenalClose.sqf index f5194825fd..a456c5e1a3 100644 --- a/addons/arsenal/functions/fnc_onArsenalClose.sqf +++ b/addons/arsenal/functions/fnc_onArsenalClose.sqf @@ -98,6 +98,11 @@ GVAR(currentVoice) = nil; GVAR(currentInsignia) = nil; GVAR(currentAction) = nil; +GVAR(showStats) = nil; +GVAR(statsPagesLeft) = nil; +GVAR(statsPagesRight) = nil; +GVAR(statsInfo) = nil; + GVAR(center) = nil; GVAR(centerNotPlayer) = nil; diff --git a/addons/arsenal/functions/fnc_onArsenalOpen.sqf b/addons/arsenal/functions/fnc_onArsenalOpen.sqf index 31777f5ed6..23e03561a8 100644 --- a/addons/arsenal/functions/fnc_onArsenalOpen.sqf +++ b/addons/arsenal/functions/fnc_onArsenalOpen.sqf @@ -15,6 +15,11 @@ #include "script_component.hpp" #include "..\defines.hpp" +#ifdef ENABLE_PERF_PROFILING + private _scopeArsenal = createProfileScope QFUNC(onArsenalOpen); + profilerTrigger; +#endif + params ["", "_args"]; _args params ["_display"]; @@ -55,6 +60,11 @@ GVAR(currentInsignia) = GVAR(center) param [0, objNull, [objNull]] getVariable [ GVAR(currentAction) = "Stand"; GVAR(shiftState) = false; +GVAR(showStats) = true; +GVAR(statsPagesLeft) = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]; +GVAR(statsPagesRight) = [0, 0, 0, 0, 0, 0, 0, 0]; +GVAR(statsInfo) = [true, 0, controlNull, nil, nil]; + // Add the items the player has to virtualItems for "_index" from 0 to 10 do { switch (_index) do { @@ -199,6 +209,20 @@ _mouseBlockCtrl ctrlEnable false; IDC_rightSearchbar ]; +// Handle stats +private _statsBoxCtrl = _display displayCtrl IDC_statsBox; +_statsBoxCtrl ctrlSetPosition [ + (0.5 - WIDTH_TOTAL / 2) + WIDTH_GAP, + safezoneY + 1.8 * GRID_H, + 47 * GRID_W, + 11 * GRID_H +]; +_statsBoxCtrl ctrlEnable false; +_statsBoxCtrl ctrlCommit 0; + +(_display displayCtrl IDC_statsButton) ctrlShow false; + +// Disable import in MP if (isMultiplayer) then { private _importButtonCtrl = _display displayCtrl IDC_buttonImport; _importButtonCtrl ctrlEnable false; diff --git a/addons/arsenal/functions/fnc_onSelChangedLeft.sqf b/addons/arsenal/functions/fnc_onSelChangedLeft.sqf index 5c4d49b5d1..b70f7b00e6 100644 --- a/addons/arsenal/functions/fnc_onSelChangedLeft.sqf +++ b/addons/arsenal/functions/fnc_onSelChangedLeft.sqf @@ -14,6 +14,10 @@ #include "script_component.hpp" #include "..\defines.hpp" +#ifdef ENABLE_PERF_PROFILING + private _scopeOnSelChangedLeft = createProfileScope QFUNC(onSelChangedLeft); +#endif + params ["_control", "_curSel"]; if (_curSel < 0) exitwith {}; diff --git a/addons/arsenal/functions/fnc_onSelChangedRight.sqf b/addons/arsenal/functions/fnc_onSelChangedRight.sqf index 7a565cd14d..ce40ef87f6 100644 --- a/addons/arsenal/functions/fnc_onSelChangedRight.sqf +++ b/addons/arsenal/functions/fnc_onSelChangedRight.sqf @@ -14,6 +14,10 @@ #include "script_component.hpp" #include "..\defines.hpp" +#ifdef ENABLE_PERF_PROFILING + private _scopeOnSelChangedRight = createProfileScope QFUNC(onSelChangedRight); +#endif + params ["_control", "_curSel"]; if (_curSel < 0) exitwith {}; diff --git a/addons/arsenal/functions/fnc_onSelChangedRightListnBox.sqf b/addons/arsenal/functions/fnc_onSelChangedRightListnBox.sqf index 29c66a79f9..531c0817c8 100644 --- a/addons/arsenal/functions/fnc_onSelChangedRightListnBox.sqf +++ b/addons/arsenal/functions/fnc_onSelChangedRightListnBox.sqf @@ -14,6 +14,10 @@ #include "script_component.hpp" #include "..\defines.hpp" +#ifdef ENABLE_PERF_PROFILING + private _scopeOnSelChangedRightLNB = createProfileScope QFUNC(onSelChangedRightListnBox); +#endif + params ["_control", "_curSel"]; if (_curSel < 0) exitwith {}; diff --git a/addons/arsenal/functions/fnc_removeStat.sqf b/addons/arsenal/functions/fnc_removeStat.sqf new file mode 100644 index 0000000000..654949753f --- /dev/null +++ b/addons/arsenal/functions/fnc_removeStat.sqf @@ -0,0 +1,66 @@ +/* + * Author: Alganthe + * Remove a stat from ACE Arsenal. + * + * Arguments: + * 0: Array of IDs (ARRAY) + * + * Return Value: + * None + * + * Example: + * [["scopeStatL00","scopeStatL01","scopeStatL02","scopeStatR07"]] call ace_arsenal_fnc_removeStat; + * + * Public: Yes +*/ +#include "script_component.hpp" + +params ["_IDList"]; + +private _statsListLeftPanel = uiNamespace getVariable QGVAR(statsListLeftPanel); +private _statsListRightPanel = uiNamespace getVariable QGVAR(statsListRightPanel); + +{ + private _currentID = _x; + private _stringCount = count _currentID; + private _side = _currentID select [_stringCount - 3, 1]; + private _tab = _currentID select [_stringCount - 2, 2]; + _tab = parseNumber _tab; + + private _tabToChange = if (_side == "R") then { + _statsListRightPanel select _tab + } else { + _statsListLeftPanel select _tab + }; + + { + private _currentPage = _x; + + { + if (_x select 0 == _currentID) then { + _currentPage deleteAt _forEachIndex; + }; + } foreach _currentPage; + } foreach _tabToChange; +} foreach _IDList; + +// Clear empty pages +private _fnc_deleteEmptyPage = { + { + private _evaluatedTab = _forEachIndex; + { + if (count _x == 0) then { + _markedForDeletion pushBack [_evaluatedTab, _forEachIndex]; + }; + } foreach _x; + + { + (_statsListLeftPanel select (_x select 0)) deleteAt (_x select 1); + } foreach _markedForDeletion; + } foreach (_this select 0); +}; + +private _markedForDeletion = []; + +[_statsListLeftPanel] call _fnc_deleteEmptyPage; +[_statsListRightPanel] call _fnc_deleteEmptyPage; diff --git a/addons/arsenal/functions/fnc_showItem.sqf b/addons/arsenal/functions/fnc_showItem.sqf index 478ae4218d..fddfbe1a3a 100644 --- a/addons/arsenal/functions/fnc_showItem.sqf +++ b/addons/arsenal/functions/fnc_showItem.sqf @@ -13,6 +13,10 @@ #include "script_component.hpp" #include "..\defines.hpp" +#ifdef ENABLE_PERF_PROFILING + private _scopeShowItem = createProfileScope QFUNC(showItem); +#endif + if (GVAR(centerNotPlayer)) exitWith {}; private _nextAction = switch (GVAR(currentLeftPanel)) do { diff --git a/addons/arsenal/functions/fnc_sortPanel.sqf b/addons/arsenal/functions/fnc_sortPanel.sqf index c8bf02777f..a81b31bd82 100644 --- a/addons/arsenal/functions/fnc_sortPanel.sqf +++ b/addons/arsenal/functions/fnc_sortPanel.sqf @@ -14,6 +14,10 @@ #include "script_component.hpp" #include "..\defines.hpp" +#ifdef ENABLE_PERF_PROFILING + private _scopeSortPanel = createProfileScope QFUNC(sortPanel); +#endif + params ["_control", "_mode"]; private _display = ctrlParent _control; diff --git a/addons/arsenal/functions/fnc_statBarStatement_default.sqf b/addons/arsenal/functions/fnc_statBarStatement_default.sqf new file mode 100644 index 0000000000..d31529b55b --- /dev/null +++ b/addons/arsenal/functions/fnc_statBarStatement_default.sqf @@ -0,0 +1,30 @@ +/* + * Author: Alganthe + * Generic bar statement for stats. + * + * Arguments: + * 0: stat (STRING) + * 1: item config path (CONFIG) + * 2: Args for configExtreme + * 2.1: Stat limits (ARRAY of BOOL) + * 2.2: Bar limits (ARRAY of SCALAR) + * 2.3: Evaluate as a logarithmic number (BOOL) + * + * Return Value: + * Number + * + * Public: Yes +*/ +#include "script_component.hpp" + +params ["_stat", "_config", "_args"]; +_args params ["_statMinMax", "_barLimits", "_configExtremeBool"]; + +private _statValues = [ + [_config], + [_stat], + [_configExtremeBool], + [_statMinMax select 0] +] call BIS_fnc_configExtremes; + +linearConversion [_statMinMax select 0, _statMinMax select 1, (_statValues select 1) select 0, _barLimits select 0, _barLimits select 1] diff --git a/addons/arsenal/functions/fnc_statBarStatement_impact.sqf b/addons/arsenal/functions/fnc_statBarStatement_impact.sqf new file mode 100644 index 0000000000..d979a178a0 --- /dev/null +++ b/addons/arsenal/functions/fnc_statBarStatement_impact.sqf @@ -0,0 +1,34 @@ +/* + * Author: Alganthe + * Impact bar statement. + * + * Arguments: + * 0: stats array (ARRAY) + * 1: item config path (CONFIG) + * 2: Args for configExtreme + * 2.1: Stat limits (ARRAY of BOOL) + * 2.2: Bar limits (ARRAY of SCALAR) + * 2.3: Evaluate as a logarithmic number (BOOL) + * + * Return Value: + * Number + * + * Public: No +*/ +#include "script_component.hpp" + +params ["_stats", "_config", "_args"]; +_args params ["_hitMinMax", "_initSpeedMinMax", "_launcherTabIDC"]; + +private _statValues = [ + [_config], + _stats, + [true, false], + [_hitMinMax select 0, _initSpeedMinMax select 0] +] call BIS_fnc_configExtremes; +(_statValues select 1) params ["_hit", "_initSpeed"]; + +_hit = linearConversion [_hitMinMax select 0, _hitMinMax select 1, _hit, 0.01, 1]; +_initSpeed = linearConversion [_initSpeedMinMax select 0, _initSpeedMinMax select 1, _initSpeed, 0.01, 1]; + +[sqrt(_hit^2 * _initSpeed), _hit] select (GVAR(currentLeftPanel) == _launcherTabIDC) diff --git a/addons/arsenal/functions/fnc_statTextStatement_accuracy.sqf b/addons/arsenal/functions/fnc_statTextStatement_accuracy.sqf new file mode 100644 index 0000000000..0f69236bb3 --- /dev/null +++ b/addons/arsenal/functions/fnc_statTextStatement_accuracy.sqf @@ -0,0 +1,31 @@ +/* + * Author: Alganthe + * Accuracy text statement. + * + * Arguments: + * 0: stat (STRING) + * 1: item config path (CONFIG) + * 2: Args for configExtreme + * 2.1: Stat limits (ARRAY of BOOL) + * 2.2: Evaluate as a logarithmic number (BOOL) + * + * Return Value: + * Number + * + * Public: No +*/ +#include "script_component.hpp" + +params ["_stat", "_config", "_args"]; +_args params ["_statMinMax", "_configExtremeBool"]; + +private _statValues = [ + [_config], + [_stat], + [_configExtremeBool], + [_statMinMax select 0] +] call BIS_fnc_configExtremes; + +private _dispersion = (_statValues select 1) select 0; + +format ["%1 MIL (%2 MOA)", (_dispersion * 1000) toFixed 2, (_dispersion / pi * 10800) ToFixed 1]; diff --git a/addons/arsenal/functions/fnc_statTextStatement_mass.sqf b/addons/arsenal/functions/fnc_statTextStatement_mass.sqf new file mode 100644 index 0000000000..9be8c1c7d1 --- /dev/null +++ b/addons/arsenal/functions/fnc_statTextStatement_mass.sqf @@ -0,0 +1,28 @@ +/* + * Author: Alganthe + * Text statement for the mass stat. + * + * Arguments: + * 0: not used + * 1: item config path (CONFIG) + * + * Return Value: + * String to display + * + * Public: No +*/ +#include "script_component.hpp" + +params ["", "_config"]; + +private _mass = getNumber (_config >> "mass"); + +if (_mass == 0 && {isClass (_config >> "WeaponSlotsInfo")}) then { + _mass = getNumber (_config >> "WeaponSlotsInfo" >> "mass"); +}; + +if (_mass == 0 && {isClass (_config >> "itemInfo")}) then { + _mass = getNumber (_config >> "itemInfo" >> "mass"); +}; + +format ["%1kg (%2lb)",((_mass * 0.1 * (1/2.2046) * 100) / 100) ToFixed 2, ((_mass * 0.1 * 100) / 100) ToFixed 2] diff --git a/addons/arsenal/functions/fnc_statTextStatement_rateOfFire.sqf b/addons/arsenal/functions/fnc_statTextStatement_rateOfFire.sqf new file mode 100644 index 0000000000..a34a2f7d7b --- /dev/null +++ b/addons/arsenal/functions/fnc_statTextStatement_rateOfFire.sqf @@ -0,0 +1,29 @@ +/* + * Author: Alganthe + * ROF text statement. + * + * Arguments: + * 0: stat (STRING) + * 1: item config path (CONFIG) + * 2: Args for configExtreme + * 2.1: Stat limits (ARRAY of BOOL) + * 2.2: Evaluate as a logarithmic number (BOOL) + * + * Return Value: + * Number + * + * Public: No +*/ +#include "script_component.hpp" + +params ["_stat", "_config", "_args"]; +_args params ["_statMinMax", "_configExtremeBool"]; + +private _statValues = [ + [_config], + [_stat], + [_configExtremeBool], + [_statMinMax select 0] +] call BIS_fnc_configExtremes; + +format ["%1 rpm", round (60 / ((_statValues select 1) select 0))] diff --git a/addons/arsenal/functions/fnc_updateRightPanel.sqf b/addons/arsenal/functions/fnc_updateRightPanel.sqf index 41c7c68483..42a0275fbb 100644 --- a/addons/arsenal/functions/fnc_updateRightPanel.sqf +++ b/addons/arsenal/functions/fnc_updateRightPanel.sqf @@ -14,6 +14,10 @@ #include "script_component.hpp" #include "..\defines.hpp" +#ifdef ENABLE_PERF_PROFILING + private _scopeUpdateRightPanel = createProfileScope QFUNC(updateRightPanel); +#endif + params ["_control", "_maxLoad"]; private _loadIndicatorBarCtrl = _display displayCtrl IDC_loadIndicatorBar; diff --git a/addons/arsenal/functions/fnc_verifyLoadout.sqf b/addons/arsenal/functions/fnc_verifyLoadout.sqf index e7946b8b10..d5d0923511 100644 --- a/addons/arsenal/functions/fnc_verifyLoadout.sqf +++ b/addons/arsenal/functions/fnc_verifyLoadout.sqf @@ -60,13 +60,13 @@ private _fnc_weaponCheck = { if (isClass (_magCfg >> _mag)) then { if !(_mag in (GVAR(virtualItems) select 2)) then { - _unavailableItemsList pushBackUnique _item; + _unavailableItemsList pushBackUnique _mag; _dataPath set [_forEachIndex, []]; _unavailableItemsAmount = _unavailableItemsAmount + 1; }; } else { - _nullItemsList pushBackUnique _item; + _nullItemsList pushBackUnique _mag; _dataPath set [_forEachIndex, []]; _nullItemsAmount = _nullItemsAmount + 1; }; diff --git a/addons/arsenal/script_component.hpp b/addons/arsenal/script_component.hpp index 2eb9c3f170..791b9663dc 100644 --- a/addons/arsenal/script_component.hpp +++ b/addons/arsenal/script_component.hpp @@ -5,6 +5,7 @@ // #define DEBUG_MODE_FULL // #define DISABLE_COMPILE_CACHE // #define ENABLE_PERFORMANCE_COUNTERS +// #define ENABLE_PERF_PROFILING // This requires https://forums.bohemia.net/forums/topic/211626-arma-script-profiler/ do not uncomment otherwise. #ifdef DEBUG_ENABLED_ARSENAL #define DEBUG_MODE_FULL diff --git a/addons/arsenal/stringtable.xml b/addons/arsenal/stringtable.xml index f22d38a8c4..518d2bf9d8 100644 --- a/addons/arsenal/stringtable.xml +++ b/addons/arsenal/stringtable.xml @@ -682,6 +682,14 @@ 匯入當前/預設的裝備 汇入当前/预设的装备 + + Potassium levels + Taux de potassium + + + Page + Page + Enable the faces / voices / insignias tabs Activer les onglets faces / voix / insignes diff --git a/addons/arsenal/ui/RscAttributes.hpp b/addons/arsenal/ui/RscAttributes.hpp index e52929a58a..793c5fede2 100644 --- a/addons/arsenal/ui/RscAttributes.hpp +++ b/addons/arsenal/ui/RscAttributes.hpp @@ -42,7 +42,7 @@ class GVAR(display) { idc = IDC_arrowMinus; text = "-"; colorBackground[]={0,0,0,0.8}; - onButtonClick = QUOTE([ARR_2(ctrlparent (_this select 0), -1)] call FUNC(buttonCargo)); + onButtonClick = QUOTE([ARR_2(ctrlParent (_this select 0), -1)] call FUNC(buttonCargo)); fade = 1; enable = 0; x = 0.5; @@ -53,7 +53,7 @@ class GVAR(display) { }; class ArrowRight: ArrowLeft { idc = IDC_arrowPlus; - onButtonClick = QUOTE([ARR_2(ctrlparent (_this select 0), 1)] call FUNC(buttonCargo)); + onButtonClick = QUOTE([ARR_2(ctrlParent (_this select 0), 1)] call FUNC(buttonCargo)); text="+"; }; class blockLeftFrame: RscFrame { @@ -177,7 +177,7 @@ class GVAR(display) { sizeEx = QUOTE(5 * GRID_H); shortcuts[] = {"0x0E"}; tooltip = CSTRING(buttonHideTooltip); - onButtonClick = QUOTE([ctrlparent (_this select 0)] call FUNC(buttonHide)); + onButtonClick = QUOTE([ctrlParent (_this select 0)] call FUNC(buttonHide)); }; class buttonLoadouts: buttonHide { idc = IDC_buttonLoadouts; @@ -191,14 +191,14 @@ class GVAR(display) { x = QUOTE(3 * WIDTH_GAP + 2 * WIDTH_SINGLE); text = CSTRING(buttonExportText); tooltip = CSTRING(buttonExportTooltip); - onButtonClick = QUOTE([ctrlparent (_this select 0)] call FUNC(buttonExport)); + onButtonClick = QUOTE([ctrlParent (_this select 0)] call FUNC(buttonExport)); }; class buttonImport: buttonHide { idc = IDC_buttonImport; x = QUOTE(4 * WIDTH_GAP + 3 * WIDTH_SINGLE); text = CSTRING(buttonImportText); tooltip = CSTRING(buttonImportTooltip); - onButtonClick = QUOTE([ctrlparent (_this select 0)] call FUNC(buttonImport)); + onButtonClick = QUOTE([ctrlParent (_this select 0)] call FUNC(buttonImport)); }; class buttonClose: ctrlButtonOK { idc = IDC_menuBarClose; @@ -209,7 +209,7 @@ class GVAR(display) { h = QUOTE(7 * GRID_H); text = CSTRING(buttonCloseText); sizeEx = QUOTE(5 * GRID_H); - onButtonClick = QUOTE(ctrlparent (_this select 0) closeDisplay 1); + onButtonClick = QUOTE(ctrlParent (_this select 0) closeDisplay 1); }; }; }; @@ -268,6 +268,194 @@ class GVAR(display) { }; }; }; + class statsBox: RscControlsGroupNoScrollbars { + idc = IDC_statsBox; + x = QUOTE((0.5 - WIDTH_TOTAL / 2) + WIDTH_GAP); + y = QUOTE(safezoneY + 1.8 * GRID_H); + w = QUOTE(47 * GRID_W); + h = QUOTE(55 * GRID_H); + class controls { + class statsStaticBackground1: ctrlStaticBackground { + idc = -1; + x = QUOTE(0); + y = QUOTE(0); + w = QUOTE(47 * GRID_W); + h = QUOTE(55 * GRID_H); + colorBackground[]={0.1,0.1,0.1,0.5}; + }; + class statsStaticBackground2: ctrlStaticBackground { + idc = -1; + x = QUOTE(0); + y = QUOTE(0); + w = QUOTE(47 * GRID_W); + h = QUOTE(5 * GRID_H); + colorBackground[]={0.1,0.1,0.1,0.8}; + }; + class statsTitle1: RscText { + idc = IDC_statsTitle1; + fade = 1; + x = QUOTE(0 * GRID_W); + y = QUOTE(5 * GRID_H); + w = QUOTE(45 * GRID_W); + h = QUOTE(5 * GRID_H); + colorBackground[]={0,0,0,0}; + colorText[]={0.7,0.7,0.7,1}; + sizeEx = QUOTE(5 * GRID_H); + text = ""; + }; + class statsBackground1: ctrlStaticBackground { + idc = IDC_statsBackground1; + fade = 1; + x = QUOTE(1 * GRID_W); + y = QUOTE(10 * GRID_H); + w = QUOTE(45 * GRID_W); + h = QUOTE(4 * GRID_H); + colorBackground[]={1,1,1,0.15}; + }; + class statsBar1: ctrlProgress { + idc = IDC_statsBar1; + fade = 1; + style = 0; + texture = "#(argb,8,8,3)color(1,1,1,1)"; + colorBar[] = {1,1,1,1}; + colorFrame[] = {0,0,0,0}; + x = QUOTE(1 * GRID_W); + y = QUOTE(10 * GRID_H); + w = QUOTE(45 * GRID_W); + h = QUOTE(4 * GRID_H); + }; + class statsText1: RscText { + idc = IDC_statsText1; + shadow=0; + fade = 1; + colorShadow[]={1,1,1,1}; + colorText[]={0,0,0,1}; + x = QUOTE(0 * GRID_W); + y = QUOTE(10 * GRID_H); + w = QUOTE(45 * GRID_W); + h = QUOTE(4 * GRID_H); + sizeEx = QUOTE(5 * GRID_H); + text = ""; + }; + class statsTitle2: statsTitle1 { + idc = IDC_statsTitle2; + y = QUOTE(15 * GRID_H); + }; + class statsBackground2: statsBackground1 { + idc = IDC_statsBackground2; + y = QUOTE(20 * GRID_H); + }; + class statsBar2: statsBar1 { + idc = IDC_statsBar2; + y = QUOTE(20 * GRID_H); + }; + class statsText2: statsText1 { + idc = IDC_statsText2; + y = QUOTE(20 * GRID_H); + }; + class statsTitle3: statsTitle1 { + idc = IDC_statsTitle3; + y = QUOTE(25 * GRID_H); + }; + class statsBackground3: statsBackground1 { + idc = IDC_statsBackground3; + y = QUOTE(30 * GRID_H); + }; + class statsBar3: statsBar1 { + idc = IDC_statsBar3; + y = QUOTE(30 * GRID_H); + }; + class statsText3: statsText1 { + idc = IDC_statsText3; + y = QUOTE(30 * GRID_H); + }; + class statsTitle4: statsTitle1 { + idc = IDC_statsTitle4; + y = QUOTE(35 * GRID_H); + }; + class statsBackground4: statsBackground1 { + idc = IDC_statsBackground4; + y = QUOTE(40 * GRID_H); + }; + class statsBar4: statsBar1 { + idc = IDC_statsBar4; + y = QUOTE(40 * GRID_H); + }; + class statsText4: statsText1 { + idc = IDC_statsText4; + y = QUOTE(40 * GRID_H); + }; + class statsTitle5: statsTitle1 { + idc = IDC_statsTitle5; + y = QUOTE(45 * GRID_H); + }; + class statsBackground5: statsBackground1 { + idc = IDC_statsBackground5; + y = QUOTE(50 * GRID_H); + }; + class statsBar5: statsBar1 { + idc = IDC_statsBar5; + y = QUOTE(50 * GRID_H); + colorBackground[]={1,1,1,0.15}; + }; + class statsText5: statsText1 { + idc = IDC_statsText5; + y = QUOTE(50 * GRID_H); + }; + }; + }; + class statsButton: ctrlButton { + idc = IDC_statsButton; + style= 2; + text=">"; + onButtonClick = QUOTE(ARR_2([QQGVAR(statsButton), [ctrlParent (_this select 0)]]) call CBA_fnc_localEvent); + x = QUOTE((0.5 - WIDTH_TOTAL / 2) + WIDTH_GAP); + y = QUOTE(safezoneY + 1.8 * GRID_H); + w = QUOTE(6 * GRID_W); + h = QUOTE(6 * GRID_H); + sizeEx = QUOTE(5 * GRID_H) + }; + class statsPreviousPage: ctrlButton { + idc = IDC_statsPreviousPage; + style= 2; + text="<"; + colorBackground[]={0,0,0,0}; + colorBackgroundDisabled[]= {0,0,0,0}; + onButtonClick = QUOTE(ARR_2([QQGVAR(statsChangePage),[ARR_3(ctrlParent (_this select 0), _this select 0, false)]]) call CBA_fnc_localEvent); + x = QUOTE((0.5 - WIDTH_TOTAL / 2) + WIDTH_GAP); + y = QUOTE(safezoneY + 1.8 * GRID_H); + w = QUOTE(5 * GRID_W); + h = QUOTE(5 * GRID_H); + sizeEx = QUOTE(5.5 * GRID_H) + }; + class statsNextPage: statsPreviousPage { + idc = IDC_statsNextPage; + text = ">" + onButtonClick = QUOTE(ARR_2([QQGVAR(statsChangePage),[ARR_3(ctrlParent (_this select 0), _this select 0, true)]]) call CBA_fnc_localEvent); + x = QUOTE((0.5 - WIDTH_TOTAL / 2) + WIDTH_GAP + 30 * GRID_W); + }; + class statsCurrentPage: RscText { + idc = IDC_statsCurrentPage; + style = ST_CENTER; + x = QUOTE((0.5 - WIDTH_TOTAL / 2) + WIDTH_GAP + 5 * GRID_W); + y = QUOTE(safezoneY + 1.8 * GRID_H); + w = QUOTE(25 * GRID_W); + h = QUOTE(5 * GRID_H); + colorBackground[]={0,0,0,0}; + shadow=2; + sizeEx = QUOTE(5 * GRID_H); + text = ""; + }; + class statsButtonClose: ctrlButtonPicture { + idc = IDC_statsButtonClose; + colorBackground[]={0,0,0,0}; + text="\a3\3DEN\Data\Displays\Display3DEN\search_end_ca.paa"; + onButtonClick = QUOTE(ARR_2([QQGVAR(statsButton), [ctrlParent (_this select 0)]]) call CBA_fnc_localEvent); + x = QUOTE((0.5 - WIDTH_TOTAL / 2) + WIDTH_GAP + 42 * GRID_W); + y = QUOTE(safezoneY + 1.8 * GRID_H); + w = QUOTE(5 * GRID_W); + h = QUOTE(5 * GRID_H); + }; class mouseBlock: RscText { idc = IDC_mouseBlock; style = 16; @@ -376,7 +564,7 @@ class GVAR(display) { idc = IDC_leftSearchbarButton; text = "\a3\Ui_f\data\GUI\RscCommon\RscButtonSearch\search_start_ca.paa"; colorBackground[]={0,0,0,0.5}; - onButtonClick = QUOTE([ARR_2(ctrlparent (_this select 0), ctrlparent (_this select 0) displayCtrl IDC_leftSearchbar)] call FUNC(handleSearchbar)); + onButtonClick = QUOTE([ARR_2(ctrlParent (_this select 0), ctrlParent (_this select 0) displayCtrl IDC_leftSearchbar)] call FUNC(handleSearchbar)); x = QUOTE(safezoneX + 87 * GRID_W); y = QUOTE(safezoneY + 1.8 * GRID_H); w = QUOTE(6 * GRID_W); @@ -390,7 +578,7 @@ class GVAR(display) { }; class rightSearchbarButton: leftSearchbarButton { idc = IDC_rightSearchbarButton; - onButtonClick = QUOTE([ARR_2(ctrlparent (_this select 0), ctrlparent (_this select 0) displayCtrl IDC_rightSearchbar)] call FUNC(handleSearchbar)); + onButtonClick = QUOTE([ARR_2(ctrlParent (_this select 0), ctrlParent (_this select 0) displayCtrl IDC_rightSearchbar)] call FUNC(handleSearchbar)); x = QUOTE(safezoneX + safezoneW - 93 * GRID_W); }; class tabLeft: RscControlsGroupNoScrollbars { @@ -414,7 +602,7 @@ class GVAR(display) { idc = IDC_buttonPrimaryWeapon; text="\A3\Ui_f\data\GUI\Rsc\RscDisplayArsenal\PrimaryWeapon_ca.paa"; tooltip="$STR_A3_RscDisplayArsenal_tab_PrimaryWeapon"; - onButtonClick = QUOTE([ARR_2(ctrlparent (_this select 0), _this select 0)] call FUNC(fillLeftPanel)); + onButtonClick = QUOTE([ARR_2(ctrlParent (_this select 0), _this select 0)] call FUNC(fillLeftPanel)); colorBackground[]={0,0,0,0.5}; x = QUOTE(0 * GRID_W); y = QUOTE(0 * GRID_H); @@ -607,7 +795,7 @@ class GVAR(display) { idc = IDC_buttonOptic; tooltip="$STR_A3_RscDisplayArsenal_tab_ItemOptic"; text="\A3\Ui_f\data\GUI\Rsc\RscDisplayArsenal\ItemOptic_ca.paa"; - onButtonClick = QUOTE([ARR_2(ctrlparent (_this select 0), _this select 0)] call FUNC(fillRightPanel)); + onButtonClick = QUOTE([ARR_2(ctrlParent (_this select 0), _this select 0)] call FUNC(fillRightPanel)); colorBackground[]={0,0,0,0.5}; x = QUOTE(safezoneW + safezoneX - 10 * GRID_W); y = QUOTE(safezoneY + 8 * GRID_H); @@ -776,7 +964,7 @@ class GVAR(loadoutsDisplay) { onSetFocus = QUOTE(GVAR(loadoutsPanelFocus) = true); onKillFocus = QUOTE(GVAR(loadoutsPanelFocus) = false); onLBSelChanged = QUOTE([ARR_3(ctrlParent (_this select 0), _this select 0, _this select 1)] call FUNC(onSelChangedLoadouts)); - onLBDblClick = QUOTE([ARR_2(ctrlparent (_this select 0), (ctrlParent (_this select 0)) displayCtrl IDC_buttonLoad)] call FUNC(buttonLoadoutsLoad)); + onLBDblClick = QUOTE([ARR_2(ctrlParent (_this select 0), (ctrlParent (_this select 0)) displayCtrl IDC_buttonLoad)] call FUNC(buttonLoadoutsLoad)); x = QUOTE(0); y = QUOTE(5 * GRID_H); w = QUOTE(160 * GRID_W); @@ -814,7 +1002,7 @@ class GVAR(loadoutsDisplay) { idc = -1; text = "\a3\Ui_f\data\GUI\RscCommon\RscButtonSearch\search_start_ca.paa"; colorBackground[]={0,0,0,0.5}; - onButtonClick = QUOTE([ARR_2(ctrlparent (_this select 0), ctrlparent (_this select 0) displayCtrl IDC_loadoutsSearchbar)] call FUNC(handleLoadoutsSearchbar)); + onButtonClick = QUOTE([ARR_2(ctrlParent (_this select 0), ctrlParent (_this select 0) displayCtrl IDC_loadoutsSearchbar)] call FUNC(handleLoadoutsSearchbar)); x = QUOTE(155 * GRID_W); y = QUOTE(safezoneH - (51 * GRID_H)); w = QUOTE(5 * GRID_W); @@ -829,7 +1017,7 @@ class GVAR(loadoutsDisplay) { text= CSTRING(buttonSaveText); tooltip= CSTRING(buttonSaveTooltip); sizeEx = QUOTE(5 * GRID_H); - onButtonClick = QUOTE([ARR_2(ctrlparent (_this select 0), _this select 0)] call FUNC(buttonLoadoutsSave)); + onButtonClick = QUOTE([ARR_2(ctrlParent (_this select 0), _this select 0)] call FUNC(buttonLoadoutsSave)); colorBackground[] = {0,0,0,0.8}; }; class buttonRename: buttonSave { @@ -837,21 +1025,21 @@ class GVAR(loadoutsDisplay) { x = QUOTE(32.5 * GRID_W); text= CSTRING(buttonRenameText); tooltip= CSTRING(buttonRenameTooltip); - onButtonClick = QUOTE([ARR_2(ctrlparent (_this select 0), _this select 0)] call FUNC(buttonLoadoutsRename)); + onButtonClick = QUOTE([ARR_2(ctrlParent (_this select 0), _this select 0)] call FUNC(buttonLoadoutsRename)); }; class buttonLoad: buttonSave { idc = IDC_buttonLoad; x = QUOTE(65 * GRID_W); text= CSTRING(buttonLoadText); tooltip= CSTRING(buttonLoadTooltip); - onButtonClick = QUOTE([ARR_2(ctrlparent (_this select 0), _this select 0)] call FUNC(buttonLoadoutsLoad)); + onButtonClick = QUOTE([ARR_2(ctrlParent (_this select 0), _this select 0)] call FUNC(buttonLoadoutsLoad)); }; class buttonShare: buttonSave { idc = IDC_buttonShare; x = QUOTE(97.5 * GRID_W); text= CSTRING(buttonSharePrivateText); tooltip= CSTRING(buttonShareTooltip); - onButtonClick = QUOTE([ARR_2(ctrlparent (_this select 0), _this select 0)] call FUNC(buttonLoadoutsShare)); + onButtonClick = QUOTE([ARR_2(ctrlParent (_this select 0), _this select 0)] call FUNC(buttonLoadoutsShare)); }; class buttonDelete: buttonSave { idc = IDC_buttonDelete; @@ -859,11 +1047,10 @@ class GVAR(loadoutsDisplay) { text= CSTRING(buttonDeleteText); tooltip= CSTRING(buttonDeleteTooltip); colorBackgroundActive[] = {0.5,0,0,1}; - onButtonClick = QUOTE([ARR_2(ctrlparent (_this select 0), _this select 0)] call FUNC(buttonLoadoutsDelete)); + onButtonClick = QUOTE([ARR_2(ctrlParent (_this select 0), _this select 0)] call FUNC(buttonLoadoutsDelete)); }; }; }; - class buttonClose: ctrlButton { idc = -1; x = QUOTE(safezoneW + safezoneX - 32 * GRID_W); @@ -874,7 +1061,7 @@ class GVAR(loadoutsDisplay) { text= CSTRING(buttonCloseText); shortcuts[]= {"0x01"}; tooltip= ""; - onButtonClick = QUOTE(ctrlparent (_this select 0) closeDisplay 2); + onButtonClick = QUOTE(ctrlParent (_this select 0) closeDisplay 2); }; class buttonBar: ctrlControlsGroupNoScrollbars { idc = -1; @@ -901,7 +1088,7 @@ class GVAR(loadoutsDisplay) { sizeEx = QUOTE(5 * GRID_H); text= CSTRING(tabMyLoadoutsText); tooltip= CSTRING(tabMyLoadoutsTooltip); - onButtonClick = QUOTE([ARR_2(ctrlparent (_this select 0), _this select 0)] call FUNC(loadoutsChangeTab)); + onButtonClick = QUOTE([ARR_2(ctrlParent (_this select 0), _this select 0)] call FUNC(loadoutsChangeTab)); }; class buttonDefaultLoadoutsBackground: buttonMyLoadoutsBackground { idc = IDC_buttonDefaultLoadoutsBackground; diff --git a/addons/ballistics/ACE_Arsenal_Stats.hpp b/addons/ballistics/ACE_Arsenal_Stats.hpp new file mode 100644 index 0000000000..4cf9872b7a --- /dev/null +++ b/addons/ballistics/ACE_Arsenal_Stats.hpp @@ -0,0 +1,66 @@ +class EGVAR(arsenal,stats) { + class statBase; + class ACE_barrelTwist: statBase { + scope = 2; + priority = 1; + stats[] = {"ACE_barrelTwist"}; + displayName= CSTRING(statBarrelTwist); + showText = 1; + textStatement = QUOTE(params [ARR_2('_stat', '_config')]; private _barrelTwist = getNumber (_config >> _stat select 0); format [ARR_3('%1mm (%2in)',_barrelTwist toFixed 0, (_barrelTwist / 25.4) toFixed 1)]); + tabs[] = {{0,1}, {}}; + }; + class ACE_barrelLength: statBase { + scope = 2; + priority = 0; + stats[] = {"ACE_barrelLength"}; + displayName = CSTRING(statBarrelLength); + showText = 1; + textStatement = QUOTE(params [ARR_2('_stat', '_config')]; private _barrelLength = getNumber (_config >> _stat select 0); format [ARR_3('%1mm (%2in)',_barrelLength toFixed 0, (_barrelLength / 25.4) toFixed 1)]); + tabs[] = {{0,1}, {}}; + }; + class ACE_ammo: statBase { + scope = 2; + priority = 5; + stats[] = {"ammo", "displayName"}; + displayName = "$STR_dn_ammo"; + showText = 1; + textStatement = QUOTE(params [ARR_2('_stat', '_config')]; private _ammoDisplayName = getText (configFile >> 'CfgAmmo' >> (getText (_config >> 'ammo')) >> _stat select 1); [ARR_2(_ammoDisplayName, getText (_config >> _stat select 0))] select (_ammoDisplayName == '')); + tabs[] = {{}, {4}}; + }; + class ACE_ballisticCoef: statBase { + scope = 2; + priority = 4; + stats[] = {"ACE_dragModel","ACE_ballisticCoefficients", "ACE_standardAtmosphere"}; + displayName= CSTRING(statBallisticCoef); + showText= 1; + textStatement = QUOTE(params[ARR_2('_stat', '_config')]; private _ammoCfg = (configFile >> 'CfgAmmo' >> (getText (_config >> 'ammo'))); private _ballisticCoef = getArray (_ammoCfg >> _stat select 1); _ballisticCoef sort false; format [ARR_4('%1 G%2 (%3)', _ballisticCoef select 0 ,getNumber (_ammoCfg >> _stat select 0), getText (_ammoCfg >> _stat select 2))]); + tabs[] ={{}, {4}}; + }; + class ACE_bulletMass: statBase { + scope = 2; + priority = 3; + stats[] = {"ACE_bulletMass"}; + displayName = CSTRING(statBulletMass); + showText = 1; + textStatement = QUOTE(params[ARR_2('_stat', '_config')]; private _ammoWeight = getNumber (configFile >> 'CfgAmmo' >> (getText (_config >> 'ammo')) >> _stat select 0); format [ARR_3('%1g (%2gr)', _ammoWeight toFixed 1, (_ammoWeight * 15.43) toFixed 1)]); + tabs[] = {{}, {4}}; + }; + class ACE_magMuzzleVelocity: statBase { + scope = 2; + priority = 3; + stats[] = {"initSpeed"}; + displayName= CSTRING(statMuzzleVelocity); + showText= 1; + textStatement = QUOTE(params[ARR_2('_stat', '_config')]; private _initSpeed = getNumber (_config >> _stat select 0); format [ARR_3('%1 m/s (%2 ft/s)', _initSpeed, (_initSpeed * 3.28084) toFixed 0)]); + tabs[] = {{}, {4}}; + }; + class ACE_weaponMuzzleVelocity: statBase { + scope = 2; + priority = 3; + stats[] = {"initSpeed"}; + displayName= CSTRING(statMuzzleVelocity); + showText = 1; + textStatement = QUOTE([ARR_2(_this select 0, _this select 1)] call FUNC(statTextStatement_weaponMuzzleVelocity)); + tabs[] = {{0,1}, {}}; + }; +}; diff --git a/addons/ballistics/CfgEventHandlers.hpp b/addons/ballistics/CfgEventHandlers.hpp new file mode 100644 index 0000000000..93e3311cf2 --- /dev/null +++ b/addons/ballistics/CfgEventHandlers.hpp @@ -0,0 +1,11 @@ +class Extended_PreStart_EventHandlers { + class ADDON { + init = QUOTE(call COMPILE_FILE(XEH_preStart)); + }; +}; + +class Extended_PreInit_EventHandlers { + class ADDON { + init = QUOTE(call COMPILE_FILE(XEH_preInit)); + }; +}; diff --git a/addons/ballistics/XEH_PREP.hpp b/addons/ballistics/XEH_PREP.hpp new file mode 100644 index 0000000000..812a51e6f6 --- /dev/null +++ b/addons/ballistics/XEH_PREP.hpp @@ -0,0 +1 @@ +PREP(statTextStatement_weaponMuzzleVelocity); diff --git a/addons/ballistics/XEH_preInit.sqf b/addons/ballistics/XEH_preInit.sqf new file mode 100644 index 0000000000..63f3d7fe7e --- /dev/null +++ b/addons/ballistics/XEH_preInit.sqf @@ -0,0 +1,7 @@ +#include "script_component.hpp" + +ADDON = false; + +PREP_RECOMPILE_START; +#include "XEH_PREP.hpp" +PREP_RECOMPILE_END; diff --git a/addons/ballistics/XEH_preStart.sqf b/addons/ballistics/XEH_preStart.sqf new file mode 100644 index 0000000000..022888575e --- /dev/null +++ b/addons/ballistics/XEH_preStart.sqf @@ -0,0 +1,3 @@ +#include "script_component.hpp" + +#include "XEH_PREP.hpp" diff --git a/addons/ballistics/config.cpp b/addons/ballistics/config.cpp index 7f63a36dd2..0dc8289901 100644 --- a/addons/ballistics/config.cpp +++ b/addons/ballistics/config.cpp @@ -14,7 +14,9 @@ class CfgPatches { }; }; +#include "CfgEventHandlers.hpp" #include "CfgAmmo.hpp" #include "CfgMagazines.hpp" #include "CfgWeapons.hpp" #include "CfgVehicles.hpp" +#include "ACE_Arsenal_Stats.hpp" diff --git a/addons/ballistics/functions/fnc_statTextStatement_weaponMuzzleVelocity.sqf b/addons/ballistics/functions/fnc_statTextStatement_weaponMuzzleVelocity.sqf new file mode 100644 index 0000000000..1fcc75d405 --- /dev/null +++ b/addons/ballistics/functions/fnc_statTextStatement_weaponMuzzleVelocity.sqf @@ -0,0 +1,45 @@ +/* + * Author: Alganthe + * Text statement for the weapon muzzle velocity stat + * + * Arguments: + * 0: Not used + * 1: item config path (CONFIG) + * + * Return Value: + * String to display + * + * Public: No +*/ +#include "script_component.hpp" + +params ["", "_config"]; + +if (EGVAR(arsenal,currentLeftPanel) == 2002) then { + private _primaryMag = primaryWeaponMagazine EGVAR(arsenal,center); + + [primaryWeapon EGVAR(arsenal,center), _primaryMag param [0, ""]] +} else { + private _primaryMag = handgunMagazine EGVAR(arsenal,center); + + [handgunWeapon EGVAR(arsenal,center), _primaryMag param [0, ""]] +} params ["_weapon", "_magazine"]; + +private _initSpeed = getNumber (_config >> "initSpeed"); + +if (_magazine isEqualTo "") then { + _initSpeed +} else { + private _ammoCfg = (configFile >> "CfgAmmo" >> (getText (configFile >> "CfgMagazines" >> _magazine >> "ammo"))); + private _barrelLength = getNumber (_config >> "ACE_barrelLength"); + private _muzzleVelocityTable = getArray (_ammoCfg >> "ACE_muzzleVelocities"); + private _barrelLengthTable = getArray (_ammoCfg >> "ACE_barrelLengths"); + + if (_barrelLength != 0 && {count _muzzleVelocityTable > 0} && {count _barrelLengthTable > 0}) then { + private _muzzleVelocity = [_barrelLength, _muzzleVelocityTable, _barrelLengthTable, 0] call EFUNC(advanced_ballistics,calculateBarrelLengthVelocityShift); + + format ["%1 m/s (%2 ft/s)", _muzzleVelocity toFixed 0, (_muzzleVelocity * 3.28084) toFixed 0] + } else { + _initSpeed + }; +}; diff --git a/addons/ballistics/functions/script_component.hpp b/addons/ballistics/functions/script_component.hpp new file mode 100644 index 0000000000..a257e3d384 --- /dev/null +++ b/addons/ballistics/functions/script_component.hpp @@ -0,0 +1 @@ +#include "\z\ace\addons\ballistics\script_component.hpp" diff --git a/addons/ballistics/stringtable.xml b/addons/ballistics/stringtable.xml index d4ff60c811..b23273ac23 100644 --- a/addons/ballistics/stringtable.xml +++ b/addons/ballistics/stringtable.xml @@ -2281,5 +2281,24 @@ [ACE] 彈藥補給箱 [ACE] 弹药补给箱 + + Barrel twist + + + Barrel length + Longueur du canon + + + Ballistic coefficient + Coefficient ballistique + + + Bullet mass + Masse d'une balle + + + Muzzle velocity + Vitesse à la bouche + diff --git a/addons/explosives/ACE_Arsenal_Stats.hpp b/addons/explosives/ACE_Arsenal_Stats.hpp new file mode 100644 index 0000000000..61534b0f9d --- /dev/null +++ b/addons/explosives/ACE_Arsenal_Stats.hpp @@ -0,0 +1,13 @@ +class EGVAR(arsenal,stats) { + class statBase; + class ACE_explosiveRange: statBase { + scope = 2; + priority = 1; + stats[] = {QGVAR(Range)}; + displayName= CSTRING(statExploRange); + showText = 1; + textStatement = QUOTE(params [ARR_2('_stat', '_config')]; private _exploRangeStat = getNumber (_config >> _stat select 0); format [ARR_3('%1m (%2ft)', _exploRangeStat, (_exploRangeStat / 0.3048) toFixed 1)]); + condition = QUOTE(params [ARR_2('', '_config')]; (getNumber (_config >> QQGVAR(Detonator))) > 0); + tabs[] = {{}, {7}}; + }; +}; diff --git a/addons/explosives/config.cpp b/addons/explosives/config.cpp index 71952c2eec..57bcdfd204 100644 --- a/addons/explosives/config.cpp +++ b/addons/explosives/config.cpp @@ -27,6 +27,7 @@ class CfgPatches { #include "ACE_Triggers.hpp" #include "ExplosivesUI.hpp" #include "GUI_VirtualAmmo.hpp" +#include "ACE_Arsenal_Stats.hpp" class CfgActions { class None; diff --git a/addons/explosives/stringtable.xml b/addons/explosives/stringtable.xml index 2ca36bcdc1..3882733567 100644 --- a/addons/explosives/stringtable.xml +++ b/addons/explosives/stringtable.xml @@ -1019,5 +1019,9 @@ 类型: 绊线闪光地雷 - 触发后产生非致命性的强光.<br />发数: 1<br />使用于: 地面 類型: 絆線閃光地雷 - 觸發後產生非致命性的強光.<br />發數: 1<br />使用於: 地面 + + Explosive range + Portée du détonateur + diff --git a/addons/flashlights/ACE_Arsenal_Stats.hpp b/addons/flashlights/ACE_Arsenal_Stats.hpp new file mode 100644 index 0000000000..7a5e7ea39a --- /dev/null +++ b/addons/flashlights/ACE_Arsenal_Stats.hpp @@ -0,0 +1,13 @@ +class EGVAR(arsenal,stats) { + class statBase; + class ACE_flashlightColor: statBase { + scope = 2; + priority = 1; + stats[] = {"ACE_Flashlight_Colour"}; + displayName = CSTRING(statMapLightColor); + showText = 1; + textStatement = QUOTE(getText (_this select 1 >> 'itemInfo' >> 'FlashLight' >> (_this select 0) select 0)); + condition = QUOTE(getText (_this select 1 >> 'itemInfo' >> 'FlashLight' >> (_this select 0) select 0) != ''); + tabs[] = {{}, {1,7}}; + }; +}; diff --git a/addons/flashlights/config.cpp b/addons/flashlights/config.cpp index 734a47db86..eefeb782f1 100644 --- a/addons/flashlights/config.cpp +++ b/addons/flashlights/config.cpp @@ -17,3 +17,4 @@ class CfgPatches { #include "CfgEventHandlers.hpp" #include "CfgVehicles.hpp" #include "CfgWeapons.hpp" +#include "ACE_Arsenal_Stats.hpp" diff --git a/addons/flashlights/stringtable.xml b/addons/flashlights/stringtable.xml index 08e291a2b6..a4749ef27d 100644 --- a/addons/flashlights/stringtable.xml +++ b/addons/flashlights/stringtable.xml @@ -91,5 +91,9 @@ 拥有红色滤光片的手电筒。用来照亮地图。 擁有紅色濾光片的手電筒。用來照亮地圖。 + + Map light color + Couleur de la lampe sur carte + diff --git a/addons/gforces/ACE_Arsenal_Stats.hpp b/addons/gforces/ACE_Arsenal_Stats.hpp new file mode 100644 index 0000000000..4148ba5fe2 --- /dev/null +++ b/addons/gforces/ACE_Arsenal_Stats.hpp @@ -0,0 +1,13 @@ +class EGVAR(arsenal,stats) { + class statBase; + class ACE_gReduction: statBase { + scope = 2; + priority = 1; + stats[] = {"ACE_GForceCoef"}; + displayName = CSTRING(statGReduction); + showBar = 1; + barStatement = QUOTE([ARR_3((_this select 0) select 0, _this select 1, [ARR_3([ARR_2(1, 0)], [ARR_2(0.01, 1)], false)])] call EFUNC(arsenal,statBarStatement_default)); + condition = QUOTE(getNumber (_this select 1 >> (_this select 0) select 0) > 0); + tabs[] = {{3}, {}}; + }; +}; diff --git a/addons/gforces/config.cpp b/addons/gforces/config.cpp index e05f582d08..da9e6a2328 100644 --- a/addons/gforces/config.cpp +++ b/addons/gforces/config.cpp @@ -21,3 +21,4 @@ class CfgPatches { #include "CfgEventHandlers.hpp" #include "CfgWeapons.hpp" #include "CfgVehicles.hpp" +#include "ACE_Arsenal_Stats.hpp" diff --git a/addons/gforces/stringtable.xml b/addons/gforces/stringtable.xml index adf7fb114d..d0ae62de3d 100644 --- a/addons/gforces/stringtable.xml +++ b/addons/gforces/stringtable.xml @@ -31,5 +31,9 @@ 只有战斗机 只有戰鬥機 + + G-force reduction + Reduction des Gs + diff --git a/addons/hearing/ACE_Arsenal_Stats.hpp b/addons/hearing/ACE_Arsenal_Stats.hpp new file mode 100644 index 0000000000..481ab62327 --- /dev/null +++ b/addons/hearing/ACE_Arsenal_Stats.hpp @@ -0,0 +1,21 @@ +class EGVAR(arsenal,stats) { + class statBase; + class ACE_hearingProtection: statBase { + scope = 2; + priority = 2; + stats[] = {QGVAR(protection)}; + displayName= CSTRING(statHearingProtection); + showBar = 1; + barStatement = QUOTE([ARR_3((_this select 0) select 0, _this select 1, [ARR_3([ARR_2(0, 1)], [ARR_2(0.01, 1)], false)])] call EFUNC(arsenal,statBarStatement_default)); + tabs[] = {{6}, {}}; + }; + class ACE_volumeMuffling: statBase { + scope = 2; + priority = 1; + stats[] = {QGVAR(lowerVolume)}; + displayName= CSTRING(statHearingLowerVolume); + showBar = 1; + barStatement = QUOTE([ARR_3((_this select 0) select 0, _this select 1, [ARR_3([ARR_2(0, 1)], [ARR_2(0.01, 1)], false)])] call EFUNC(arsenal,statBarStatement_default)) + tabs[] = {{6}, {}}; + }; +}; diff --git a/addons/hearing/config.cpp b/addons/hearing/config.cpp index e562227047..a1cc956d89 100644 --- a/addons/hearing/config.cpp +++ b/addons/hearing/config.cpp @@ -20,3 +20,4 @@ class CfgPatches { #include "CfgWeapons.hpp" #include "CfgAmmo.hpp" #include "ACE_Settings.hpp" +#include "ACE_Arsenal_Stats.hpp" diff --git a/addons/hearing/stringtable.xml b/addons/hearing/stringtable.xml index 1d5a2830b0..ef074b12cc 100644 --- a/addons/hearing/stringtable.xml +++ b/addons/hearing/stringtable.xml @@ -282,6 +282,14 @@ 增加`ACE_EarPlugs`物品给拥有巨大噪音武器的单位。当你想自定装备时,此功能可被关闭。 增加`ACE_EarPlugs`物品給擁有巨大噪音武器的單位。當你想自定裝備時,此功能可被關閉。 + + Hearing protection + Protection auditive + + + Volume muffling + Étouffement des sons + Earplugs Volume diff --git a/addons/overpressure/ACE_Arsenal_Stats.hpp b/addons/overpressure/ACE_Arsenal_Stats.hpp new file mode 100644 index 0000000000..906c50e8fb --- /dev/null +++ b/addons/overpressure/ACE_Arsenal_Stats.hpp @@ -0,0 +1,21 @@ +class EGVAR(arsenal,stats) { + class statBase; + class ACE_backblastAngle: statBase { + scope = 2; + priority = 2; + stats[] = {QGVAR(angle)}; + displayName = CSTRING(statBackblastAngle); + showText = 1; + textStatement = QUOTE(params [ARR_2('_stat', '_config')]; format [ARR_2('%1°', getNumber (_config >> _stat select 0))]); + tabs[] = {{2}, {}}; + }; + class ACE_backblastRange: statBase { + scope = 2; + priority = 1; + stats[] = {QGVAR(range)}; + displayName = CSTRING(statBackblastRange); + showText = 1; + textStatement = QUOTE(params [ARR_2('_stat', '_config')]; private _blastRangeStat = getNumber (_config >> _stat select 0); format [ARR_3('%1m (%2ft)', _blastRangeStat, (_blastRangeStat / 0.3048) toFixed 1)]); + tabs[] = {{2}, {}}; + }; +}; diff --git a/addons/overpressure/config.cpp b/addons/overpressure/config.cpp index d99cbb1cc7..3815cc831f 100644 --- a/addons/overpressure/config.cpp +++ b/addons/overpressure/config.cpp @@ -17,3 +17,4 @@ class CfgPatches { #include "ACE_Settings.hpp" #include "CfgEventHandlers.hpp" #include "CfgWeapons.hpp" +#include "ACE_Arsenal_Stats.hpp" diff --git a/addons/overpressure/stringtable.xml b/addons/overpressure/stringtable.xml index 9d909f918e..e04d8d43bd 100644 --- a/addons/overpressure/stringtable.xml +++ b/addons/overpressure/stringtable.xml @@ -23,5 +23,11 @@ 高压影响的范围 [预设: 1] 高壓影響的範圍 [預設: 1] + + Backblast range + + + Backblast angle + From 4ec10394909d2e6a2d6ecf48eac18da741d0bebc Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Thu, 15 Feb 2018 10:31:14 -0600 Subject: [PATCH 043/235] Add missing semicolons (#6148) --- addons/arsenal/ui/RscAttributes.hpp | 6 +++--- addons/hearing/ACE_Arsenal_Stats.hpp | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/addons/arsenal/ui/RscAttributes.hpp b/addons/arsenal/ui/RscAttributes.hpp index 793c5fede2..7f485fb9e6 100644 --- a/addons/arsenal/ui/RscAttributes.hpp +++ b/addons/arsenal/ui/RscAttributes.hpp @@ -413,7 +413,7 @@ class GVAR(display) { y = QUOTE(safezoneY + 1.8 * GRID_H); w = QUOTE(6 * GRID_W); h = QUOTE(6 * GRID_H); - sizeEx = QUOTE(5 * GRID_H) + sizeEx = QUOTE(5 * GRID_H); }; class statsPreviousPage: ctrlButton { idc = IDC_statsPreviousPage; @@ -426,11 +426,11 @@ class GVAR(display) { y = QUOTE(safezoneY + 1.8 * GRID_H); w = QUOTE(5 * GRID_W); h = QUOTE(5 * GRID_H); - sizeEx = QUOTE(5.5 * GRID_H) + sizeEx = QUOTE(5.5 * GRID_H); }; class statsNextPage: statsPreviousPage { idc = IDC_statsNextPage; - text = ">" + text = ">"; onButtonClick = QUOTE(ARR_2([QQGVAR(statsChangePage),[ARR_3(ctrlParent (_this select 0), _this select 0, true)]]) call CBA_fnc_localEvent); x = QUOTE((0.5 - WIDTH_TOTAL / 2) + WIDTH_GAP + 30 * GRID_W); }; diff --git a/addons/hearing/ACE_Arsenal_Stats.hpp b/addons/hearing/ACE_Arsenal_Stats.hpp index 481ab62327..cc9e048823 100644 --- a/addons/hearing/ACE_Arsenal_Stats.hpp +++ b/addons/hearing/ACE_Arsenal_Stats.hpp @@ -15,7 +15,7 @@ class EGVAR(arsenal,stats) { stats[] = {QGVAR(lowerVolume)}; displayName= CSTRING(statHearingLowerVolume); showBar = 1; - barStatement = QUOTE([ARR_3((_this select 0) select 0, _this select 1, [ARR_3([ARR_2(0, 1)], [ARR_2(0.01, 1)], false)])] call EFUNC(arsenal,statBarStatement_default)) + barStatement = QUOTE([ARR_3((_this select 0) select 0, _this select 1, [ARR_3([ARR_2(0, 1)], [ARR_2(0.01, 1)], false)])] call EFUNC(arsenal,statBarStatement_default)); tabs[] = {{6}, {}}; }; }; From e95e83c01e17228aed717f66595f60e663804e8f Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Thu, 15 Feb 2018 18:56:06 -0600 Subject: [PATCH 044/235] Cleanup userconfig from optionals (#6149) --- optionals/userconfig/ace/serverconfig.hpp | 6 ------ 1 file changed, 6 deletions(-) delete mode 100644 optionals/userconfig/ace/serverconfig.hpp diff --git a/optionals/userconfig/ace/serverconfig.hpp b/optionals/userconfig/ace/serverconfig.hpp deleted file mode 100644 index ebabfe12bd..0000000000 --- a/optionals/userconfig/ace/serverconfig.hpp +++ /dev/null @@ -1,6 +0,0 @@ - -// Example: -class ACE_common_forceAllSettings { - value = 0; - typeName = "BOOL"; -}; From 5bb27a28a74ab82c702947f9f3bcbdfd61ebb804 Mon Sep 17 00:00:00 2001 From: Orbis2358 Date: Sun, 18 Feb 2018 10:31:34 +0900 Subject: [PATCH 045/235] Korean translations fix (#6151) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Korean translations fixed Avulsion: 적출상 Laceration: 열상 Crush: 압궤상 Puncture Wound: 자상 * Update AUTHORS.txt --- AUTHORS.txt | 1 + addons/medical/stringtable.xml | 32 ++++++++++++++++---------------- 2 files changed, 17 insertions(+), 16 deletions(-) diff --git a/AUTHORS.txt b/AUTHORS.txt index 378419fcdb..bb3cdf4f33 100644 --- a/AUTHORS.txt +++ b/AUTHORS.txt @@ -109,6 +109,7 @@ nic547 nikolauska nomisum OnkelDisMaster +Orbis2358 oscarmolinadev PaxJaromeMalues Phyma diff --git a/addons/medical/stringtable.xml b/addons/medical/stringtable.xml index 527bf7e31b..1fcb999998 100644 --- a/addons/medical/stringtable.xml +++ b/addons/medical/stringtable.xml @@ -3269,7 +3269,7 @@ Avulsão Avulze 剥離傷 - 열상 + 적출상 撕脱伤 撕脫傷 @@ -3285,7 +3285,7 @@ Avulsão leve Malá avulze 小さな剥離傷 - 소형 열상 + 소형 적출상 小撕脱伤 小撕脫傷 @@ -3301,7 +3301,7 @@ Avulsão média Střední avulze 中くらいの剥離傷 - 중형 열상 + 중형 적출상 中撕脱伤 中撕脫傷 @@ -3317,7 +3317,7 @@ Avulsão grave Velká avulze 大きな剥離傷 - 대형 열상 + 대형 적출상 大撕脱伤 大撕脫傷 @@ -3397,7 +3397,7 @@ Tecido esmagado Zhmoždění měkkých tkání 圧挫傷 - 좌상 + 압궤상 撞伤 撞傷 @@ -3413,7 +3413,7 @@ Tecido esmagado leve Malé zhmoždění měkkých tkání 小さな圧挫傷 - 소형 좌상 + 소형 압궤상 小撞伤 小撞傷 @@ -3429,7 +3429,7 @@ Tecido esmagado médio Střední zhmoždění měkkých tkání 中くらいの圧挫傷 - 중형 좌상 + 중형 압궤상 中撞伤 中撞傷 @@ -3445,7 +3445,7 @@ Tecido esmagado grave Velké zhmoždění měkkých tkání 大きな圧挫傷 - 대형 좌상 + 대형 압궤상 大撞伤 大撞傷 @@ -3525,7 +3525,7 @@ Ruptura Tržná rána 裂傷 - 창상 + 열상 撕裂伤 撕裂傷 @@ -3541,7 +3541,7 @@ Ruptura leve Malá tržná rána 小さな裂傷 - 소형 창상 + 소형 열상 小撕裂伤 小撕裂傷 @@ -3557,7 +3557,7 @@ Ruptura média Střední tržná rána 中くらいの裂傷 - 중형 창상 + 중형 열상 中撕裂伤 中撕裂傷 @@ -3573,7 +3573,7 @@ Ruptura grave Velká tržná rána 大きな裂傷 - 대형 창상 + 대형 열상 大撕裂伤 大撕裂傷 @@ -3653,7 +3653,7 @@ Ferimento por perfuração Bodná rána 刺し傷 - 관통상 + 자상 穿刺伤 穿刺傷 @@ -3669,7 +3669,7 @@ Ferimento leve por perfuração Malá bodná rána 小さな刺し傷 - 소형 관통상 + 소형 자상 小穿刺伤 小穿刺傷 @@ -3685,7 +3685,7 @@ Ferimento médio por perfuração Střední bodná rána 中くらいの刺し傷 - 중형 관통상 + 중형 자상 中穿刺伤 中穿刺傷 @@ -3701,7 +3701,7 @@ Ferimento grave por perfuração Velká bodná rána 大きな刺し傷 - 대형 관통상 + 대형 자상 大穿刺伤 大穿刺傷 From 741407f6e1a2950fe12c65af6f2203333e15282d Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Sat, 17 Feb 2018 19:32:19 -0600 Subject: [PATCH 046/235] Arsenal - Add stat for scope magnification (#6150) --- addons/arsenal/ACE_Arsenal_Stats.hpp | 8 ++++++ addons/arsenal/XEH_PREP.hpp | 1 + .../fnc_statTextStatement_scopeMag.sqf | 26 +++++++++++++++++++ addons/arsenal/stringtable.xml | 16 ++++++++++++ 4 files changed, 51 insertions(+) create mode 100644 addons/arsenal/functions/fnc_statTextStatement_scopeMag.sqf diff --git a/addons/arsenal/ACE_Arsenal_Stats.hpp b/addons/arsenal/ACE_Arsenal_Stats.hpp index b9fbfc39c0..ca8f236e94 100644 --- a/addons/arsenal/ACE_Arsenal_Stats.hpp +++ b/addons/arsenal/ACE_Arsenal_Stats.hpp @@ -66,6 +66,14 @@ class GVAR(stats) { barStatement = QUOTE([ARR_3(_this select 0, _this select 1, [ARR_3([ARR_2(0, 3.2)], [ARR_2(-1, 1100)], 2006)])] call FUNC(statBarStatement_impact)); tabs[] = {{0,1,2}, {}}; }; + class ACE_scopeMagnification: statBase { + scope = 2; + priority = 2; + displayName = CSTRING(statMagnification); + showText = 1; + textStatement = QUOTE(call FUNC(statTextStatement_scopeMag)); + tabs[] = {{}, {0}}; + }; class ACE_ballisticProtection: statBase { scope = 2; priority = 5; diff --git a/addons/arsenal/XEH_PREP.hpp b/addons/arsenal/XEH_PREP.hpp index e74de9c1aa..52b3d2e242 100644 --- a/addons/arsenal/XEH_PREP.hpp +++ b/addons/arsenal/XEH_PREP.hpp @@ -52,6 +52,7 @@ PREP(statBarStatement_impact); PREP(statTextStatement_accuracy); PREP(statTextStatement_mass); PREP(statTextStatement_rateOfFire); +PREP(statTextStatement_scopeMag); PREP(updateCamPos); PREP(updateRightPanel); PREP(updateUniqueItemsList); diff --git a/addons/arsenal/functions/fnc_statTextStatement_scopeMag.sqf b/addons/arsenal/functions/fnc_statTextStatement_scopeMag.sqf new file mode 100644 index 0000000000..5445847215 --- /dev/null +++ b/addons/arsenal/functions/fnc_statTextStatement_scopeMag.sqf @@ -0,0 +1,26 @@ +/* + * Author: PabstMirror + * Text statement for the scope magnification stat. + * + * Arguments: + * 0: not used + * 1: item config path (CONFIG) + * + * Return Value: + * String to display + * + * Public: No + */ +#include "script_component.hpp" + +params ["", "_config"]; +TRACE_1("statTextStatement_scopeMag",_config); + +private _minZoom = 999; // FOV, so smaller is more zoomed in +{ + _minZoom = _minZoom min (getNumber (_x >> "opticsZoomMin")); +} forEach configProperties [_config >> "ItemInfo" >> "OpticsModes"]; + +if (_minZoom in [0, 999]) exitWith {"?"}; + +format ["%1x", (0.25/_minZoom) toFixed 1] diff --git a/addons/arsenal/stringtable.xml b/addons/arsenal/stringtable.xml index 518d2bf9d8..3f4ce4e5a2 100644 --- a/addons/arsenal/stringtable.xml +++ b/addons/arsenal/stringtable.xml @@ -686,6 +686,22 @@ Potassium levels Taux de potassium + + Magnification + 放大倍率 + Grossissement + Aumento + Ingrandimento + Powiększenie + Увеличение + Vergrößerung + Zvětšení + Aumentox + 배율 + 放大倍数 + 拡大 + Büyütme + Page Page From 8b99ccecc440cba8a105b167bc1dbdb2edd06601 Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Sat, 17 Feb 2018 19:33:08 -0600 Subject: [PATCH 047/235] acex_fortify - add events to wiki (#6141) --- docs/wiki/frameworkx/fortify-framework.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/docs/wiki/frameworkx/fortify-framework.md b/docs/wiki/frameworkx/fortify-framework.md index fe49cc1eb3..547dd180c7 100644 --- a/docs/wiki/frameworkx/fortify-framework.md +++ b/docs/wiki/frameworkx/fortify-framework.md @@ -64,3 +64,12 @@ class ACEX_Fortify_Presets { ``` Then you will have to set the mission preset to `myMissionObjects` with `#fortify blufor myMissionObjects` to enable it. + +## 2. Events + +### 2.1 Listenable + +Event Name | Passed Parameter(s) | Locality | Description +---------- | ----------- | ------------------- | -------- +`acex_fortify_objectPlaced` | [player, side, objectPlaced] | Global | Foritfy object placed +`acex_fortify_objectDeleted` | [player, side, objectDeleted] | Global | Foritfy object deleted From d64a0c6728ee2e026c2537346c82f1e337d102b5 Mon Sep 17 00:00:00 2001 From: John Lillis Date: Sun, 18 Feb 2018 11:09:49 -0500 Subject: [PATCH 048/235] Remove SwayFactor ACE setting and module addition --- addons/advanced_fatigue/ACE_Settings.hpp | 7 ------- addons/advanced_fatigue/CfgVehicles.hpp | 6 ------ addons/advanced_fatigue/functions/fnc_moduleSettings.sqf | 1 - 3 files changed, 14 deletions(-) diff --git a/addons/advanced_fatigue/ACE_Settings.hpp b/addons/advanced_fatigue/ACE_Settings.hpp index 4a7efcbaad..8abdcc5865 100644 --- a/addons/advanced_fatigue/ACE_Settings.hpp +++ b/addons/advanced_fatigue/ACE_Settings.hpp @@ -42,11 +42,4 @@ class ACE_Settings { typeName = "SCALAR"; value = 1; }; - class GVAR(swayFactor) { - category = CSTRING(DisplayName); - displayName = CSTRING(SwayFactor); - description = CSTRING(SwayFactor_Description); - typeName = "SCALAR"; - value = 1; - }; }; diff --git a/addons/advanced_fatigue/CfgVehicles.hpp b/addons/advanced_fatigue/CfgVehicles.hpp index 0f4065ba07..f6cead81e1 100644 --- a/addons/advanced_fatigue/CfgVehicles.hpp +++ b/addons/advanced_fatigue/CfgVehicles.hpp @@ -40,12 +40,6 @@ class CfgVehicles { typeName = "NUMBER"; defaultValue = 1; }; - class SwayFactor { - displayName = CSTRING(SwayFactor); - description = CSTRING(SwayFactor_Description); - typeName = "NUMBER"; - defaultValue = 1; - }; }; }; }; diff --git a/addons/advanced_fatigue/functions/fnc_moduleSettings.sqf b/addons/advanced_fatigue/functions/fnc_moduleSettings.sqf index d903760182..9d1a0a6ab6 100644 --- a/addons/advanced_fatigue/functions/fnc_moduleSettings.sqf +++ b/addons/advanced_fatigue/functions/fnc_moduleSettings.sqf @@ -21,4 +21,3 @@ params ["_logic"]; [_logic, QGVAR(recoveryFactor), "RecoveryFactor"] call EFUNC(common,readSettingFromModule); [_logic, QGVAR(loadFactor), "LoadFactor"] call EFUNC(common,readSettingFromModule); [_logic, QGVAR(terrainGradientFactor), "TerrainGradientFactor"] call EFUNC(common,readSettingFromModule); -[_logic, QGVAR(swayFactor), "SwayFactor"] call EFUNC(common,readSettingFromModule); From 1835ccebb897e263b6de29945ebed3f617b006ea Mon Sep 17 00:00:00 2001 From: commy2 Date: Wed, 21 Feb 2018 11:05:17 +0100 Subject: [PATCH 049/235] Fix empty return value of getUnitTrait (#6160) --- addons/common/XEH_postInit.sqf | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/addons/common/XEH_postInit.sqf b/addons/common/XEH_postInit.sqf index 61061a9a1c..4299213e44 100644 --- a/addons/common/XEH_postInit.sqf +++ b/addons/common/XEH_postInit.sqf @@ -48,7 +48,8 @@ [QGVAR(setHidden), { params ["_object", "_set"]; TRACE_2("setHidden EH",_object,_set); - private _vis = _object getUnitTrait "camouflageCoef"; + // May report nil. Default to factor 1. + private _vis = [_object getUnitTrait "camouflageCoef"] param [0, 1]; if (_set > 0) then { if (_vis != 0) then { _object setVariable [QGVAR(oldVisibility), _vis]; From 123c19c1c0428fd87e5966b5d2fa4a76e59cb3d1 Mon Sep 17 00:00:00 2001 From: Josuan Albin Date: Sat, 24 Feb 2018 06:29:41 +0100 Subject: [PATCH 050/235] Scope stats and ballistic stats improvement (#6164) * Hide some of the ballistic stats if config value not defined ACE_magMuzzleVelocity ACE_bulletMass ACE_ballisticCoef * Add vertical and horizontal scope limits stats --- addons/ballistics/ACE_Arsenal_Stats.hpp | 3 +++ addons/scopes/ACE_Arsenal_Stats.hpp | 18 ++++++++++++++++++ addons/scopes/config.cpp | 1 + addons/scopes/stringtable.xml | 8 ++++++++ 4 files changed, 30 insertions(+) create mode 100644 addons/scopes/ACE_Arsenal_Stats.hpp diff --git a/addons/ballistics/ACE_Arsenal_Stats.hpp b/addons/ballistics/ACE_Arsenal_Stats.hpp index 4cf9872b7a..620c0fb2bc 100644 --- a/addons/ballistics/ACE_Arsenal_Stats.hpp +++ b/addons/ballistics/ACE_Arsenal_Stats.hpp @@ -34,6 +34,7 @@ class EGVAR(arsenal,stats) { displayName= CSTRING(statBallisticCoef); showText= 1; textStatement = QUOTE(params[ARR_2('_stat', '_config')]; private _ammoCfg = (configFile >> 'CfgAmmo' >> (getText (_config >> 'ammo'))); private _ballisticCoef = getArray (_ammoCfg >> _stat select 1); _ballisticCoef sort false; format [ARR_4('%1 G%2 (%3)', _ballisticCoef select 0 ,getNumber (_ammoCfg >> _stat select 0), getText (_ammoCfg >> _stat select 2))]); + condition = QUOTE(params[ARR_2('_stat', '_config')]; private _ammoCfg = (configFile >> 'CfgAmmo' >> (getText (_config >> 'ammo'))); !(getArray (_ammoCfg >> _stat select 1) isEqualTo [])); tabs[] ={{}, {4}}; }; class ACE_bulletMass: statBase { @@ -43,6 +44,7 @@ class EGVAR(arsenal,stats) { displayName = CSTRING(statBulletMass); showText = 1; textStatement = QUOTE(params[ARR_2('_stat', '_config')]; private _ammoWeight = getNumber (configFile >> 'CfgAmmo' >> (getText (_config >> 'ammo')) >> _stat select 0); format [ARR_3('%1g (%2gr)', _ammoWeight toFixed 1, (_ammoWeight * 15.43) toFixed 1)]); + condition = QUOTE(params[ARR_2('_stat', '_config')]; getNumber (configFile >> 'CfgAmmo' >> (getText (_config >> 'ammo')) >> _stat select 0) > 0); tabs[] = {{}, {4}}; }; class ACE_magMuzzleVelocity: statBase { @@ -52,6 +54,7 @@ class EGVAR(arsenal,stats) { displayName= CSTRING(statMuzzleVelocity); showText= 1; textStatement = QUOTE(params[ARR_2('_stat', '_config')]; private _initSpeed = getNumber (_config >> _stat select 0); format [ARR_3('%1 m/s (%2 ft/s)', _initSpeed, (_initSpeed * 3.28084) toFixed 0)]); + condition = QUOTE(getNumber (_this select 1 >> (_this select 0) select 0) > 0); tabs[] = {{}, {4}}; }; class ACE_weaponMuzzleVelocity: statBase { diff --git a/addons/scopes/ACE_Arsenal_Stats.hpp b/addons/scopes/ACE_Arsenal_Stats.hpp new file mode 100644 index 0000000000..1e2ebd91ea --- /dev/null +++ b/addons/scopes/ACE_Arsenal_Stats.hpp @@ -0,0 +1,18 @@ +class EGVAR(arsenal,stats) { + class statBase; + class ACE_scopeHorizontalLimits: statBase { + scope = 2; + priority = 3; + stats[] = {"ACE_ScopeAdjust_Horizontal", "ACE_ScopeAdjust_HorizontalIncrement"}; + displayName = CSTRING(statHorizontalLimits); + showText = 1; + textStatement = QUOTE(params[ARR_2('_stat','_config')]; private _limits = getArray (_config >> _stat select 0); format [ARR_4('%1 / %2 MIL (∆ %3 MIL)', _limits select 0, _limits select 1, getNumber (_config >> _stat select 1))]); + condition = QUOTE(params[ARR_2('_stat', '_config')]; !((getArray (_config >> _stat select 0)) isEqualTo [])); + tabs[] = {{}, {0}}; + }; + class ACE_scopeVerticalLimits: ACE_scopeHorizontalLimits { + stats[] = {"ACE_ScopeAdjust_Vertical", "ACE_ScopeAdjust_VerticalIncrement"}; + priority = 2; + displayName = CSTRING(statVerticalLimits); + }; +}; diff --git a/addons/scopes/config.cpp b/addons/scopes/config.cpp index 85c870b97c..4bef442049 100644 --- a/addons/scopes/config.cpp +++ b/addons/scopes/config.cpp @@ -20,3 +20,4 @@ class CfgPatches { #include "CfgWeapons.hpp" #include "RscTitles.hpp" #include "ACE_Settings.hpp" +#include "ACE_Arsenal_Stats.hpp" diff --git a/addons/scopes/stringtable.xml b/addons/scopes/stringtable.xml index 9bb2468339..4306e72137 100644 --- a/addons/scopes/stringtable.xml +++ b/addons/scopes/stringtable.xml @@ -440,5 +440,13 @@ %1R %1R + + Horizontal limits + Limites horizontales + + + Vertical limits + Limites verticales + From f70dfaf16028646ececc827701af1a4ffff38240 Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Fri, 23 Feb 2018 23:30:15 -0600 Subject: [PATCH 051/235] Arsenal - Compile stats on first use (#6159) * Arsenal - Compile stats on first use * fix ) --- addons/arsenal/XEH_preStart.sqf | 1 - addons/arsenal/functions/fnc_addStat.sqf | 7 +++---- addons/arsenal/functions/fnc_compileStats.sqf | 20 ++++++++++--------- addons/arsenal/functions/fnc_handleStats.sqf | 5 +++-- addons/arsenal/functions/fnc_removeStat.sqf | 14 ++++++------- 5 files changed, 24 insertions(+), 23 deletions(-) diff --git a/addons/arsenal/XEH_preStart.sqf b/addons/arsenal/XEH_preStart.sqf index 711d7b3018..ed7f4f0345 100644 --- a/addons/arsenal/XEH_preStart.sqf +++ b/addons/arsenal/XEH_preStart.sqf @@ -3,4 +3,3 @@ #include "XEH_PREP.hpp" call FUNC(scanConfig); -call FUNC(compileStats); diff --git a/addons/arsenal/functions/fnc_addStat.sqf b/addons/arsenal/functions/fnc_addStat.sqf index 6b14dcdcd2..88b732df93 100644 --- a/addons/arsenal/functions/fnc_addStat.sqf +++ b/addons/arsenal/functions/fnc_addStat.sqf @@ -53,8 +53,7 @@ _statements params [ ["_condition", {true}, [{}]] ]; -private _statsListLeftPanel = uiNamespace getVariable QGVAR(statsListLeftPanel); -private _statsListRightPanel = uiNamespace getVariable QGVAR(statsListRightPanel); +call FUNC(compileStats); private _returnArray = []; private _fnc_addToTabs = { @@ -89,11 +88,11 @@ private _fnc_addToTabs = { private _finalArray = ["", _stats, _title, [_showBar, _showText], [_barStatement, _textStatement, _condition], _priority]; if (count _leftTabs > 0) then { - [_statsListLeftPanel, _leftTabs, "L", 0] call _fnc_addToTabs; + [GVAR(statsListLeftPanel), _leftTabs, "L", 0] call _fnc_addToTabs; }; if (count _rightTabs > 0) then { - [_statsListRightPanel, _rightTabs, "R", 1] call _fnc_addToTabs; + [GVAR(statsListRightPanel), _rightTabs, "R", 1] call _fnc_addToTabs; }; _returnArray diff --git a/addons/arsenal/functions/fnc_compileStats.sqf b/addons/arsenal/functions/fnc_compileStats.sqf index 05a77d9efd..6ef70b811b 100644 --- a/addons/arsenal/functions/fnc_compileStats.sqf +++ b/addons/arsenal/functions/fnc_compileStats.sqf @@ -1,6 +1,6 @@ /* * Author: Alganthe - * Create the internal stats arrays on preStart + * Create the internal stats arrays when needed for the first time * * Arguments: * None @@ -12,6 +12,8 @@ */ #include "script_component.hpp" +if (!isNil QGVAR(statsListLeftPanel)) exitWith {}; + private _fnc_addToTabs = { params ["_tabsList", "_tabsToAddTo", "_sideString"]; { @@ -53,7 +55,7 @@ private _fnc_sortLists = { } foreach _tabsList; }; -private _statsListLeftPanel = uiNamespace getVariable [QGVAR(statsListLeftPanel), [ +private _statsListLeftPanel = [ [[]], // Primary 0 [[]], // Handgun 1 [[]], // Launcher 2 @@ -68,10 +70,10 @@ private _statsListLeftPanel = uiNamespace getVariable [QGVAR(statsListLeftPanel) [[]], // GPS 11 [[]], // Radio 12 [[]], // Compass 13 - [[]] // Watch 14 -]]; + [[]] // Watch 14 +]; -private _statsListRightPanel = uiNamespace getVariable [QGVAR(statsListRightPanel), [ +private _statsListRightPanel = [ [[]], // Optics 0 [[]], // Side accs 1 [[]], // Muzzle 2 @@ -79,8 +81,8 @@ private _statsListRightPanel = uiNamespace getVariable [QGVAR(statsListRightPane [[]], // Mag 4 [[]], // Throw 5 [[]], // Put 6 - [[]] // Misc 7 -]]; + [[]] // Misc 7 +]; //------------------------- Config handling private _configEntries = "(getNumber (_x >> 'scope')) == 2" configClasses (configFile >> QGVAR(stats)); @@ -129,5 +131,5 @@ private _configEntries = "(getNumber (_x >> 'scope')) == 2" configClasses (confi //------------------------- Config Handling -uiNamespace setVariable [QGVAR(statsListLeftPanel), _statsListLeftPanel]; -uiNamespace setVariable [QGVAR(statsListRightPanel), _statsListRightPanel]; +missionNamespace setVariable [QGVAR(statsListLeftPanel), _statsListLeftPanel]; +missionNamespace setVariable [QGVAR(statsListRightPanel), _statsListRightPanel]; diff --git a/addons/arsenal/functions/fnc_handleStats.sqf b/addons/arsenal/functions/fnc_handleStats.sqf index 4105fe092e..ec1e47cd59 100644 --- a/addons/arsenal/functions/fnc_handleStats.sqf +++ b/addons/arsenal/functions/fnc_handleStats.sqf @@ -50,6 +50,7 @@ private _hideUnusedFnc = { } forEach _numbers; }; +call FUNC(compileStats); if !(isNil "_itemCfg") then { private _handleStatsFnc = { @@ -57,9 +58,9 @@ if !(isNil "_itemCfg") then { // Get the proper list and page if (_leftPanel) then { - [true, (uiNamespace getVariable QGVAR(statsListLeftPanel)) select _statsIndex, GVAR(statsPagesLeft) select _statsIndex] + [true, (GVAR(statsListLeftPanel)) select _statsIndex, GVAR(statsPagesLeft) select _statsIndex] } else { - [false, (uiNamespace getVariable QGVAR(statsListRightPanel)) select _statsIndex, GVAR(statsPagesRight) select _statsIndex] + [false, (GVAR(statsListRightPanel)) select _statsIndex, GVAR(statsPagesRight) select _statsIndex] } params ["_isLeftPanel", "_statsArray", "_currentPage"]; private _statsList = _statsArray select _currentPage; diff --git a/addons/arsenal/functions/fnc_removeStat.sqf b/addons/arsenal/functions/fnc_removeStat.sqf index 654949753f..c13808e3a9 100644 --- a/addons/arsenal/functions/fnc_removeStat.sqf +++ b/addons/arsenal/functions/fnc_removeStat.sqf @@ -17,8 +17,7 @@ params ["_IDList"]; -private _statsListLeftPanel = uiNamespace getVariable QGVAR(statsListLeftPanel); -private _statsListRightPanel = uiNamespace getVariable QGVAR(statsListRightPanel); +call FUNC(compileStats); { private _currentID = _x; @@ -28,9 +27,9 @@ private _statsListRightPanel = uiNamespace getVariable QGVAR(statsListRightPanel _tab = parseNumber _tab; private _tabToChange = if (_side == "R") then { - _statsListRightPanel select _tab + GVAR(statsListRightPanel) select _tab } else { - _statsListLeftPanel select _tab + GVAR(statsListLeftPanel) select _tab }; { @@ -46,6 +45,7 @@ private _statsListRightPanel = uiNamespace getVariable QGVAR(statsListRightPanel // Clear empty pages private _fnc_deleteEmptyPage = { + params ["_list"]; { private _evaluatedTab = _forEachIndex; { @@ -55,12 +55,12 @@ private _fnc_deleteEmptyPage = { } foreach _x; { - (_statsListLeftPanel select (_x select 0)) deleteAt (_x select 1); + (_list select (_x select 0)) deleteAt (_x select 1); } foreach _markedForDeletion; } foreach (_this select 0); }; private _markedForDeletion = []; -[_statsListLeftPanel] call _fnc_deleteEmptyPage; -[_statsListRightPanel] call _fnc_deleteEmptyPage; +[GVAR(statsListLeftPanel)] call _fnc_deleteEmptyPage; +[GVAR(statsListRightPanel)] call _fnc_deleteEmptyPage; From 04bb3d981ca64c7d28215c0d1a415e755c8d33f0 Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Fri, 23 Feb 2018 23:30:33 -0600 Subject: [PATCH 052/235] InteractionMenu - Always compile before adding main action (#6156) --- addons/interact_menu/functions/fnc_addActionToObject.sqf | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/addons/interact_menu/functions/fnc_addActionToObject.sqf b/addons/interact_menu/functions/fnc_addActionToObject.sqf index 31c8301735..c250296af6 100644 --- a/addons/interact_menu/functions/fnc_addActionToObject.sqf +++ b/addons/interact_menu/functions/fnc_addActionToObject.sqf @@ -31,6 +31,13 @@ if (_actionList isEqualTo []) then { _object setVariable [_varName, _actionList]; }; +// Ensure the config menu was compiled first +if (_typeNum == 0) then { + [_object] call FUNC(compileMenu); +} else { + [_object] call FUNC(compileMenuSelfAction); +}; + if (_parentPath isEqualTo ["ACE_MainActions"]) then { [(typeOf _object), _typeNum] call FUNC(addMainAction); }; From e813af667f9b7ad05b714f6efd643f422beb08f3 Mon Sep 17 00:00:00 2001 From: mharis001 <34453221+mharis001@users.noreply.github.com> Date: Sat, 24 Feb 2018 00:40:47 -0500 Subject: [PATCH 053/235] BFT settings subcategory (#6165) --- addons/map/initSettings.sqf | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/addons/map/initSettings.sqf b/addons/map/initSettings.sqf index 1a72c6c90b..ae0e31b0ae 100644 --- a/addons/map/initSettings.sqf +++ b/addons/map/initSettings.sqf @@ -57,7 +57,7 @@ QGVAR(BFT_Enabled), "CHECKBOX", [localize LSTRING(BFT_Enabled_DisplayName), localize LSTRING(BFT_Enabled_Description)], - format ["ACE %1", localize LSTRING(BFT_Module_DisplayName)], + [format ["ACE %1", localize LSTRING(Module_DisplayName)], localize LSTRING(BFT_Module_DisplayName)], false, true ] call CBA_settings_fnc_init; @@ -66,7 +66,7 @@ QGVAR(BFT_Interval), "SLIDER", [localize LSTRING(BFT_Interval_DisplayName), localize LSTRING(BFT_Interval_Description)], - format ["ACE %1", localize LSTRING(BFT_Module_DisplayName)], + [format ["ACE %1", localize LSTRING(Module_DisplayName)], localize LSTRING(BFT_Module_DisplayName)], [0, 30, 1, 1], true ] call CBA_settings_fnc_init; @@ -75,7 +75,7 @@ QGVAR(BFT_ShowPlayerNames), "CHECKBOX", [localize LSTRING(BFT_ShowPlayerNames_DisplayName), localize LSTRING(BFT_ShowPlayerNames_Description)], - format ["ACE %1", localize LSTRING(BFT_Module_DisplayName)], + [format ["ACE %1", localize LSTRING(Module_DisplayName)], localize LSTRING(BFT_Module_DisplayName)], false, true ] call CBA_settings_fnc_init; @@ -84,7 +84,7 @@ QGVAR(BFT_HideAiGroups), "CHECKBOX", [localize LSTRING(BFT_HideAiGroups_DisplayName), localize LSTRING(BFT_HideAiGroups_Description)], - format ["ACE %1", localize LSTRING(BFT_Module_DisplayName)], + [format ["ACE %1", localize LSTRING(Module_DisplayName)], localize LSTRING(BFT_Module_DisplayName)], false, true ] call CBA_settings_fnc_init; From bca8b01860475ab8817d7c38f27eb84b4cfc6f79 Mon Sep 17 00:00:00 2001 From: mharis001 <34453221+mharis001@users.noreply.github.com> Date: Sat, 24 Feb 2018 12:44:57 -0500 Subject: [PATCH 054/235] Various additions to ace_zeus (#6036) * Add search to teleport players UI * Change group side icons to look better * Improve teleport UI and add stringtable entries * Add Assign Repair Vehicle module * Add Assign Repair Facility module * Add Assign Engineer module * Add Full Heal module * Add Suicide Bomber module * Make heal module work without ace_medical * Add suicide bomber module translations * Improve attribute cargo to use displayName * Improve set engineer ui * ACE_Curator for repair modules + author array * Add angle param to getModuleDestination * Prevent multiple suicide bomber modules on same target * Heal module: support BI scripted revive system * Requested changes --- addons/ai/XEH_postInit.sqf | 29 +- addons/zeus/CfgVehicles.hpp | 34 +++ addons/zeus/XEH_PREP.hpp | 7 + addons/zeus/config.cpp | 16 +- .../zeus/functions/fnc_addObjectToCurator.sqf | 1 - .../zeus/functions/fnc_bi_moduleArsenal.sqf | 1 - .../zeus/functions/fnc_bi_moduleCurator.sqf | 1 - addons/zeus/functions/fnc_bi_moduleMine.sqf | 1 - .../functions/fnc_bi_moduleProjectile.sqf | 1 - .../functions/fnc_bi_moduleRemoteControl.sqf | 1 - .../functions/fnc_getModuleDestination.sqf | 15 +- .../functions/fnc_handleZeusUnitAssigned.sqf | 1 - addons/zeus/functions/fnc_moduleCaptive.sqf | 1 - addons/zeus/functions/fnc_moduleGarrison.sqf | 1 - .../functions/fnc_moduleGlobalSetSkill.sqf | 1 - addons/zeus/functions/fnc_moduleGroupSide.sqf | 1 - addons/zeus/functions/fnc_moduleHeal.sqf | 58 ++++ .../functions/fnc_moduleRemoveAceArsenal.sqf | 1 - .../functions/fnc_moduleRemoveArsenal.sqf | 1 - .../zeus/functions/fnc_moduleSearchNearby.sqf | 1 - .../zeus/functions/fnc_moduleSetEngineer.sqf | 27 ++ addons/zeus/functions/fnc_moduleSetMedic.sqf | 1 - .../fnc_moduleSetMedicalFacility.sqf | 1 - .../functions/fnc_moduleSetMedicalVehicle.sqf | 1 - .../functions/fnc_moduleSetRepairFacility.sqf | 50 ++++ .../functions/fnc_moduleSetRepairVehicle.sqf | 46 ++++ .../zeus/functions/fnc_moduleSimulation.sqf | 1 - .../functions/fnc_moduleSuicideBomber.sqf | 102 +++++++ .../functions/fnc_moduleSuppressiveFire.sqf | 2 +- addons/zeus/functions/fnc_moduleSurrender.sqf | 1 - .../functions/fnc_moduleTeleportPlayers.sqf | 1 - .../functions/fnc_moduleToggleFlashlight.sqf | 1 - addons/zeus/functions/fnc_moduleToggleNvg.sqf | 1 - .../zeus/functions/fnc_moduleUnGarrison.sqf | 1 - .../zeus/functions/fnc_moduleUnconscious.sqf | 1 - .../zeus/functions/fnc_moduleZeusSettings.sqf | 1 - .../zeus/functions/fnc_ui_attributeCargo.sqf | 9 +- .../functions/fnc_ui_attributePosition.sqf | 1 - .../zeus/functions/fnc_ui_attributeRadius.sqf | 1 - addons/zeus/functions/fnc_ui_defendArea.sqf | 1 - .../zeus/functions/fnc_ui_editableObjects.sqf | 1 - addons/zeus/functions/fnc_ui_garrison.sqf | 1 - .../zeus/functions/fnc_ui_globalSetSkill.sqf | 1 - addons/zeus/functions/fnc_ui_groupSide.sqf | 1 - addons/zeus/functions/fnc_ui_patrolArea.sqf | 1 - addons/zeus/functions/fnc_ui_searchArea.sqf | 1 - addons/zeus/functions/fnc_ui_setEngineer.sqf | 75 +++++ .../zeus/functions/fnc_ui_suicideBomber.sqf | 151 +++++++++++ .../zeus/functions/fnc_ui_teleportPlayers.sqf | 33 ++- .../functions/fnc_ui_toggleFlashlight.sqf | 1 - addons/zeus/functions/fnc_ui_toggleNvg.sqf | 1 - addons/zeus/functions/fnc_zeusAttributes.sqf | 1 - addons/zeus/stringtable.xml | 256 ++++++++++++++++++ addons/zeus/ui/Icon_Module_Zeus_Heal_ca.paa | Bin 0 -> 5625 bytes addons/zeus/ui/RscAttributes.hpp | 217 ++++++++++++++- 55 files changed, 1100 insertions(+), 64 deletions(-) create mode 100644 addons/zeus/functions/fnc_moduleHeal.sqf create mode 100644 addons/zeus/functions/fnc_moduleSetEngineer.sqf create mode 100644 addons/zeus/functions/fnc_moduleSetRepairFacility.sqf create mode 100644 addons/zeus/functions/fnc_moduleSetRepairVehicle.sqf create mode 100644 addons/zeus/functions/fnc_moduleSuicideBomber.sqf create mode 100644 addons/zeus/functions/fnc_ui_setEngineer.sqf create mode 100644 addons/zeus/functions/fnc_ui_suicideBomber.sqf create mode 100644 addons/zeus/ui/Icon_Module_Zeus_Heal_ca.paa diff --git a/addons/ai/XEH_postInit.sqf b/addons/ai/XEH_postInit.sqf index cf0ab8e49d..25bd328ff7 100644 --- a/addons/ai/XEH_postInit.sqf +++ b/addons/ai/XEH_postInit.sqf @@ -16,9 +16,10 @@ }] call CBA_fnc_addEventHandler; [QGVAR(unGarrison), FUNC(unGarrison)] call CBA_fnc_addEventHandler; + [QGVAR(doMove), { params ["_unitsArray"]; - { + { _x params ["_unit", "_pos"]; //_unit doFollow leader _unit; _unit setDestination [_pos, "LEADER PLANNED", true]; @@ -26,14 +27,16 @@ LOG(format [ARR_4("XEH_postInit: %1 doMove %2 | ID %3", _unit, _pos, clientOwner)]); } foreach _unitsArray }] call CBA_fnc_addEventHandler; + [QGVAR(setBehaviour), { params ["_groupsArray", "_behaviour"]; - { + { _x params ["_group"]; _group setBehaviour _behaviour; LOG(format [ARR_4("XEH_postInit: %1 setBehaviour %2 | ID %3", _group, _behaviour, clientOwner)]); } foreach _groupsArray }] call CBA_fnc_addEventHandler; + [QGVAR(enableAttack), { params ["_unitsArray", "_mode"]; { @@ -43,6 +46,26 @@ } foreach _unitsArray }] call CBA_fnc_addEventHandler; +[QGVAR(setUnitPos), { + params ["_unit", "_mode"]; + _unit setUnitPos _mode; +}] call CBA_fnc_addEventHandler; + +[QGVAR(setSpeedMode), { + params ["_unit", "_mode"]; + _unit setSpeedMode _mode; +}] call CBA_fnc_addEventHandler; + +[QGVAR(setCombatMode), { + params ["_unit", "_mode"]; + _unit setCombatMode _mode; +}] call CBA_fnc_addEventHandler; + +[QGVAR(allowFleeing), { + params ["_unit", "_cowardice"]; + _unit allowFleeing _cowardice; +}] call CBA_fnc_addEventHandler; + #ifdef DEBUG_MODE_FULL addMissionEventHandler ["Draw3D", { private _unitMoveList = missionNameSpace getVariable [QGVAR(garrison_unitMoveList), []]; @@ -81,4 +104,4 @@ }; } foreach _unitMoveList; }]; -#endif \ No newline at end of file +#endif diff --git a/addons/zeus/CfgVehicles.hpp b/addons/zeus/CfgVehicles.hpp index efa777e5ec..f37c5e8310 100644 --- a/addons/zeus/CfgVehicles.hpp +++ b/addons/zeus/CfgVehicles.hpp @@ -107,6 +107,27 @@ class CfgVehicles { function = QFUNC(moduleAddSpareWheel); icon = "a3\ui_f\data\IGUI\Cfg\Actions\repair_ca.paa"; }; + class GVAR(moduleSetEngineer): GVAR(moduleBase) { + curatorCanAttach = 1; + category = QGVAR(Repair); + displayName = CSTRING(ModuleSetEngineer_DisplayName); + curatorInfoType = QGVAR(RscSetEngineer); + icon = "a3\ui_f\data\IGUI\Cfg\Actions\repair_ca.paa"; + }; + class GVAR(moduleSetRepairFacility): GVAR(moduleBase) { + curatorCanAttach = 1; + category = QGVAR(Repair); + displayName = CSTRING(ModuleSetRepairFacility_DisplayName); + function = QFUNC(moduleSetRepairFacility); + icon = "a3\ui_f\data\IGUI\Cfg\Actions\repair_ca.paa"; + }; + class GVAR(moduleSetRepairVehicle): GVAR(moduleBase) { + curatorCanAttach = 1; + category = QGVAR(Repair); + displayName = CSTRING(ModuleSetRepairVehicle_DisplayName); + function = QFUNC(moduleSetRepairVehicle); + icon = "a3\ui_f\data\IGUI\Cfg\Actions\repair_ca.paa"; + }; class GVAR(moduleAddOrRemoveFRIES): GVAR(moduleBase) { curatorCanAttach = 1; category = QGVAR(Utility); @@ -150,6 +171,13 @@ class CfgVehicles { displayName = CSTRING(ModuleGroupSide_DisplayName); curatorInfoType = QGVAR(RscGroupSide); }; + class GVAR(moduleHeal): GVAR(moduleBase) { + curatorCanAttach = 1; + category = QGVAR(Medical); + displayName = CSTRING(ModuleHeal_DisplayName); + function = QFUNC(moduleHeal); + icon = QPATHTOF(ui\Icon_Module_Zeus_Heal_ca.paa); + }; class GVAR(moduleLoadIntoCargo): GVAR(moduleBase) { curatorCanAttach = 1; category = QGVAR(Utility); @@ -208,6 +236,12 @@ class CfgVehicles { displayName = CSTRING(ModuleSimulation_DisplayName); function = QFUNC(moduleSimulation); }; + class GVAR(moduleSuicideBomber): GVAR(moduleBase) { + curatorCanAttach = 1; + category = QGVAR(AI); + displayName = CSTRING(ModuleSuicideBomber_DisplayName); + curatorInfoType = QGVAR(RscSuicideBomber); + }; class GVAR(moduleSurrender): GVAR(moduleBase) { curatorCanAttach = 1; category = QGVAR(Captive); diff --git a/addons/zeus/XEH_PREP.hpp b/addons/zeus/XEH_PREP.hpp index 648282216a..4fa21ff340 100644 --- a/addons/zeus/XEH_PREP.hpp +++ b/addons/zeus/XEH_PREP.hpp @@ -17,14 +17,19 @@ PREP(moduleConfigurePylons); PREP(moduleGarrison); PREP(moduleGlobalSetSkill); PREP(moduleGroupSide); +PREP(moduleHeal); PREP(moduleLoadIntoCargo); PREP(moduleRemoveArsenal); PREP(moduleRemoveAceArsenal); PREP(moduleSearchNearby); +PREP(moduleSetEngineer); PREP(moduleSetMedic); PREP(moduleSetMedicalVehicle); PREP(moduleSetMedicalFacility); +PREP(moduleSetRepairFacility); +PREP(moduleSetRepairVehicle); PREP(moduleSimulation); +PREP(moduleSuicideBomber); PREP(moduleSuppressiveFire); PREP(moduleSuppressiveFireLocal); PREP(moduleSurrender); @@ -45,6 +50,8 @@ PREP(ui_globalSetSkill); PREP(ui_groupSide); PREP(ui_patrolArea); PREP(ui_searchArea); +PREP(ui_setEngineer); +PREP(ui_suicideBomber); PREP(ui_teleportPlayers); PREP(ui_toggleFlashlight); PREP(ui_toggleNvg); diff --git a/addons/zeus/config.cpp b/addons/zeus/config.cpp index 8e6d9767d6..37cfa24dd4 100644 --- a/addons/zeus/config.cpp +++ b/addons/zeus/config.cpp @@ -22,15 +22,17 @@ class CfgPatches { QGVAR(moduleSuppressiveFire), QGVAR(AddFullArsenal), QGVAR(RemoveFullArsenal), + QGVAR(moduleTeleportPlayers), + QGVAR(moduleHeal), + QGVAR(moduleSuicideBomber), QGVAR(AddFullAceArsenal), - QGVAR(RemoveFullAceArsenal), - QGVAR(moduleTeleportPlayers) + QGVAR(RemoveFullAceArsenal) }; weapons[] = {}; requiredVersion = REQUIRED_VERSION; requiredAddons[] = {"ace_common", "ace_ai"}; author = ECSTRING(common,ACETeam); - authors[] = {"SilentSpike"}; + authors[] = {"SilentSpike", "mharis001"}; url = ECSTRING(main,URL); VERSION_CONFIG; }; @@ -55,6 +57,13 @@ class CfgPatches { QGVAR(moduleLoadIntoCargo) }; }; + class GVAR(repair): ADDON { + units[] = { + QGVAR(moduleSetEngineer), + QGVAR(moduleSetRepairVehicle), + QGVAR(moduleSetRepairFacility) + }; + }; class GVAR(cargoAndRepair): ADDON { units[] = { QGVAR(moduleAddSpareTrack), @@ -83,6 +92,7 @@ class ACE_Curator { GVAR(captives) = "ace_captives"; GVAR(medical) = "ace_medical"; GVAR(cargo) = "ace_cargo"; + GVAR(repair) = "ace_repair"; GVAR(cargoAndRepair)[] = {"ace_cargo", "ace_repair"}; GVAR(fastroping) = "ace_fastroping"; GVAR(pylons) = "ace_pylons"; diff --git a/addons/zeus/functions/fnc_addObjectToCurator.sqf b/addons/zeus/functions/fnc_addObjectToCurator.sqf index 230f035eb3..7efa8beb64 100644 --- a/addons/zeus/functions/fnc_addObjectToCurator.sqf +++ b/addons/zeus/functions/fnc_addObjectToCurator.sqf @@ -13,7 +13,6 @@ * * Public: No */ - #include "script_component.hpp" params ["_object"]; diff --git a/addons/zeus/functions/fnc_bi_moduleArsenal.sqf b/addons/zeus/functions/fnc_bi_moduleArsenal.sqf index 2990d42633..bc976c7bee 100644 --- a/addons/zeus/functions/fnc_bi_moduleArsenal.sqf +++ b/addons/zeus/functions/fnc_bi_moduleArsenal.sqf @@ -16,7 +16,6 @@ * * Public: No */ - #include "script_component.hpp" params ["_logic", "", "_activated"]; diff --git a/addons/zeus/functions/fnc_bi_moduleCurator.sqf b/addons/zeus/functions/fnc_bi_moduleCurator.sqf index b556b08197..3b863a70a5 100644 --- a/addons/zeus/functions/fnc_bi_moduleCurator.sqf +++ b/addons/zeus/functions/fnc_bi_moduleCurator.sqf @@ -17,7 +17,6 @@ * * Public: No */ - #include "script_component.hpp" params ["_logic", "_units", "_activated"]; diff --git a/addons/zeus/functions/fnc_bi_moduleMine.sqf b/addons/zeus/functions/fnc_bi_moduleMine.sqf index 1c85706d09..cb3be133d1 100644 --- a/addons/zeus/functions/fnc_bi_moduleMine.sqf +++ b/addons/zeus/functions/fnc_bi_moduleMine.sqf @@ -16,7 +16,6 @@ * * Public: No */ - #include "script_component.hpp" params ["_logic", "_units", "_activated"]; diff --git a/addons/zeus/functions/fnc_bi_moduleProjectile.sqf b/addons/zeus/functions/fnc_bi_moduleProjectile.sqf index 3d974c126c..bbb4da0988 100644 --- a/addons/zeus/functions/fnc_bi_moduleProjectile.sqf +++ b/addons/zeus/functions/fnc_bi_moduleProjectile.sqf @@ -17,7 +17,6 @@ * * Public: No */ - #include "script_component.hpp" _logic = _this select 0; diff --git a/addons/zeus/functions/fnc_bi_moduleRemoteControl.sqf b/addons/zeus/functions/fnc_bi_moduleRemoteControl.sqf index 994b445d8d..687956492d 100644 --- a/addons/zeus/functions/fnc_bi_moduleRemoteControl.sqf +++ b/addons/zeus/functions/fnc_bi_moduleRemoteControl.sqf @@ -16,7 +16,6 @@ * * Public: No */ - #include "script_component.hpp" _logic = _this select 0; diff --git a/addons/zeus/functions/fnc_getModuleDestination.sqf b/addons/zeus/functions/fnc_getModuleDestination.sqf index f29b42550c..d6aa822b5a 100644 --- a/addons/zeus/functions/fnc_getModuleDestination.sqf +++ b/addons/zeus/functions/fnc_getModuleDestination.sqf @@ -15,6 +15,7 @@ * 2: Text (default: "") * 3: Icon image file (default: "\a3\ui_f\data\IGUI\Cfg\Cursors\select_target_ca.paa") * 4: Icon color (default: [1,0,0,1]) + * 5: Icon Angle (default: 0) * * Return Value: * None @@ -26,7 +27,7 @@ */ #include "script_component.hpp" -params ["_object", "_code", ["_text", ""], ["_icon", "\a3\ui_f\data\IGUI\Cfg\Cursors\select_target_ca.paa"], ["_color", [1,0,0,1]]]; +params ["_object", "_code", ["_text", ""], ["_icon", "\a3\ui_f\data\IGUI\Cfg\Cursors\select_target_ca.paa"], ["_color", [1,0,0,1]], ["_angle", 0]]; if (missionNamespace getVariable [QGVAR(moduleDestination_running), false]) exitWith { [false, _object, [0,0,0], false, false, false] call _code; @@ -86,16 +87,16 @@ GVAR(moduleDestination_displayEHKeyboard) = [findDisplay 312, "KeyDown", { GVAR(moduleDestination_mapDrawEH) = [((findDisplay 312) displayCtrl 50), "draw", { params ["_mapCtrl"]; //IGNORE_PRIVATE_WARNING ["_thisArgs"] - _thisArgs params ["_object", "_text", "_icon", "_color"]; + _thisArgs params ["_object", "_text", "_icon", "_color", "_angle"]; private _pos2d = (((findDisplay 312) displayCtrl 50) ctrlMapScreenToWorld getMousePosition); - _mapCtrl drawIcon [_icon, _color, _pos2d, 24, 24, 45, _text, 1, 0.03, "TahomaB", "right"]; + _mapCtrl drawIcon [_icon, _color, _pos2d, 24, 24, _angle, _text, 1, 0.03, "TahomaB", "right"]; _mapCtrl drawLine [getPos _object, _pos2d, _color]; -}, [_object, _text, _icon, _color]] call CBA_fnc_addBISEventHandler; +}, [_object, _text, _icon, _color, _angle]] call CBA_fnc_addBISEventHandler; // Add draw EH for 3D camera view - draws the 3D icon and line [{ - (_this select 0) params ["_object", "_code", "_text", "_icon", "_color"]; + (_this select 0) params ["_object", "_code", "_text", "_icon", "_color", "_angle"]; if ((isNull _object) || {isNull findDisplay 312} || {!isNull findDisplay 49}) then { TRACE_3("null-exit",isNull _object,isNull findDisplay 312,isNull findDisplay 49); GVAR(moduleDestination_running) = false; @@ -104,7 +105,7 @@ GVAR(moduleDestination_mapDrawEH) = [((findDisplay 312) displayCtrl 50), "draw", if (GVAR(moduleDestination_running)) then { // Draw the 3d icon and line private _mousePosAGL = screenToWorld getMousePosition; - drawIcon3D [_icon, _color, _mousePosAGL, 1.5, 1.5, 45, _text]; + drawIcon3D [_icon, _color, _mousePosAGL, 1.5, 1.5, _angle, _text]; drawLine3D [_mousePosAGL, ASLtoAGL (getPosASL _object), _color];; } else { TRACE_4("cleaning up",_this select 1,GVAR(moduleDestination_displayEHMouse),GVAR(moduleDestination_displayEHKeyboard),GVAR(moduleDestination_mapDrawEH)); @@ -116,4 +117,4 @@ GVAR(moduleDestination_mapDrawEH) = [((findDisplay 312) displayCtrl 50), "draw", GVAR(moduleDestination_displayEHKeyboard) = nil; GVAR(moduleDestination_mapDrawEH) = nil; }; -}, 0, [_object, _code, _text, _icon, _color]] call CBA_fnc_addPerFrameHandler; +}, 0, [_object, _code, _text, _icon, _color, _angle]] call CBA_fnc_addPerFrameHandler; diff --git a/addons/zeus/functions/fnc_handleZeusUnitAssigned.sqf b/addons/zeus/functions/fnc_handleZeusUnitAssigned.sqf index 05c5de668e..58db9b093e 100644 --- a/addons/zeus/functions/fnc_handleZeusUnitAssigned.sqf +++ b/addons/zeus/functions/fnc_handleZeusUnitAssigned.sqf @@ -19,7 +19,6 @@ * * Public: No */ - #include "script_component.hpp" if !(isClass (configFile >> "ACE_Curator")) exitWith { ERROR("The ACE_Curator class does not exist") }; diff --git a/addons/zeus/functions/fnc_moduleCaptive.sqf b/addons/zeus/functions/fnc_moduleCaptive.sqf index 317c785f20..fbb1255b8d 100644 --- a/addons/zeus/functions/fnc_moduleCaptive.sqf +++ b/addons/zeus/functions/fnc_moduleCaptive.sqf @@ -15,7 +15,6 @@ * * Public: No */ - #include "script_component.hpp" params ["_logic"]; diff --git a/addons/zeus/functions/fnc_moduleGarrison.sqf b/addons/zeus/functions/fnc_moduleGarrison.sqf index 2762102d0c..5bc545716d 100644 --- a/addons/zeus/functions/fnc_moduleGarrison.sqf +++ b/addons/zeus/functions/fnc_moduleGarrison.sqf @@ -17,7 +17,6 @@ * * Public: No */ - #include "script_component.hpp" params ["_logic", "_pos", "_radius" ,"_mode" , "_topDownMode", "_teleport"]; diff --git a/addons/zeus/functions/fnc_moduleGlobalSetSkill.sqf b/addons/zeus/functions/fnc_moduleGlobalSetSkill.sqf index 1d4e2769b8..6e275acaf8 100644 --- a/addons/zeus/functions/fnc_moduleGlobalSetSkill.sqf +++ b/addons/zeus/functions/fnc_moduleGlobalSetSkill.sqf @@ -14,7 +14,6 @@ * * Public: No */ - #include "script_component.hpp" params ["_varName", "_varValue"]; diff --git a/addons/zeus/functions/fnc_moduleGroupSide.sqf b/addons/zeus/functions/fnc_moduleGroupSide.sqf index 2a52df09da..2ef385a091 100644 --- a/addons/zeus/functions/fnc_moduleGroupSide.sqf +++ b/addons/zeus/functions/fnc_moduleGroupSide.sqf @@ -14,7 +14,6 @@ * * Public: No */ - #include "script_component.hpp" params ["_unit", "_newSide"]; diff --git a/addons/zeus/functions/fnc_moduleHeal.sqf b/addons/zeus/functions/fnc_moduleHeal.sqf new file mode 100644 index 0000000000..34f7519699 --- /dev/null +++ b/addons/zeus/functions/fnc_moduleHeal.sqf @@ -0,0 +1,58 @@ +/* + * Author: mharis001 + * Full heal unit. + * + * Arguments: + * 0: The module logic + * + * Return Value: + * None + * + * Example: + * [LOGIC] call ace_zeus_fnc_moduleHeal + * + * Public: No + */ +#include "script_component.hpp" + +params ["_logic"]; + +if !(local _logic) exitWith {}; + +private _unit = attachedTo _logic; + +// Validate module target +scopeName "Main"; +private _fnc_errorAndClose = { + params ["_msg"]; + deleteVehicle _logic; + [_msg] call FUNC(showMessage); + breakOut "Main"; +}; + +switch (false) do { + case !(isNull _unit): { + [LSTRING(NothingSelected)] call _fnc_errorAndClose; + }; + case (_unit isKindOf "CAManBase"): { + [LSTRING(OnlyInfantry)] call _fnc_errorAndClose; + }; + case (alive _unit): { + [LSTRING(OnlyAlive)] call _fnc_errorAndClose; + }; +}; + +// Heal validated target +if (["ace_medical"] call EFUNC(common,isModLoaded) && {EGVAR(medical,level) > 0}) then { + [QEGVAR(medical,treatmentAdvanced_fullHealLocal), [_unit, _unit], _unit] call CBA_fnc_targetEvent; +} else { + // BI's scripted revive system + if ((missionNamespace getVariable ["bis_revive_mode", 0]) != 0) then { + ["#rev", 1, _unit] call BIS_fnc_reviveOnState; + _unit setVariable ["#rev", 1, true]; + } else { + _unit setDamage 0; + }; +}; + +deleteVehicle _logic; diff --git a/addons/zeus/functions/fnc_moduleRemoveAceArsenal.sqf b/addons/zeus/functions/fnc_moduleRemoveAceArsenal.sqf index c39b51a3de..83aa319480 100644 --- a/addons/zeus/functions/fnc_moduleRemoveAceArsenal.sqf +++ b/addons/zeus/functions/fnc_moduleRemoveAceArsenal.sqf @@ -10,7 +10,6 @@ * * Public: No */ - #include "script_component.hpp" params ["_logic"]; diff --git a/addons/zeus/functions/fnc_moduleRemoveArsenal.sqf b/addons/zeus/functions/fnc_moduleRemoveArsenal.sqf index 9693881810..97256ca67d 100644 --- a/addons/zeus/functions/fnc_moduleRemoveArsenal.sqf +++ b/addons/zeus/functions/fnc_moduleRemoveArsenal.sqf @@ -10,7 +10,6 @@ * * Public: No */ - #include "script_component.hpp" params ["_logic"]; diff --git a/addons/zeus/functions/fnc_moduleSearchNearby.sqf b/addons/zeus/functions/fnc_moduleSearchNearby.sqf index a73dbd7fe8..2145d62e17 100644 --- a/addons/zeus/functions/fnc_moduleSearchNearby.sqf +++ b/addons/zeus/functions/fnc_moduleSearchNearby.sqf @@ -15,7 +15,6 @@ * * Public: No */ - #include "script_component.hpp" params ["_logic"]; diff --git a/addons/zeus/functions/fnc_moduleSetEngineer.sqf b/addons/zeus/functions/fnc_moduleSetEngineer.sqf new file mode 100644 index 0000000000..e548c6c363 --- /dev/null +++ b/addons/zeus/functions/fnc_moduleSetEngineer.sqf @@ -0,0 +1,27 @@ +/* + * Author: mharis001 + * Zeus module function to set unit engineer skill. + * + * Arguments: + * 0: Unit + * 1: Skill level (1 - Engineer, 2 - Adv. Engineer) (default: 1) + * + * Return Value: + * None + * + * Example: + * [unit, 2] call ace_zeus_fnc_moduleSetEngineer + * + * Public: No + */ +#include "script_component.hpp" + +params ["_unit", ["_engineerN", 1]]; + +if (isNull _unit) exitWith { + ERROR("Passed unit is null"); +}; + +if !([_unit, _engineerN] call EFUNC(repair,isEngineer)) then { + _unit setVariable ["ACE_IsEngineer", _engineerN, true]; +}; diff --git a/addons/zeus/functions/fnc_moduleSetMedic.sqf b/addons/zeus/functions/fnc_moduleSetMedic.sqf index b2cd233bc7..c213bcc25e 100644 --- a/addons/zeus/functions/fnc_moduleSetMedic.sqf +++ b/addons/zeus/functions/fnc_moduleSetMedic.sqf @@ -15,7 +15,6 @@ * * Public: No */ - #include "script_component.hpp" params ["_logic"]; diff --git a/addons/zeus/functions/fnc_moduleSetMedicalFacility.sqf b/addons/zeus/functions/fnc_moduleSetMedicalFacility.sqf index 4977b21986..e9f39019a2 100644 --- a/addons/zeus/functions/fnc_moduleSetMedicalFacility.sqf +++ b/addons/zeus/functions/fnc_moduleSetMedicalFacility.sqf @@ -15,7 +15,6 @@ * * Public: No */ - #include "script_component.hpp" params ["_logic"]; diff --git a/addons/zeus/functions/fnc_moduleSetMedicalVehicle.sqf b/addons/zeus/functions/fnc_moduleSetMedicalVehicle.sqf index a819a15d9e..a4555c5ff9 100644 --- a/addons/zeus/functions/fnc_moduleSetMedicalVehicle.sqf +++ b/addons/zeus/functions/fnc_moduleSetMedicalVehicle.sqf @@ -15,7 +15,6 @@ * * Public: No */ - #include "script_component.hpp" params ["_logic"]; diff --git a/addons/zeus/functions/fnc_moduleSetRepairFacility.sqf b/addons/zeus/functions/fnc_moduleSetRepairFacility.sqf new file mode 100644 index 0000000000..a35533f4f4 --- /dev/null +++ b/addons/zeus/functions/fnc_moduleSetRepairFacility.sqf @@ -0,0 +1,50 @@ +/* + * Author: mharis001 + * Assigns object as repair facility. + * + * Arguments: + * 0: The module logic + * + * Return Value: + * None + * + * Example: + * [LOGIC] call ace_zeus_fnc_moduleSetRepairFacility + * + * Public: No + */ + #include "script_component.hpp" + + params ["_logic"]; + + if !(local _logic) exitWith {}; + +if !(["ace_repair"] call EFUNC(common,isModLoaded)) then { + [LSTRING(RequiresAddon)] call FUNC(showMessage); +} else { + private _mouseOver = GETMVAR(bis_fnc_curatorObjectPlaced_mouseOver,[""]); + + if ((_mouseOver select 0) != "OBJECT") then { + [LSTRING(NothingSelected)] call FUNC(showMessage); + } else { + private _unit = (_mouseOver select 1); + + if (_unit isKindOf "Man" || {!(_unit isKindOf "Building")}) then { + [LSTRING(OnlyStructures)] call FUNC(showMessage); + } else { + if !(alive _unit) then { + [LSTRING(OnlyAlive)] call FUNC(showMessage); + } else { + if (GETVAR(_unit,EGVAR(captives,isHandcuffed),false)) then { + [LSTRING(OnlyNonCaptive)] call FUNC(showMessage); + } else { + if ((_unit getVariable ["ACE_isRepairFacility", 0]) < 1) then { + _unit setVariable ["ACE_isRepairFacility", 1, true]; + }; + }; + }; + }; + }; +}; + +deleteVehicle _logic; diff --git a/addons/zeus/functions/fnc_moduleSetRepairVehicle.sqf b/addons/zeus/functions/fnc_moduleSetRepairVehicle.sqf new file mode 100644 index 0000000000..485c8f8db5 --- /dev/null +++ b/addons/zeus/functions/fnc_moduleSetRepairVehicle.sqf @@ -0,0 +1,46 @@ +/* + * Author: mharis001 + * Assigns object as repair vehicle. + * + * Arguments: + * 0: The module logic + * + * Return Value: + * None + * + * Example: + * [LOGIC] call ace_zeus_fnc_moduleSetRepairVehicle + * + * Public: No + */ +#include "script_component.hpp" + +params ["_logic"]; + +if !(local _logic) exitWith {}; + +if !(["ace_repair"] call EFUNC(common,isModLoaded)) then { + [LSTRING(RequiresAddon)] call FUNC(showMessage); +} else { + private _mouseOver = GETMVAR(bis_fnc_curatorObjectPlaced_mouseOver,[""]); + + if ((_mouseOver select 0) != "OBJECT") then { + [LSTRING(NothingSelected)] call FUNC(showMessage); + } else { + private _unit = _mouseOver select 1; + + if (_unit isKindOf "Man" || (_unit isKindOf "Building")) then { + [LSTRING(OnlyVehicles)] call FUNC(showMessage); + } else { + if !(alive _unit) then { + [LSTRING(OnlyAlive)] call FUNC(showMessage); + } else { + if !([_unit] call EFUNC(repair,isRepairVehicle)) then { + _unit setVariable ["ACE_isRepairVehicle", 1, true]; + }; + }; + }; + }; +}; + +deleteVehicle _logic; diff --git a/addons/zeus/functions/fnc_moduleSimulation.sqf b/addons/zeus/functions/fnc_moduleSimulation.sqf index fc6d6e4a06..76a275a02e 100644 --- a/addons/zeus/functions/fnc_moduleSimulation.sqf +++ b/addons/zeus/functions/fnc_moduleSimulation.sqf @@ -13,7 +13,6 @@ * * Public: No */ - #include "script_component.hpp" params ["_logic"]; diff --git a/addons/zeus/functions/fnc_moduleSuicideBomber.sqf b/addons/zeus/functions/fnc_moduleSuicideBomber.sqf new file mode 100644 index 0000000000..778ca5c47c --- /dev/null +++ b/addons/zeus/functions/fnc_moduleSuicideBomber.sqf @@ -0,0 +1,102 @@ +/* + * Author: mharis001 + * Zeus module function to make unit a suicide bomber. + * + * Arguments: + * 0: Unit that is suicide bomber + * 1: Activation side (default: west) + * 2: Activation radius (default: 10) + * 3: Explosion size (0 - Small, 1 - Medium, 2 - Large) (default: 0) + * 4: Auto seek (default: false) + * + * Return Value: + * None + * + * Example: + * [unit, west, 10, 0, true] call ace_zeus_fnc_moduleSuicideBomber + * + * Public: No + */ +#include "script_component.hpp" + +#define EXPLOSIVES ["R_TBG32V_F", "M_Mo_120mm_AT", "Bo_GBU12_LGB"] +#define DISTANCE_FAR 15 +#define DISTANCE_CLOSE 2 +#define MOVE_TIME 10 + +TRACE_1("params",_this); + +if (isNull (_this select 0)) exitWith {}; + +// Prevent another suicide bomber module being attached +_unit setVariable [QGVAR(suicideBomber), true, true]; + +// One time behaviour changes +if (_autoSeek) then { + [QEGVAR(ai,setUnitPos), [_unit, "UP"], _unit] call CBA_fnc_targetEvent; + [QEGVAR(ai,setSpeedMode), [_unit, "FULL"], _unit] call CBA_fnc_targetEvent; + [QEGVAR(ai,setBehaviour), [[_unit], "CARELESS"], _unit] call CBA_fnc_targetEvent; + [QEGVAR(ai,setCombatMode), [_unit, "BLUE"], _unit] call CBA_fnc_targetEvent; + [QEGVAR(ai,AISection), [[_unit], ["TARGET", "AUTOTARGET"], false], _unit] call CBA_fnc_targetEvent; + [QEGVAR(ai,allowFleeing), [_unit, 0], _unit] call CBA_fnc_targetEvent; +}; + +// Run PFH to make unit a suicide bomber +[{ + params ["_args", "_pfhID"]; + _args params [["_unit", objNull], ["_activationSide", west], ["_activationRadius", 10], ["_explosionSize", 0], ["_autoSeek", false]]; + + // Unit deleted or killed + if (isNull _unit || {!alive _unit}) exitWith { + [_pfhID] call CBA_fnc_removePerFrameHandler; + LOG("Unit deleted or killed, PFH removed"); + }; + + // Detonation + private _nearObjects = (_unit nearObjects _activationRadius) select {side _x == _activationSide && {_x != _unit} && {alive _x}}; + if !(_nearObjects isEqualTo []) then { + createVehicle [EXPLOSIVES select _explosionSize, getPos _unit, [], 0, "CAN_COLLIDE"]; + [_pfhID] call CBA_fnc_removePerFrameHandler; + LOG("Explosion created, PFH removed"); + }; + + // Auto Seek + if (!_autoSeek) exitWith {}; + + private _memory = _unit getVariable [QGVAR(suicideBomber_memory), [nil, CBA_missionTime]]; + _memory params ["_lastMove", "_lastTime"]; + + private _range = 100 max (200 * (_unit skill "spotDistance")); // 100-200 + private _nearestObjects = (nearestObjects [_unit, [], _range]) select {side _x == _activationSide && {_x != _unit} && {alive _x}}; + + #ifdef DEBUG_MODE_FULL + if !(isNil "_lastMove") then { + drawLine3D [_unit modelToWorldVisual [0, 0, 1], _lastMove, [1, 0, 0, 1]]; + }; + for "_i" from 0 to 35 do { + drawLine3D [(_unit getRelPos [_range, _i * 10]) vectorAdd [0, 0, 1], (_unit getRelPos [_range, (_i + 1) * 10]) vectorAdd [0, 0, 1], [0, 1, 0, 1]]; + }; + for "_i" from 0 to 35 do { + drawLine3D [(_unit getRelPos [_activationRadius, _i * 10]) vectorAdd [0, 0, 1], (_unit getRelPos [_activationRadius, (_i + 1) * 10]) vectorAdd [0, 0, 1], [0, 0, 1, 1]]; + }; + for "_i" from 0 to 359 do { + if (_i >= linearConversion [_lastTime - MOVE_TIME, _lastTime, CBA_missionTime, 0, 359, true]) then { + drawLine3D [(_unit getRelPos [2, _i]) vectorAdd [0, 0, 1], (_unit getRelPos [2, _i + 1]) vectorAdd [0, 0, 1], [1, 1, 0, 1]]; + }; + }; + #endif + + if (_nearestObjects isEqualTo []) exitWith {}; + + // Get relative position close to target to avoid bug where AI wont path to a certain position + private _moveToPos = (_nearestObjects select 0) getPos [1, random 360]; + + if (isNil "_lastMove" || // No move given yet + {(_lastMove distance _moveToPos) > DISTANCE_FAR} || // New target is too far from last move + {(_lastMove distance _unit) < DISTANCE_CLOSE} || // Unit has reached last move + {CBA_missionTime >= _lastTime}) then { // Too much time passed between last move (also acts as a fail-safe if unit gets stuck) + [QEGVAR(ai,doMove), [[[_unit, _moveToPos]]], _unit] call CBA_fnc_targetEvent; + _unit setVariable [QGVAR(suicideBomber_memory), [_moveToPos, CBA_missionTime + MOVE_TIME]]; + TRACE_2("Moving unit",_moveToPos,CBA_missionTime); + }; +}, 0, _this] call CBA_fnc_addPerFrameHandler; diff --git a/addons/zeus/functions/fnc_moduleSuppressiveFire.sqf b/addons/zeus/functions/fnc_moduleSuppressiveFire.sqf index b2c9ba88a7..0dde339da6 100644 --- a/addons/zeus/functions/fnc_moduleSuppressiveFire.sqf +++ b/addons/zeus/functions/fnc_moduleSuppressiveFire.sqf @@ -116,4 +116,4 @@ if ([_unit] call EFUNC(common,isPlayer)) exitWith { }; #endif -}, localize LSTRING(ModuleSuppressiveFire_DisplayName)] call FUNC(getModuleDestination); +}, localize LSTRING(ModuleSuppressiveFire_DisplayName), "\a3\ui_f\data\IGUI\Cfg\Cursors\select_target_ca.paa", [1, 0, 0, 1], 45] call FUNC(getModuleDestination); diff --git a/addons/zeus/functions/fnc_moduleSurrender.sqf b/addons/zeus/functions/fnc_moduleSurrender.sqf index fceb72b57f..3c293bcfa0 100644 --- a/addons/zeus/functions/fnc_moduleSurrender.sqf +++ b/addons/zeus/functions/fnc_moduleSurrender.sqf @@ -15,7 +15,6 @@ * * Public: No */ - #include "script_component.hpp" params ["_logic"]; diff --git a/addons/zeus/functions/fnc_moduleTeleportPlayers.sqf b/addons/zeus/functions/fnc_moduleTeleportPlayers.sqf index c52517a7d0..eb42306931 100644 --- a/addons/zeus/functions/fnc_moduleTeleportPlayers.sqf +++ b/addons/zeus/functions/fnc_moduleTeleportPlayers.sqf @@ -15,7 +15,6 @@ * * Public: No */ - #include "script_component.hpp" params ["_logic","_uid","_group"]; diff --git a/addons/zeus/functions/fnc_moduleToggleFlashlight.sqf b/addons/zeus/functions/fnc_moduleToggleFlashlight.sqf index 4ebfd5a1c0..b66d011704 100644 --- a/addons/zeus/functions/fnc_moduleToggleFlashlight.sqf +++ b/addons/zeus/functions/fnc_moduleToggleFlashlight.sqf @@ -16,7 +16,6 @@ * * Public: No */ - #include "script_component.hpp" params ["_logic", "_toggle", "_addGear", "_target"]; diff --git a/addons/zeus/functions/fnc_moduleToggleNvg.sqf b/addons/zeus/functions/fnc_moduleToggleNvg.sqf index 16511063fe..23a2cf5a05 100644 --- a/addons/zeus/functions/fnc_moduleToggleNvg.sqf +++ b/addons/zeus/functions/fnc_moduleToggleNvg.sqf @@ -15,7 +15,6 @@ * * Public: No */ - #include "script_component.hpp" params ["_logic", "_toggle", "_target"]; diff --git a/addons/zeus/functions/fnc_moduleUnGarrison.sqf b/addons/zeus/functions/fnc_moduleUnGarrison.sqf index 08fb7ada10..082a19b2b1 100644 --- a/addons/zeus/functions/fnc_moduleUnGarrison.sqf +++ b/addons/zeus/functions/fnc_moduleUnGarrison.sqf @@ -13,7 +13,6 @@ * * Public: No */ - #include "script_component.hpp" params ["_logic"]; diff --git a/addons/zeus/functions/fnc_moduleUnconscious.sqf b/addons/zeus/functions/fnc_moduleUnconscious.sqf index 1e0955997f..72aa0599dd 100644 --- a/addons/zeus/functions/fnc_moduleUnconscious.sqf +++ b/addons/zeus/functions/fnc_moduleUnconscious.sqf @@ -15,7 +15,6 @@ * * Public: No */ - #include "script_component.hpp" params ["_logic"]; diff --git a/addons/zeus/functions/fnc_moduleZeusSettings.sqf b/addons/zeus/functions/fnc_moduleZeusSettings.sqf index 8abd714824..1aa4b399ef 100644 --- a/addons/zeus/functions/fnc_moduleZeusSettings.sqf +++ b/addons/zeus/functions/fnc_moduleZeusSettings.sqf @@ -15,7 +15,6 @@ * * Public: No */ - #include "script_component.hpp" params ["_logic"]; diff --git a/addons/zeus/functions/fnc_ui_attributeCargo.sqf b/addons/zeus/functions/fnc_ui_attributeCargo.sqf index fb57362fa1..aa4ed00090 100644 --- a/addons/zeus/functions/fnc_ui_attributeCargo.sqf +++ b/addons/zeus/functions/fnc_ui_attributeCargo.sqf @@ -1,5 +1,5 @@ /* - * Author: PabstMirror + * Author: PabstMirror, mharis001 * Initalises the ace_cargo attribute of the zeus vehicle attributes display * (the display shown on double click) * @@ -14,7 +14,6 @@ * * Public: No */ - #include "script_component.hpp" params ["_control"]; @@ -28,6 +27,10 @@ TRACE_1("",_loaded); _control ctrlRemoveAllEventHandlers "setFocus"; +private _listbox = _control controlsGroupCtrl 80086; + { - (_control controlsGroupCtrl 80086) lbAdd (str _x); + private _class = if (_x isEqualType "") then {_x} else {typeOf _x}; + private _displayName = getText (configFile >> "CfgVehicles" >> _class >> "displayName"); + _listbox lbAdd _displayName; } forEach _loaded; diff --git a/addons/zeus/functions/fnc_ui_attributePosition.sqf b/addons/zeus/functions/fnc_ui_attributePosition.sqf index ecd3458ac2..6143a7bf21 100644 --- a/addons/zeus/functions/fnc_ui_attributePosition.sqf +++ b/addons/zeus/functions/fnc_ui_attributePosition.sqf @@ -13,7 +13,6 @@ * * Public: No */ - #include "script_component.hpp" //Generic Init: diff --git a/addons/zeus/functions/fnc_ui_attributeRadius.sqf b/addons/zeus/functions/fnc_ui_attributeRadius.sqf index 3c4d296f91..4a24a21349 100644 --- a/addons/zeus/functions/fnc_ui_attributeRadius.sqf +++ b/addons/zeus/functions/fnc_ui_attributeRadius.sqf @@ -13,7 +13,6 @@ * * Public: No */ - #include "script_component.hpp" //Generic Init: diff --git a/addons/zeus/functions/fnc_ui_defendArea.sqf b/addons/zeus/functions/fnc_ui_defendArea.sqf index 13de25c2fa..e5fc26ef4e 100644 --- a/addons/zeus/functions/fnc_ui_defendArea.sqf +++ b/addons/zeus/functions/fnc_ui_defendArea.sqf @@ -13,7 +13,6 @@ * * Public: No */ - #include "script_component.hpp" //Generic Init: diff --git a/addons/zeus/functions/fnc_ui_editableObjects.sqf b/addons/zeus/functions/fnc_ui_editableObjects.sqf index 8cb243849e..6b1c30ad8c 100644 --- a/addons/zeus/functions/fnc_ui_editableObjects.sqf +++ b/addons/zeus/functions/fnc_ui_editableObjects.sqf @@ -13,7 +13,6 @@ * * Public: No */ - #include "script_component.hpp" params ["_control"]; diff --git a/addons/zeus/functions/fnc_ui_garrison.sqf b/addons/zeus/functions/fnc_ui_garrison.sqf index cc5087de65..266d564457 100644 --- a/addons/zeus/functions/fnc_ui_garrison.sqf +++ b/addons/zeus/functions/fnc_ui_garrison.sqf @@ -13,7 +13,6 @@ * * Public: No */ - #include "script_component.hpp" disableSerialization; diff --git a/addons/zeus/functions/fnc_ui_globalSetSkill.sqf b/addons/zeus/functions/fnc_ui_globalSetSkill.sqf index edca781152..91da3b04dc 100644 --- a/addons/zeus/functions/fnc_ui_globalSetSkill.sqf +++ b/addons/zeus/functions/fnc_ui_globalSetSkill.sqf @@ -13,7 +13,6 @@ * * Public: No */ - #include "script_component.hpp" params ["_control"]; diff --git a/addons/zeus/functions/fnc_ui_groupSide.sqf b/addons/zeus/functions/fnc_ui_groupSide.sqf index e5720e0720..17e6aadc15 100644 --- a/addons/zeus/functions/fnc_ui_groupSide.sqf +++ b/addons/zeus/functions/fnc_ui_groupSide.sqf @@ -13,7 +13,6 @@ * * Public: No */ - #include "script_component.hpp" #define IDCs [31201,31200,31202,31203] diff --git a/addons/zeus/functions/fnc_ui_patrolArea.sqf b/addons/zeus/functions/fnc_ui_patrolArea.sqf index c026bbce6a..1ce329047d 100644 --- a/addons/zeus/functions/fnc_ui_patrolArea.sqf +++ b/addons/zeus/functions/fnc_ui_patrolArea.sqf @@ -13,7 +13,6 @@ * * Public: No */ - #include "script_component.hpp" //Generic Init: diff --git a/addons/zeus/functions/fnc_ui_searchArea.sqf b/addons/zeus/functions/fnc_ui_searchArea.sqf index 06393ca578..9745be7166 100644 --- a/addons/zeus/functions/fnc_ui_searchArea.sqf +++ b/addons/zeus/functions/fnc_ui_searchArea.sqf @@ -13,7 +13,6 @@ * * Public: No */ - #include "script_component.hpp" //Generic Init: diff --git a/addons/zeus/functions/fnc_ui_setEngineer.sqf b/addons/zeus/functions/fnc_ui_setEngineer.sqf new file mode 100644 index 0000000000..18cd5febfa --- /dev/null +++ b/addons/zeus/functions/fnc_ui_setEngineer.sqf @@ -0,0 +1,75 @@ +/* + * Author: mharis001 + * Initalizes the "Set Engineer" Zeus module display. + * + * Arguments: + * 0: setEngineer controls group + * + * Return Value: + * None + * + * Example: + * [CONTROL] call ace_zeus_fnc_ui_setEngineer + * + * Public: No + */ +#include "script_component.hpp" + +params ["_control"]; + +// Generic init +private _display = ctrlParent _control; +private _ctrlButtonOK = _display displayCtrl 1; // IDC_OK +private _logic = GETMVAR(BIS_fnc_initCuratorAttributes_target,objNull); +TRACE_1("logicObject",_logic); + +_control ctrlRemoveAllEventHandlers "setFocus"; + +// Validate module target +private _unit = attachedTo _logic; +TRACE_1("unit",_unit); + +scopeName "Main"; +private _fnc_errorAndClose = { + params ["_msg"]; + _display closeDisplay 0; + deleteVehicle _logic; + [_msg] call FUNC(showMessage); + breakOut "Main"; +}; + +switch (false) do { + case !(isNull _unit): { + [LSTRING(NothingSelected)] call _fnc_errorAndClose; + }; + case (_unit isKindOf "CAManBase"): { + [LSTRING(OnlyInfantry)] call _fnc_errorAndClose; + }; + case (alive _unit): { + [LSTRING(OnlyAlive)] call _fnc_errorAndClose; + }; +}; + +// Specific onLoad stuff +private _fnc_onUnload = { + private _logic = GETMVAR(BIS_fnc_initCuratorAttributes_target,objNull); + if (isNull _logic) exitWith {}; + + deleteVehicle _logic; +}; + +private _fnc_onConfirm = { + params [["_ctrlButtonOK", controlNull, [controlNull]]]; + + private _display = ctrlParent _ctrlButtonOK; + if (isNull _display) exitWith {}; + + private _logic = GETMVAR(BIS_fnc_initCuratorAttributes_target,objnull); + if (isNull _logic) exitWith {}; + + private _value = lbCurSel (_display displayCtrl 86947); + [attachedTo _logic, _value + 1] call FUNC(moduleSetEngineer); // +1 since lbCurSel zero-indexed +}; + +_display displayAddEventHandler ["Unload", _fnc_onUnload]; +_ctrlButtonOK ctrlAddEventHandler ["ButtonClick", _fnc_onConfirm]; diff --git a/addons/zeus/functions/fnc_ui_suicideBomber.sqf b/addons/zeus/functions/fnc_ui_suicideBomber.sqf new file mode 100644 index 0000000000..13d61ddc63 --- /dev/null +++ b/addons/zeus/functions/fnc_ui_suicideBomber.sqf @@ -0,0 +1,151 @@ +/* + * Author: mharis001 + * Initalizes the "Suicide Bomber" Zeus module display. + * + * Arguments: + * 0: suicideBomber controls group + * + * Return Value: + * None + * + * Example: + * [CONTROL] call ace_zeus_fnc_ui_suicideBomber + * + * Public: No + */ +#include "script_component.hpp" + +#define SIDE_IDCs [83580, 83581, 83582, 83583] + +params ["_control"]; + +// Generic init +private _display = ctrlParent _control; +private _ctrlButtonOK = _display displayCtrl 1; // IDC_OK +private _logic = GETMVAR(BIS_fnc_initCuratorAttributes_target,objNull); +TRACE_1("Logic Object",_logic); + +_control ctrlRemoveAllEventHandlers "SetFocus"; + +// Validate module target +private _unit = attachedTo _logic; +TRACE_1("Unit",_unit); + +scopeName "Main"; +private _fnc_errorAndClose = { + params ["_msg"]; + _display closeDisplay 0; + deleteVehicle _logic; + [_msg] call FUNC(showMessage); + breakOut "Main"; +}; + +switch (false) do { + case !(isNull _unit): { + [LSTRING(NothingSelected)] call _fnc_errorAndClose; + }; + case (_unit isKindOf "CAManBase"): { + [LSTRING(OnlyInfantry)] call _fnc_errorAndClose; + }; + case (alive _unit): { + [LSTRING(OnlyAlive)] call _fnc_errorAndClose; + }; + case !([_unit] call EFUNC(common,isPlayer)): { + ["str_a3_cfgvehicles_moduleremotecontrol_f_errorPlayer"] call _fnc_errorAndClose; + }; + case !(_unit getVariable [QGVAR(suicideBomber), false]): { + [LSTRING(ModuleSuicideBomber_AlreadyBomber)] call _fnc_errorAndClose; + }; +}; + +// Specific onLoad stuff + +// Activation side +private _fnc_onSelection = { + params [["_activeCtrl", controlNull, [controlNull]]]; + + private _display = ctrlParent _activeCtrl; + if (isNUll _display) exitWith {}; + + // Update button colours and scales + { + private _ctrl = _display displayCtrl _x; + private _color = _ctrl getVariable "color"; + private _scale = 1; + + if (ctrlIDC _activeCtrl == _x) then { + _color set [3, 1]; + _scale = 1.2; + } else { + _color set [3, 0.5]; + }; + + _ctrl ctrlSetTextColor _color; + [_ctrl, _scale, 0.1] call BIS_fnc_ctrlSetScale; + } forEach SIDE_IDCs; + + // Save selected side + SETVAR(_display,activationSide,(ctrlIDC _activeCtrl) - 83580); +}; + +// Init side buttons +{ + private _ctrl = _display displayCtrl _x; + private _color = [_x - 83580] call BIS_fnc_sideColor; + _ctrl setVariable ["color", _color]; + _ctrl ctrlSetActiveColor _color; + + _color set [3, 0.5]; + _ctrl ctrlSetTextColor _color; + + _ctrl ctrlAddEventHandler ["ButtonClick", _fnc_onSelection]; +} forEach SIDE_IDCs; + +// Activation radius +private _fnc_onSliderMove = { + params ["_slider"]; + + private _display = ctrlParent _slider; + (_display displayCtrl 83573) ctrlSetText (str round sliderPosition _slider); +}; + +private _slider = _display displayCtrl 83572; +private _edit = _display displayCtrl 83573; + +_slider sliderSetRange [5, 50]; +_slider sliderSetSpeed [1, 1]; +_slider sliderSetPosition 10; +_edit ctrlSetText "10"; + +_slider ctrlAddEventHandler ["SliderPosChanged", _fnc_onSliderMove]; + +// Confirm and Cancel +private _fnc_onUnload = { + private _logic = GETMVAR(BIS_fnc_initCuratorAttributes_target,objNull); + if (isNull _logic) exitWith {}; + + deleteVehicle _logic; +}; + +private _fnc_onConfirm = { + params [["_ctrlButtonOK", controlNull, [controlNull]]]; + + private _display = ctrlParent _ctrlButtonOK; + if (isNull _display) exitWith {}; + + private _logic = GETMVAR(BIS_fnc_initCuratorAttributes_target,objNull); + if (isNull _logic) exitWith {}; + + private _unit = attachedTo _logic; + private _side = [GETVAR(_display,activationSide,1)] call BIS_fnc_sideType; + private _radius = round sliderPosition (_display displayCtrl 83572); + private _expSize = lbCurSel (_display displayCtrl 83574); + private _autoSeek = lbCurSel (_display displayCtrl 83575) > 0; + + [_unit, _side, _radius, _expSize, _autoSeek] call FUNC(moduleSuicideBomber); + + deleteVehicle _logic; +}; + +_display displayAddEventHandler ["Unload", _fnc_onUnload]; +_ctrlButtonOK ctrlAddEventHandler ["ButtonClick", _fnc_onConfirm]; diff --git a/addons/zeus/functions/fnc_ui_teleportPlayers.sqf b/addons/zeus/functions/fnc_ui_teleportPlayers.sqf index d323a9a467..99233482a4 100644 --- a/addons/zeus/functions/fnc_ui_teleportPlayers.sqf +++ b/addons/zeus/functions/fnc_ui_teleportPlayers.sqf @@ -1,6 +1,6 @@ /* - * Author: SilentSpike - * Initalises the `teleport players` zeus module display + * Author: SilentSpike, mharis001 + * Initalizes the "Teleport Players" Zeus module display. * * Arguments: * 0: teleportPlayers controls group @@ -13,7 +13,6 @@ * * Public: No */ - #include "script_component.hpp" params ["_control"]; @@ -37,6 +36,33 @@ private _listbox = _display displayCtrl 16189; _listbox lbSetCurSel 0; (_display displayCtrl 16188) cbSetChecked (_logic getVariable ["tpGroup",false]); +private _fnc_onKeyUp = { + params ["_display"]; + + private _listbox = _display displayCtrl 16189; + private _edit = _display displayCtrl 16190; + private _text = toLower ctrlText _edit; + + lbClear _listbox; + + { + if (alive _x) then { + if ([toLower name _x, _text] call CBA_fnc_find > -1) then { + _listbox lbSetData [_listbox lbAdd (name _x), getPlayerUID _x]; + }; + }; + } forEach ([] call CBA_fnc_players); + + // Alert user to zero search matches + if (lbSize _listbox == 0) then { + _edit ctrlSetTooltip (localize LSTRING(ModuleTeleportPlayers_noneFound)); + _edit ctrlSetTextColor [1, 0, 0, 1]; + } else { + _edit ctrlSetTooltip ""; + _edit ctrlSetTextColor [1, 1, 1, 1]; + }; +}; + private _fnc_onUnload = { params ["_display"]; @@ -64,5 +90,6 @@ private _fnc_onConfirm = { [_logic, _uid, _group] call FUNC(moduleTeleportPlayers); }; +_display displayAddEventHandler ["KeyUp", _fnc_onKeyUp]; _display displayAddEventHandler ["unload", _fnc_onUnload]; _ctrlButtonOK ctrlAddEventHandler ["buttonclick", _fnc_onConfirm]; diff --git a/addons/zeus/functions/fnc_ui_toggleFlashlight.sqf b/addons/zeus/functions/fnc_ui_toggleFlashlight.sqf index 9dff6808e4..a40a55ac40 100644 --- a/addons/zeus/functions/fnc_ui_toggleFlashlight.sqf +++ b/addons/zeus/functions/fnc_ui_toggleFlashlight.sqf @@ -13,7 +13,6 @@ * * Public: No */ - #include "script_component.hpp" disableSerialization; diff --git a/addons/zeus/functions/fnc_ui_toggleNvg.sqf b/addons/zeus/functions/fnc_ui_toggleNvg.sqf index 822e552dac..fcfbc52c83 100644 --- a/addons/zeus/functions/fnc_ui_toggleNvg.sqf +++ b/addons/zeus/functions/fnc_ui_toggleNvg.sqf @@ -13,7 +13,6 @@ * * Public: No */ - #include "script_component.hpp" disableSerialization; diff --git a/addons/zeus/functions/fnc_zeusAttributes.sqf b/addons/zeus/functions/fnc_zeusAttributes.sqf index 5481120cd3..8e80744e66 100644 --- a/addons/zeus/functions/fnc_zeusAttributes.sqf +++ b/addons/zeus/functions/fnc_zeusAttributes.sqf @@ -16,7 +16,6 @@ * * Public: No */ - #include "script_component.hpp" TRACE_1("params",_this); diff --git a/addons/zeus/stringtable.xml b/addons/zeus/stringtable.xml index 3981cb63ef..38696f4038 100644 --- a/addons/zeus/stringtable.xml +++ b/addons/zeus/stringtable.xml @@ -1238,6 +1238,262 @@ 解除驻军驻守状态 주둔해제 + + No players found + 沒有玩家找到 + 没有玩家找到 + Nije pronađen nijedan igrač + Aucun joueur trouvé + Keine Spieler gefunden + Nincsenek játékosok + Nessun giocatore trovato + プレーヤーが見つかりません + 플레이어가 없습니다. + Nie znaleziono graczy + Nenhum jogador encontrado + Игроки не найдены + No se encontraron jugadores + + + Assign Repair Vehicle + 分配維修車輛 + 分配维修车辆 + Přiřaďte opravárenské vozidlo + Affecter un véhicule de réparation + Fahrzeug reparieren zuweisen + Hozzárendelés javítóműhöz + Assegna veicolo di riparazione + 修理車両を割り当てる + 수리 차량 지정 + Przydziel pojazd do naprawy + Atribuir veículo de reparação + Назначить ремонтный автомобиль + Asignar vehículo de reparación + + + Assign Repair Facility + 分配修理設施 + 分配修理设施 + Přiřaďte opravu + Affecter une installation de réparation + Zuweisen von Reparatureinrichtung + Hozzárendelés javításhoz + Assegna struttura di riparazione + 修理施設を割り当てる + 수리 시설 지정 + Przydziel naprawę + Atribuir facilidade de reparação + Назначить ремонтный комплекс + Asignar instalación de reparación + + + Assign Engineer + 指派工程師 + 指派工程师 + Přiřadit inženýra + Affecter ingénieur + Engineer zuweisen + Engedélyezze a mérnököt + Assign Engineer + 担当エンジニア + 엔지니어 지정 + Przydziel inżyniera + Encarregar o engenheiro + Назначить инженера + Asignar Ingeniero + + + Engineer Skill + 工程師技能 + 工程师技能 + Inženýrská dovednost + Compétence d'ingénieur + Ingenieur Fähigkeit + Mérnöki készség + Abilità ingegnere + エンジニアのスキル + 기술자의 기술 + Umiejętność inżyniera + Habilidade do engenheiro + Инженерное мастерство + Habilidad de Ingeniero + + + Full Heal + 完全治愈 + 完全治愈 + Plné uzdravení + Guérison complète + Vollständige Heilung + Teljes gyógyítás + Guarigione completa + フルヒール + 완전 치유 + Pełne uleczenie + Cura completa + Полное исцеление + Totalmente curado + + + Suicide Bomber + 自殺式炸彈襲擊者 + 自杀式炸弹袭击者 + Samovražedný bombardér + Kamikaze + Selbstmordattentäter + Öngyilkos merénylő + Kamikaze + 自爆テロ犯 + 자살 폭탄 + Samobójca + Bombardeiro suicida + Террорист-смертник + Bombardeo suicida + + + Activation Side + 激活方 + 激活方 + Aktivační strana + Activation latérale + Aktivierungsseite + Aktiválási oldal + Lato di attivazione + アクティベーションサイド + 활성화면 + Strona aktywacji + Lado de ativação + Сторона активации + Lado de activación + + + Activation Radius + 激活半徑 + 激活半径 + Aktivační poloměr + Rayon d'activation + Aktivierungsradius + Aktiválási sugár + Raggio di attivazione + 活性化半径 + 활성화 반경 + Promień aktywacji + Rádio de ativação + Радиус активации + Radio de activación + + + Explosion Size + 爆炸尺寸 + 爆炸尺寸 + Velikost výbuchu + Taille d'explosion + Explosionsgröße + Robbanásméret + Dimensione di esplosione + 爆発サイズ + 폭발 크기 + Rozmiar wybuchu + Tamanho da Explosão + Размер взрыва + Tamaño de Explosión + + + Auto Seek + 自動尋求 + 自动寻求 + Auto Seek + Recherche automatique + Automatische Suche + Automatikus keresés + Ricerca automatica + オートシーク + 자동 탐색 + Auto Seek + Busca automática + Автоматический поиск + Búsqueda automática + + + Unit will actively try to find and move towards nearby units of the activation side. The range of Auto Seek is based on the unit's spot distance skill with a minimum of 100 meters. + 單位將主動嘗試尋找並移動到附近的激活方單位。自動搜索的範圍是基於單位的距離技能,最少100米。 + 单位将主动尝试寻找并移动到附近的激活方单位。自动搜索的范围是基于单位的距离技能,最少100米。 + Jednotka se bude aktivně snažit najít a přejít na blízké jednotky na straně aktivace. Rozsah Auto Seek je založen na dovednosti spotové vzdálenosti jednotky s minimem 100 metrů. + L'unité essayera activement de trouver et de se déplacer vers les unités à proximité du côté d'activation. La portée d'Auto Seek est basée sur la compétence de distance de l'unité avec un minimum de 100 mètres. + Die Einheit versucht aktiv, in der Nähe befindliche Einheiten der Aktivierungsseite zu finden und sich dorthin zu bewegen. Der Bereich der automatischen Suche basiert auf der Fähigkeit der Zielentfernung der Einheit mit einer Mindestentfernung von 100 Metern. + Az egység aktívan megpróbálja megtalálni és elmozdulni az aktivációs oldal közeli egységei felé.Az automatikus keresési tartomány az egység helyszíni szakértelmén alapul, legalább 100 méterrel. + L'unità cercherà attivamente di trovare e spostarsi verso le unità vicine del lato di attivazione. La gamma di Auto Seek si basa sull'abilità a distanza spot dell'unità con un minimo di 100 metri. + ユニットはアクティベーション側の近くのユニットを見つけて移動しようと積極的に試みます。オートシークの範囲は、ユニットのスポット距離のスキルに基づいており、最低100メートルです。 + 유닛은 액티브 측의 근접 유닛을 향해 적극적으로 찾아서 이동하려고 시도합니다. 자동 시크의 범위는 유닛의 스팟 거리 스킬을 기준으로 최소 100 미터입니다. + Jednostka będzie aktywnie próbowała znaleźć i ruszyć w kierunku pobliskich jednostek strony aktywacji. Zasięg Auto Seek opiera się na umiejętności punktowej odległości jednostki z minimum 100 metrów. + A unidade tentará ativamente encontrar e se mover para as unidades próximas do lado da ativação. O alcance da Auto Seek é baseado na habilidade de distância do ponto da unidade com um mínimo de 100 metros. + Устройство будет активно пытаться найти и перейти к соседним единицам активации. Диапазон автоматического поиска основан на умении снимать расстояние на расстоянии не менее 100 метров. + La unidad intentará buscar activamente y moverse hacia las unidades cercanas del lado de activación. El rango de Auto Seek se basa en la habilidad de distancia al punto de la unidad con un mínimo de 100 metros. + + + Small + + + Malý + Petit + Klein + Kicsi + Piccolo + 小さい + 작은 + Mały + Pequeno + Маленький + Pequeña + + + Medium + + + Střední + Moyen + Mittel + Közepes + medio + + 매질 + Średni + Médio + средний + Medio + + + Large + + + Velký + Grand + Groß + Nagy + Grande + + + Duży + ampla + большой + Grande + + + Unit is already a suicide bomber + 這個單位已經是自殺炸彈手了 + 这个单位已经是自杀炸弹手了 + Jednotka je již samovražedným bombardérem + L'unité est déjà un kamikaze + Die Einheit ist bereits ein Selbstmordattentäter + Az egység már öngyilkos bombázó + L'unità è già un kamikaze + ユニットはすでに自爆テロである + 유닛은 이미 자살 폭탄 테러범이다. + Jednostka jest już zamachowcem-samobójcą + A unidade já é um suicida + Единица уже является террористом-смертником + La unidad ya es un terrorista suicida + Add full ACE Arsenal diff --git a/addons/zeus/ui/Icon_Module_Zeus_Heal_ca.paa b/addons/zeus/ui/Icon_Module_Zeus_Heal_ca.paa new file mode 100644 index 0000000000000000000000000000000000000000..03f808203cb8927e2e7857e5ca42e01571cebb66 GIT binary patch literal 5625 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 literal 0 HcmV?d00001 diff --git a/addons/zeus/ui/RscAttributes.hpp b/addons/zeus/ui/RscAttributes.hpp index 2bb2c97d85..87ce44e54a 100644 --- a/addons/zeus/ui/RscAttributes.hpp +++ b/addons/zeus/ui/RscAttributes.hpp @@ -8,6 +8,8 @@ class RscXSliderH; class RscCheckBox; class RscActivePicture; class RscMapControl; +class RscPicture; +class ctrlToolbox; class RscDisplayAttributes { class Controls { @@ -280,7 +282,7 @@ class GVAR(RscGroupSide): RscDisplayAttributes { }; class BLUFOR: RscActivePicture { idc = 31200; - text = "\a3\Ui_f\data\Map\Markers\NATO\b_unknown.paa"; + text = "\a3\Ui_F_Curator\Data\Displays\RscDisplayCurator\side_west_ca.paa"; x = W_PART(12.5); y = H_PART(0.25); w = W_PART(2); @@ -289,7 +291,7 @@ class GVAR(RscGroupSide): RscDisplayAttributes { }; class OPFOR: BLUFOR { idc = 31201; - text = "\a3\Ui_f\data\Map\Markers\NATO\o_unknown.paa"; + text = "\a3\Ui_F_Curator\Data\Displays\RscDisplayCurator\side_east_ca.paa"; x = W_PART(15.5); y = H_PART(0.25); w = W_PART(2); @@ -298,7 +300,7 @@ class GVAR(RscGroupSide): RscDisplayAttributes { }; class Independent: BLUFOR { idc = 31202; - text = "\a3\Ui_f\data\Map\Markers\NATO\n_unknown.paa"; + text = "\a3\Ui_F_Curator\Data\Displays\RscDisplayCurator\side_guer_ca.paa"; x = W_PART(18.5); y = H_PART(0.25); w = W_PART(2); @@ -307,7 +309,7 @@ class GVAR(RscGroupSide): RscDisplayAttributes { }; class Civilian: BLUFOR { idc = 31203; - text = "\a3\Ui_f\data\Map\Markers\NATO\n_unknown.paa"; + text = "\a3\Ui_F_Curator\Data\Displays\RscDisplayCurator\side_civ_ca.paa"; x = W_PART(21.5); y = H_PART(0.25); w = W_PART(2); @@ -394,16 +396,41 @@ class GVAR(RscTeleportPlayers): RscDisplayAttributes { w = W_PART(26); h = H_PART(5.9); }; - class Label: Title { + class SearchBackground: RscText { + idc = -1; + x = 0; + y = H_PART(7.1); + w = W_PART(1); + h = H_PART(1); + colorBackground[] = {0, 0, 0, 0.5}; + }; + class SearchPicture: RscPicture { + idc = -1; + text = "\a3\Ui_f\data\GUI\RscCommon\RscButtonSearch\search_start_ca.paa"; + x = 0; + y = H_PART(7.1); + w = W_PART(1); + h = H_PART(1); + }; + class Search: RscEdit { + idc = 16190; + x = W_PART(1.2); + y = H_PART(7.1); + w = W_PART(14.5); + h = H_PART(1); + autocomplete = ""; + }; + class LabelGroup: Title { idc = -1; text = CSTRING(ModuleTeleportPlayers_group); toolTip = CSTRING(ModuleTeleportPlayers_group_desc); + x = W_PART(15.9); y = H_PART(7.1); - w = W_PART(10); + w = W_PART(9); }; class UseGroup: RscCheckBox { idc = 16188; - x = W_PART(10.1); + x = W_PART(25); y = H_PART(7.1); w = W_PART(1); h = H_PART(1); @@ -668,3 +695,179 @@ class GVAR(RscToggleFlashlight): RscDisplayAttributes { class ButtonCancel: ButtonCancel {}; }; }; + +class GVAR(RscSetEngineer): RscDisplayAttributes { + onLoad = QUOTE([ARR_3('onLoad', _this, QUOTE(QGVAR(RscSetEngineer)))] call FUNC(zeusAttributes)); + onUnload = QUOTE([ARR_3('onUnload', _this, QUOTE(QGVAR(RscSetEngineer)))] call FUNC(zeusAttributes)); + class Controls: Controls { + class Background: Background {}; + class Title: Title {}; + class Content: Content { + class Controls { + class setEngineer: RscControlsGroupNoScrollbars { + onSetFocus = QUOTE(_this call FUNC(ui_setEngineer)); + idc = 86946; + x = 0; + y = 0; + w = W_PART(26); + h = H_PART(1.2); + class controls { + class Label: RscText { + idc = -1; + text = CSTRING(ModuleSetEngineer_skill); + toolTip = ECSTRING(repair,AssignEngineerRole_role_Description); + x = 0; + y = H_PART(0.1); + w = W_PART(10); + h = H_PART(1); + colorBackground[] = {0, 0, 0, 0.5}; + }; + class Roles: ctrlToolbox { + idc = 86947; + x = W_PART(10.1); + y = H_PART(0.1); + w = W_PART(15.9); + h = H_PART(1); + rows = 1; + columns = 2; + strings[] = {ECSTRING(repair,AssignEngineerRole_role_engineer), ECSTRING(repair,AssignEngineerRole_role_advanced)}; + }; + }; + }; + }; + }; + class ButtonOK: ButtonOK {}; + class ButtonCancel: ButtonCancel {}; + }; +}; + +class GVAR(RscSuicideBomber): RscDisplayAttributes { + onLoad = QUOTE([ARR_3('onLoad', _this, QUOTE(QGVAR(RscSuicideBomber)))] call FUNC(zeusAttributes)); + onUnload = QUOTE([ARR_3('onUnload', _this, QUOTE(QGVAR(RscSuicideBomber)))] call FUNC(zeusAttributes)); + class Controls: Controls { + class Background: Background {}; + class Title: Title {}; + class Content: Content { + class Controls { + class suicideBomber: RscControlsGroupNoScrollbars { + onSetFocus = QUOTE(_this call FUNC(ui_suicideBomber)); + idc = 83470; + x = 0; + y = 0; + w = W_PART(26); + h = H_PART(5.8); + class controls { + class ActivationSide: RscControlsGroupNoScrollbars { + idc = 83571; + x = 0; + y = 0; + w = W_PART(26); + h = H_PART(2.5); + class controls { + class Label: RscText { + idc = -1; + text = CSTRING(ModuleSuicideBomber_ActivationSide); + x = 0; + y = 0; + w = W_PART(10); + h = H_PART(2.5); + colorBackground[] = {0, 0, 0, 0.5}; + }; + class Background: RscText { + idc = -1; + x = W_PART(10); + y = 0; + w = W_PART(16); + h = H_PART(2.5); + colorBackground[] = {1, 1, 1, 0.1}; + }; + class BLUFOR: RscActivePicture { + idc = 83581; + text = "\a3\Ui_F_Curator\Data\Displays\RscDisplayCurator\side_west_ca.paa"; + x = W_PART(12.5); + y = H_PART(0.25); + w = W_PART(2); + h = H_PART(2); + tooltip = "$STR_WEST"; + }; + class OPFOR: BLUFOR { + idc = 83580; + text = "\a3\Ui_F_Curator\Data\Displays\RscDisplayCurator\side_east_ca.paa"; + x = W_PART(15.5); + tooltip = "$STR_EAST"; + }; + class Independent: BLUFOR { + idc = 83582; + text = "\a3\Ui_F_Curator\Data\Displays\RscDisplayCurator\side_guer_ca.paa"; + x = W_PART(18.5); + tooltip = "$STR_guerrila"; + }; + class Civilian: BLUFOR { + idc = 83583; + text = "\a3\Ui_F_Curator\Data\Displays\RscDisplayCurator\side_civ_ca.paa"; + x = W_PART(21.5); + tooltip = "$STR_Civilian"; + }; + }; + }; + class DistanceLabel: RscText { + idc = -1; + text = CSTRING(ModuleSuicideBomber_ActivationRadius); + x = 0; + y = H_PART(2.6); + w = W_PART(10); + h = H_PART(1); + colorBackground[] = {0, 0, 0, 0.5}; + }; + class DistanceSlider: RscXSliderH { + idc = 83572; + x = W_PART(10.1); + y = H_PART(2.6); + w = W_PART(13.9); + h = H_PART(1); + }; + class DistanceEdit: RscEdit { + idc = 83573; + x = W_PART(24.1); + y = H_PART(2.6); + w = W_PART(1.9); + h = H_PART(1); + autocomplete = ""; + maxChars = 3; + canModify = 0; + }; + class ExplosionLabel: DistanceLabel { + idc = -1; + text = CSTRING(ModuleSuicideBomber_ExplosionSize); + y = H_PART(3.7); + }; + class Explosion: ctrlToolbox { + idc = 83574; + x = W_PART(10.1); + y = H_PART(3.7); + w = W_PART(15.9); + h = H_PART(1); + rows = 1; + columns = 3; + strings[] = {CSTRING(ModuleSuicideBomber_Small), CSTRING(ModuleSuicideBomber_Medium), CSTRING(ModuleSuicideBomber_Large)}; + }; + class AutoSeekLabel: DistanceLabel { + idc = -1; + text = CSTRING(ModuleSuicideBomber_AutoSeek); + y = H_PART(4.8); + toolTip = CSTRING(ModuleSuicideBomber_AutoSeek_tooltip); + }; + class AutoSeek: Explosion { + idc = 83575; + y = H_PART(4.8); + columns = 2; + strings[] = {ECSTRING(common,Disabled), ECSTRING(common,Enabled)}; + }; + }; + }; + }; + }; + class ButtonOK: ButtonOK {}; + class ButtonCancel: ButtonCancel {}; + }; +}; From ee7a1f6acbfcd884fc41f20db0d9996842c53413 Mon Sep 17 00:00:00 2001 From: Dystopian Date: Sat, 24 Feb 2018 21:39:03 +0300 Subject: [PATCH 055/235] Improve class initialization (#6085) --- addons/cargo/CfgVehicles.hpp | 19 ---- addons/cargo/XEH_postInit.sqf | 104 +++++++++++++++++---- addons/cargo/functions/fnc_initObject.sqf | 33 +------ addons/cargo/functions/fnc_initVehicle.sqf | 27 +----- 4 files changed, 90 insertions(+), 93 deletions(-) diff --git a/addons/cargo/CfgVehicles.hpp b/addons/cargo/CfgVehicles.hpp index 8588296154..fd2e53bc57 100644 --- a/addons/cargo/CfgVehicles.hpp +++ b/addons/cargo/CfgVehicles.hpp @@ -569,16 +569,6 @@ class CfgVehicles { GVAR(size) = 50; }; - class Ruins_F; - class Land_Cargo20_military_ruins_F: Ruins_F { - class EventHandlers { - class CBA_Extended_EventHandlers: CBA_Extended_EventHandlers {}; - }; - - GVAR(space) = 49; - GVAR(size) = 50; - }; - class Land_Cargo20_orange_F: Cargo_base_F { class EventHandlers { class CBA_Extended_EventHandlers: CBA_Extended_EventHandlers {}; @@ -685,15 +675,6 @@ class CfgVehicles { GVAR(size) = 100; }; - class Land_Cargo40_military_ruins_F: Ruins_F { - class EventHandlers { - class CBA_Extended_EventHandlers: CBA_Extended_EventHandlers {}; - }; - - GVAR(space) = 99; - GVAR(size) = 100; - }; - class Land_Cargo40_orange_F: Cargo_base_F { class EventHandlers { class CBA_Extended_EventHandlers: CBA_Extended_EventHandlers {}; diff --git a/addons/cargo/XEH_postInit.sqf b/addons/cargo/XEH_postInit.sqf index 9d531a8e1a..829991ee87 100644 --- a/addons/cargo/XEH_postInit.sqf +++ b/addons/cargo/XEH_postInit.sqf @@ -61,23 +61,91 @@ [QGVAR(initObject), DFUNC(initObject)] call CBA_fnc_addEventHandler; [QGVAR(initVehicle), DFUNC(initVehicle)] call CBA_fnc_addEventHandler; -// Add all the vehicle init EHs (require initPost for set/get variables) -["LandVehicle", "initPost", DFUNC(initVehicle), nil, nil, true] call CBA_fnc_addClassEventHandler; -["Air", "initPost", DFUNC(initVehicle), nil, nil, true] call CBA_fnc_addClassEventHandler; -["Ship_F", "initPost", DFUNC(initVehicle), nil, nil, true] call CBA_fnc_addClassEventHandler; -// Add all the object init EHs -["StaticWeapon", "initPost", DFUNC(initObject), nil, nil, true] call CBA_fnc_addClassEventHandler; -["Land_PortableLight_single_F", "initPost", DFUNC(initObject), nil, nil, true] call CBA_fnc_addClassEventHandler; -["ACE_ConcertinaWireCoil", "initPost", DFUNC(initObject), nil, nil, true] call CBA_fnc_addClassEventHandler; +GVAR(vehicleAction) = [ + QGVAR(openMenu), localize LSTRING(openMenu), "", + { + //IGNORE_PRIVATE_WARNING ["_target", "_player"]; + GVAR(interactionVehicle) = _target; + GVAR(interactionParadrop) = false; + createDialog QGVAR(menu); + }, + { + //IGNORE_PRIVATE_WARNING ["_target", "_player"]; + GVAR(enable) && + {(_target getVariable [QGVAR(hasCargo), getNumber (configFile >> "CfgVehicles" >> (typeOf _target) >> QGVAR(hasCargo)) == 1])} && + {locked _target < 2} && + {([_player, _target] call EFUNC(interaction,getInteractionDistance)) < MAX_LOAD_DISTANCE} && + {alive _target} && + {[_player, _target, ["isNotSwimming"]] call EFUNC(common,canInteractWith)} + } +] call EFUNC(interact_menu,createAction); -// Add all the vehicle/object init EHs -["ThingX", "initPost", { - _this call DFUNC(initObject); _this call DFUNC(initVehicle); -}, nil, nil, true] call CBA_fnc_addClassEventHandler; -["Land_PaperBox_closed_F", "initPost", { - _this call DFUNC(initObject); _this call DFUNC(initVehicle); -}, nil, nil, true] call CBA_fnc_addClassEventHandler; -["PlasticCase_01_base_F", "initPost", { - _this call DFUNC(initObject); _this call DFUNC(initVehicle); -}, nil, nil, true] call CBA_fnc_addClassEventHandler; +GVAR(objectAction) = [ + QGVAR(load), localize LSTRING(loadObject), "a3\ui_f\data\IGUI\Cfg\Actions\loadVehicle_ca.paa", + { + params ["_target", "_player"]; + [_player, _target] call FUNC(startLoadIn); + }, + { + //IGNORE_PRIVATE_WARNING ["_target", "_player"]; + GVAR(enable) && + {(_target getVariable [QGVAR(canLoad), getNumber (configFile >> "CfgVehicles" >> (typeOf _target) >> QGVAR(canLoad))]) in [true, 1]} && + {locked _target < 2} && + {alive _target} && + {[_player, _target, ["isNotSwimming"]] call EFUNC(common,canInteractWith)} && + {0 < { + private _type = typeOf _x; + private _hasCargoPublic = _x getVariable [QGVAR(hasCargo), false]; + private _hasCargoConfig = getNumber (configFile >> "CfgVehicles" >> _type >> QGVAR(hasCargo)) == 1; + (_hasCargoPublic || _hasCargoConfig) && {_x != _target} && + {([_target, _x] call EFUNC(interaction,getInteractionDistance)) < MAX_LOAD_DISTANCE} + } count (nearestObjects [_player, GVAR(cargoHolderTypes), (MAX_LOAD_DISTANCE + 10)])} + }, + LINKFUNC(addCargoVehiclesActions) +] call EFUNC(interact_menu,createAction); + + +private _initVehicleClasses = ["ThingX", "LandVehicle", "Air", "Ship_F"]; +private _initObjectClasses = ["ThingX", "StaticWeapon"]; +{ + [_x, "initPost", DFUNC(initVehicle), nil, nil, true] call CBA_fnc_addClassEventHandler; +} forEach _initVehicleClasses; +{ + [_x, "initPost", DFUNC(initObject), nil, nil, true] call CBA_fnc_addClassEventHandler; +} forEach _initObjectClasses; + +// find all remaining configured classes and init them +{ + private _class = configName _x; + // init vehicle + if ( + 1 == getNumber (_x >> QGVAR(hasCargo)) + && {{if (_class isKindOf _x) exitWith {false}; true} forEach _initVehicleClasses} + ) then { + if (_class isKindOf "Static") then { + if (2 == getNumber (_x >> "scope")) then { + [_class, 0, ["ACE_MainActions"], GVAR(vehicleAction)] call EFUNC(interact_menu,addActionToClass); + GVAR(initializedVehicleClasses) pushBack _class; + }; + } else { + [_class, "initPost", DFUNC(initVehicle), nil, nil, true] call CBA_fnc_addClassEventHandler; + _initVehicleClasses pushBack _class; + }; + }; + // init object + if ( + 1 == getNumber (_x >> QGVAR(canLoad)) + && {{if (_class isKindOf _x) exitWith {false}; true} forEach _initObjectClasses} + ) then { + if (_class isKindOf "Static") then { + if (2 == getNumber (_x >> "scope")) then { + [_class, 0, ["ACE_MainActions"], GVAR(objectAction)] call EFUNC(interact_menu,addActionToClass); + GVAR(initializedItemClasses) pushBack _class; + }; + } else { + [_class, "initPost", DFUNC(initObject), nil, nil, true] call CBA_fnc_addClassEventHandler; + _initObjectClasses pushBack _class; + }; + }; +} forEach ("true" configClasses (configFile >> "CfgVehicles")); diff --git a/addons/cargo/functions/fnc_initObject.sqf b/addons/cargo/functions/fnc_initObject.sqf index d0e1e66a8f..b5339e8b28 100644 --- a/addons/cargo/functions/fnc_initObject.sqf +++ b/addons/cargo/functions/fnc_initObject.sqf @@ -41,38 +41,9 @@ if (_object getVariable [QGVAR(initObject),false]) exitWith {}; if (_canLoadConfig) then { GVAR(initializedItemClasses) pushBack _type; TRACE_1("Adding load cargo action to class", _type); + [_type, 0, ["ACE_MainActions"], GVAR(objectAction)] call EFUNC(interact_menu,addActionToClass); } else { _object setVariable [QGVAR(initObject),true]; TRACE_1("Adding load cargo action to object", _object); + [_object, 0, ["ACE_MainActions"], GVAR(objectAction)] call EFUNC(interact_menu,addActionToObject); }; - -// Vehicles with passengers inside are prevented from being loaded in `fnc_canLoadItemIn` -private _condition = { - //IGNORE_PRIVATE_WARNING ["_target", "_player"]; - GVAR(enable) && - {(_target getVariable [QGVAR(canLoad), getNumber (configFile >> "CfgVehicles" >> (typeOf _target) >> QGVAR(canLoad))]) in [true, 1]} && - {locked _target < 2} && - {alive _target} && - {[_player, _target, ["isNotSwimming"]] call EFUNC(common,canInteractWith)} && - {0 < { - private _type = typeOf _x; - private _hasCargoPublic = _x getVariable [QGVAR(hasCargo), false]; - private _hasCargoConfig = getNumber (configFile >> "CfgVehicles" >> _type >> QGVAR(hasCargo)) == 1; - (_hasCargoPublic || _hasCargoConfig) && {_x != _target} && - {([_target, _x] call EFUNC(interaction,getInteractionDistance)) < MAX_LOAD_DISTANCE} - } count (nearestObjects [_player, GVAR(cargoHolderTypes), (MAX_LOAD_DISTANCE + 10)])} -}; -private _statement = { - params ["_target", "_player"]; - [_player, _target] call FUNC(startLoadIn); -}; -private _text = localize LSTRING(loadObject); -private _icon = "a3\ui_f\data\IGUI\Cfg\Actions\loadVehicle_ca.paa"; - -private _action = [QGVAR(load), _text, _icon, _statement, _condition, {call FUNC(addCargoVehiclesActions)}] call EFUNC(interact_menu,createAction); -if (_canLoadConfig) then { - [_type, 0, ["ACE_MainActions"], _action] call EFUNC(interact_menu,addActionToClass); -} else { - [_object, 0, ["ACE_MainActions"], _action] call EFUNC(interact_menu,addActionToObject); -}; - diff --git a/addons/cargo/functions/fnc_initVehicle.sqf b/addons/cargo/functions/fnc_initVehicle.sqf index 474b1b0d8f..2f6398d48b 100644 --- a/addons/cargo/functions/fnc_initVehicle.sqf +++ b/addons/cargo/functions/fnc_initVehicle.sqf @@ -61,34 +61,11 @@ if (_vehicle getVariable [QGVAR(initVehicle),false]) exitWith {}; if (_hasCargoConfig) then { GVAR(initializedVehicleClasses) pushBack _type; TRACE_1("Adding unload cargo action to class", _type); + [_type, 0, ["ACE_MainActions"], GVAR(vehicleAction)] call EFUNC(interact_menu,addActionToClass); } else { _vehicle setVariable [QGVAR(initVehicle),true]; TRACE_1("Adding unload cargo action to object", _vehicle); -}; - -private _condition = { - //IGNORE_PRIVATE_WARNING ["_target", "_player"]; - GVAR(enable) && - {(_target getVariable [QGVAR(hasCargo), getNumber (configFile >> "CfgVehicles" >> (typeOf _target) >> QGVAR(hasCargo)) == 1])} && - {locked _target < 2} && - {([_player, _target] call EFUNC(interaction,getInteractionDistance)) < MAX_LOAD_DISTANCE} && - {alive _target} && - {[_player, _target, ["isNotSwimming"]] call EFUNC(common,canInteractWith)} -}; -private _statement = { - //IGNORE_PRIVATE_WARNING ["_target", "_player"]; - GVAR(interactionVehicle) = _target; - GVAR(interactionParadrop) = false; - createDialog QGVAR(menu); -}; -private _text = localize LSTRING(openMenu); -private _icon = ""; - -private _action = [QGVAR(openMenu), _text, _icon, _statement, _condition] call EFUNC(interact_menu,createAction); -if (_hasCargoConfig) then { - [_type, 0, ["ACE_MainActions"], _action] call EFUNC(interact_menu,addActionToClass); -} else { - [_vehicle, 0, ["ACE_MainActions"], _action] call EFUNC(interact_menu,addActionToObject); + [_vehicle, 0, ["ACE_MainActions"], GVAR(vehicleAction)] call EFUNC(interact_menu,addActionToObject); }; // Add the paradrop self interaction for planes and helicopters From d4825f920ffd95450b29b6a5e0737a090aa1c9d7 Mon Sep 17 00:00:00 2001 From: Josuan Albin Date: Sun, 25 Feb 2018 20:19:16 +0100 Subject: [PATCH 056/235] Add note in options menu doc (#6167) It's deprecated, better indicate it. --- docs/wiki/feature/optionsmenu.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/docs/wiki/feature/optionsmenu.md b/docs/wiki/feature/optionsmenu.md index 1ccf255882..68aa84ab71 100644 --- a/docs/wiki/feature/optionsmenu.md +++ b/docs/wiki/feature/optionsmenu.md @@ -12,6 +12,11 @@ version: patch: 0 --- +
+
Note:
+

Deprecated and replaced with CBA Settings System in 3.12.0!

+
+ ## 1. Overview Adds the options menu used by other components. From a2804f6097de57a24144ebdb15494ebba79c178e Mon Sep 17 00:00:00 2001 From: Dystopian Date: Mon, 26 Feb 2018 21:12:21 +0300 Subject: [PATCH 057/235] Add Camping Light interaction (#6078) * Add camping light interaction * Add dragging * Add cargo loading * Handle Camping_Light_off objects * Fix work in MP * Replace action with command --- addons/cargo/CfgVehicles.hpp | 15 ++++++++-- addons/dragging/CfgEventHandlers.hpp | 5 ++++ addons/dragging/CfgVehicles.hpp | 20 +++++++++++++ addons/interaction/CfgVehicles.hpp | 43 +++++++++++++++++----------- addons/interaction/XEH_postInit.sqf | 22 ++++++++++++++ 5 files changed, 87 insertions(+), 18 deletions(-) diff --git a/addons/cargo/CfgVehicles.hpp b/addons/cargo/CfgVehicles.hpp index fd2e53bc57..a690bd432b 100644 --- a/addons/cargo/CfgVehicles.hpp +++ b/addons/cargo/CfgVehicles.hpp @@ -421,7 +421,6 @@ class CfgVehicles { }; // objects - class Lamps_base_F; class RoadCone_F: ThingX { GVAR(size) = 1; GVAR(canLoad) = 1; @@ -429,10 +428,22 @@ class CfgVehicles { class RoadBarrier_F: RoadCone_F { GVAR(size) = 2; }; + + class Lamps_base_F; class Land_PortableLight_single_F: Lamps_base_F { - GVAR(size) = 1; + GVAR(size) = 2; GVAR(canLoad) = 1; }; + class FloatingStructure_F; + class Land_Camping_Light_F: FloatingStructure_F { + GVAR(size) = 0.2; + GVAR(canLoad) = 1; + }; + class Land_Camping_Light_off_F: ThingX { + GVAR(size) = 0.2; + GVAR(canLoad) = 1; + }; + class Scrapyard_base_F; class Land_PaperBox_closed_F: Scrapyard_base_F { diff --git a/addons/dragging/CfgEventHandlers.hpp b/addons/dragging/CfgEventHandlers.hpp index 6b8f0004b9..424c2a3fed 100644 --- a/addons/dragging/CfgEventHandlers.hpp +++ b/addons/dragging/CfgEventHandlers.hpp @@ -38,6 +38,11 @@ class Extended_Init_EventHandlers { init = QUOTE(_this call DFUNC(initObject)); }; }; + class Land_Camping_Light_F { + class ADDON { + init = QUOTE(_this call DFUNC(initObject)); + }; + }; }; class Extended_Killed_EventHandlers { diff --git a/addons/dragging/CfgVehicles.hpp b/addons/dragging/CfgVehicles.hpp index 8808ea9030..182bc76596 100644 --- a/addons/dragging/CfgVehicles.hpp +++ b/addons/dragging/CfgVehicles.hpp @@ -249,4 +249,24 @@ class CfgVehicles { GVAR(dragPosition)[] = {0,1.2,0}; GVAR(dragDirection) = 180; }; + class FloatingStructure_F; + class Land_Camping_Light_F: FloatingStructure_F { + GVAR(canCarry) = 1; + // if y < 0.9 player gets damage + GVAR(carryPosition)[] = {0,0.9,1}; + GVAR(carryDirection) = 0; + + GVAR(canDrag) = 1; + GVAR(dragPosition)[] = {0,0.7,0}; + GVAR(dragDirection) = 0; + }; + class Land_Camping_Light_off_F: ThingX { + GVAR(canCarry) = 1; + GVAR(carryPosition)[] = {0,0.9,1}; + GVAR(carryDirection) = 0; + + GVAR(canDrag) = 1; + GVAR(dragPosition)[] = {0,0.7,0}; + GVAR(dragDirection) = 0; + }; }; diff --git a/addons/interaction/CfgVehicles.hpp b/addons/interaction/CfgVehicles.hpp index 9bd70a00da..fc89a0f2ec 100644 --- a/addons/interaction/CfgVehicles.hpp +++ b/addons/interaction/CfgVehicles.hpp @@ -640,37 +640,48 @@ class CfgVehicles { class EventHandlers { class CBA_Extended_EventHandlers: CBA_Extended_EventHandlers {}; }; - - scope = 2; class ACE_Actions { class ACE_MainActions { displayName = CSTRING(MainAction); - selection = ""; distance = 2; - condition = "true"; - class ACE_LampTurnOn { + + class GVAR(TurnOn) { displayName = CSTRING(TurnOn); + icon = "\A3\Ui_f\data\IGUI\Cfg\VehicleToggles\LightsIconOn_ca.paa"; condition = QUOTE(alive _target && !(_target getVariable [ARR_2('ACE_lampOn',true)])); statement = QUOTE(_target call DFUNC(switchLamp)); - selection = ""; - distance = 2; }; - class ACE_LampTurnOff { + class GVAR(TurnOff) { displayName = CSTRING(TurnOff); + icon = "\A3\ui_f\data\igui\cfg\actions\ico_cpt_land_OFF_ca.paa"; condition = QUOTE(alive _target && _target getVariable [ARR_2('ACE_lampOn',true)]); statement = QUOTE(_target call DFUNC(switchLamp)); - selection = ""; - distance = 2; }; }; }; }; - class Land_PortableLight_single_off_F: Land_PortableLight_single_F { - scope = 1; - }; - class Land_PortableLight_double_F: Land_PortableLight_single_F {}; - class Land_PortableLight_double_off_F: Land_PortableLight_double_F { - scope = 1; + + class FloatingStructure_F; + class Land_Camping_Light_F: FloatingStructure_F { + class ACE_Actions { + class ACE_MainActions { + displayName = CSTRING(MainAction); + distance = 2; + + class GVAR(TurnOn) { + displayName = CSTRING(TurnOn); + icon = "\A3\Ui_f\data\IGUI\Cfg\VehicleToggles\LightsIconOn_ca.paa"; + condition = QUOTE(alive _target && !isCollisionLightOn _target); + statement = QUOTE([ARR_3(QQGVAR(setCollisionLight),[ARR_2(_target,true)],_target)] call CBA_fnc_targetEvent); + }; + class GVAR(TurnOff) { + displayName = CSTRING(TurnOff); + icon = "\A3\ui_f\data\igui\cfg\actions\ico_cpt_land_OFF_ca.paa"; + condition = QUOTE(alive _target && isCollisionLightOn _target); + statement = QUOTE([ARR_3(QQGVAR(setCollisionLight),[ARR_2(_target,false)],_target)] call CBA_fnc_targetEvent); + }; + }; + }; }; class RoadCone_F: ThingX { diff --git a/addons/interaction/XEH_postInit.sqf b/addons/interaction/XEH_postInit.sqf index 5d2b49f9b1..a93f5461b2 100644 --- a/addons/interaction/XEH_postInit.sqf +++ b/addons/interaction/XEH_postInit.sqf @@ -28,6 +28,10 @@ ACE_Modifier = 0; {_lamp setHit [_x select 0, (_x select 1) max _disabledLampDMG];nil} count _hitPointsDamage; }] call CBA_fnc_addEventHandler; +[QGVAR(setCollisionLight), { + (_this select 0) setCollisionLight (_this select 1); +}] call CBA_fnc_addEventHandler; + // Zeus action events [QGVAR(zeusStance),{ { _x setUnitPos (_this select 0); } forEach (_this select 1); @@ -116,3 +120,21 @@ GVAR(isOpeningDoor) = false; }]; }; }] call CBA_fnc_addEventHandler; + + +// to make "Camping Lantern (Off)" be turned on we replace it with "Camping Lantern" +private _action = [ + QGVAR(TurnOn), + localize LSTRING(TurnOn), + "\A3\Ui_f\data\IGUI\Cfg\VehicleToggles\LightsIconOn_ca.paa", + { + private _position = getPosATL _target; + private _vectorDirAndUp = [vectorDir _target, vectorUp _target]; + deleteVehicle _target; + private _newLamp = "Land_Camping_Light_F" createVehicle [0,0,0]; + _newLamp setPosATL _position; + _newLamp setVectorDirAndUp _vectorDirAndUp; + }, + {alive _target} +] call EFUNC(interact_menu,createAction); +["Land_Camping_Light_off_F", 0, ["ACE_MainActions"], _action] call EFUNC(interact_menu,addActionToClass); From 3feafc449f9ecf0baf3a0f12ce14c4daa1238c7b Mon Sep 17 00:00:00 2001 From: Dystopian Date: Mon, 26 Feb 2018 21:23:47 +0300 Subject: [PATCH 058/235] Interaction - Add Flip and Push actions to Quad Bike, Kart and Static Weapons (#6019) * Add Flip and Push actions to Quad Bike * Add actions to karts and static weapons * Move magic number to macro * Ditch here is * Move condition to function --- addons/interaction/CfgVehicles.hpp | 39 ++++++++++++++++++++ addons/interaction/XEH_PREP.hpp | 1 + addons/interaction/XEH_postInit.sqf | 8 ++++ addons/interaction/functions/fnc_canFlip.sqf | 25 +++++++++++++ addons/interaction/stringtable.xml | 6 ++- 5 files changed, 78 insertions(+), 1 deletion(-) create mode 100644 addons/interaction/functions/fnc_canFlip.sqf diff --git a/addons/interaction/CfgVehicles.hpp b/addons/interaction/CfgVehicles.hpp index fc89a0f2ec..13f84bd5d0 100644 --- a/addons/interaction/CfgVehicles.hpp +++ b/addons/interaction/CfgVehicles.hpp @@ -368,6 +368,40 @@ class CfgVehicles { }; }; + class Car_F: Car{}; + class Quadbike_01_base_F: Car_F { + class ACE_Actions: ACE_Actions { + class ACE_MainActions: ACE_MainActions { + class GVAR(flip) { + displayName = CSTRING(Flip); + condition = QUOTE(call DFUNC(canFlip)); + statement = QUOTE([ARR_3(QQGVAR(flip),_target,_target)] call CBA_fnc_targetEvent); + }; + class GVAR(push) { + displayName = CSTRING(Push); + condition = QUOTE(_target call FUNC(canPush)); + statement = QUOTE(call FUNC(push)); + }; + }; + }; + }; + class Kart_01_Base_F: Car_F { + class ACE_Actions: ACE_Actions { + class ACE_MainActions: ACE_MainActions { + class GVAR(flip) { + displayName = CSTRING(Flip); + condition = QUOTE(call DFUNC(canFlip)); + statement = QUOTE([ARR_3(QQGVAR(flip),_target,_target)] call CBA_fnc_targetEvent); + }; + class GVAR(push) { + displayName = CSTRING(Push); + condition = QUOTE(_target call FUNC(canPush)); + statement = QUOTE(call FUNC(push)); + }; + }; + }; + }; + class Tank: LandVehicle { class ACE_Actions { class ACE_MainActions { @@ -545,6 +579,11 @@ class CfgVehicles { exceptions[] = {"isNotSwimming"}; insertChildren = QUOTE(_this call DFUNC(addPassengersActions)); }; + class GVAR(flip) { + displayName = CSTRING(Flip); + condition = QUOTE(call DFUNC(canFlip)); + statement = QUOTE([ARR_3(QQGVAR(flip),_target,_target)] call CBA_fnc_targetEvent); + }; }; }; diff --git a/addons/interaction/XEH_PREP.hpp b/addons/interaction/XEH_PREP.hpp index 1a70de8831..06dd7acbe0 100644 --- a/addons/interaction/XEH_PREP.hpp +++ b/addons/interaction/XEH_PREP.hpp @@ -42,4 +42,5 @@ PREP(openDoor); PREP(canPush); PREP(push); +PREP(canFlip); PREP(switchLamp); diff --git a/addons/interaction/XEH_postInit.sqf b/addons/interaction/XEH_postInit.sqf index a93f5461b2..3604f94511 100644 --- a/addons/interaction/XEH_postInit.sqf +++ b/addons/interaction/XEH_postInit.sqf @@ -28,6 +28,14 @@ ACE_Modifier = 0; {_lamp setHit [_x select 0, (_x select 1) max _disabledLampDMG];nil} count _hitPointsDamage; }] call CBA_fnc_addEventHandler; + +[QGVAR(flip), { + params ["_vehicle"]; + private _position = getPosATL _vehicle; + _vehicle setVectorUp surfaceNormal _position; + _vehicle setPosATL _position; +}] call CBA_fnc_addEventHandler; + [QGVAR(setCollisionLight), { (_this select 0) setCollisionLight (_this select 1); }] call CBA_fnc_addEventHandler; diff --git a/addons/interaction/functions/fnc_canFlip.sqf b/addons/interaction/functions/fnc_canFlip.sqf new file mode 100644 index 0000000000..70c004920c --- /dev/null +++ b/addons/interaction/functions/fnc_canFlip.sqf @@ -0,0 +1,25 @@ +/* + * Author: Dystopian + * Checks if vehicle can be flipped. + * + * Arguments: + * 0: Vehicle + * + * Return Value: + * Can Flip + * + * Example: + * [cursorObject] call ace_interaction_fnc_canFlip + * + * Public: No + */ +#include "script_component.hpp" + +params ["_vehicle"]; + +// most suitable mass for all vanilla, CUP and RHS statics ATM (ZU-23 suits, D-30 and M119 don't suit) +#define FLIP_MAX_STATICWEAPON_MASS 2000 + +1 < (vectorUp _vehicle) vectorDistance (surfaceNormal getPosATL _vehicle) +&& {0 == {alive _x} count crew _vehicle || {isAutonomous _vehicle}} +&& {getMass _vehicle <= FLIP_MAX_STATICWEAPON_MASS} diff --git a/addons/interaction/stringtable.xml b/addons/interaction/stringtable.xml index c0fd822f86..50c086a8fa 100644 --- a/addons/interaction/stringtable.xml +++ b/addons/interaction/stringtable.xml @@ -832,7 +832,7 @@ Pchnij Tlačit Tolás - Толкать + Толкнуть Empurrar Spingere 押す @@ -840,6 +840,10 @@ + + Flip + Перевернуть + Interact Interagir From 21ae61e55116889055a96c0082be9ea74e4abde3 Mon Sep 17 00:00:00 2001 From: ulteq Date: Wed, 28 Feb 2018 00:35:03 +0100 Subject: [PATCH 059/235] Fix allowSwapBarrel condition (#6170) --- addons/overheating/functions/fnc_canSwapBarrel.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/overheating/functions/fnc_canSwapBarrel.sqf b/addons/overheating/functions/fnc_canSwapBarrel.sqf index 560183e382..8d261db408 100644 --- a/addons/overheating/functions/fnc_canSwapBarrel.sqf +++ b/addons/overheating/functions/fnc_canSwapBarrel.sqf @@ -18,7 +18,7 @@ params ["_unit","_weapon"]; //Check if weapon can have its barrel swapped. If not exit out of function -if( !GVAR(enabled) && (getNumber (configFile >> 'CfgWeapons' >> _weapon >> QGVAR(allowSwapBarrel))) != 1) exitWith{false}; +if( !GVAR(enabled) || {getNumber (configFile >> 'CfgWeapons' >> _weapon >> QGVAR(allowSwapBarrel)) != 1}) exitWith{false}; //Get the classname of the spare barrel for the weapon private _weaponBarrelClass = getText (configFile >> 'CfgWeapons' >> _weapon >> QGVAR(barrelClassname)); From 8ee7c1b1322cfcb9abdf5a11603261bee5c469ab Mon Sep 17 00:00:00 2001 From: mharis001 <34453221+mharis001@users.noreply.github.com> Date: Sat, 3 Mar 2018 12:33:29 -0500 Subject: [PATCH 060/235] Shorten handleStats window resize (#6176) --- addons/arsenal/functions/fnc_handleStats.sqf | 69 +++----------------- 1 file changed, 8 insertions(+), 61 deletions(-) diff --git a/addons/arsenal/functions/fnc_handleStats.sqf b/addons/arsenal/functions/fnc_handleStats.sqf index ec1e47cd59..980aeb8621 100644 --- a/addons/arsenal/functions/fnc_handleStats.sqf +++ b/addons/arsenal/functions/fnc_handleStats.sqf @@ -129,67 +129,14 @@ if !(isNil "_itemCfg") then { }; // Resize the window - switch (_statsCount) do { - case 0: { - [[1, 2, 3, 4, 5]] call _hideUnusedFnc; - _statsBoxCtrl ctrlSetPosition [ - (0.5 - WIDTH_TOTAL / 2) + WIDTH_GAP, - safezoneY + 1.8 * GRID_H, - 47 * GRID_W, - 11 * GRID_H - ]; - _statsBoxCtrl ctrlCommit 0; - }; - case 1: { - [[2, 3, 4, 5]] call _hideUnusedFnc; - _statsBoxCtrl ctrlSetPosition [ - (0.5 - WIDTH_TOTAL / 2) + WIDTH_GAP, - safezoneY + 1.8 * GRID_H, - 47 * GRID_W, - 15 * GRID_H - ]; - _statsBoxCtrl ctrlCommit 0; - }; - case 2: { - [[3, 4, 5]] call _hideUnusedFnc; - _statsBoxCtrl ctrlSetPosition [ - (0.5 - WIDTH_TOTAL / 2) + WIDTH_GAP, - safezoneY + 1.8 * GRID_H, - 47 * GRID_W, - 25 * GRID_H - ]; - _statsBoxCtrl ctrlCommit 0; - }; - case 3: { - [[4, 5]] call _hideUnusedFnc; - _statsBoxCtrl ctrlSetPosition [ - (0.5 - WIDTH_TOTAL / 2) + WIDTH_GAP, - safezoneY + 1.8 * GRID_H, - 47 * GRID_W, - 35 * GRID_H - ]; - _statsBoxCtrl ctrlCommit 0; - }; - case 4: { - [[5]] call _hideUnusedFnc; - _statsBoxCtrl ctrlSetPosition [ - (0.5 - WIDTH_TOTAL / 2) + WIDTH_GAP, - safezoneY + 1.8 * GRID_H, - 47 * GRID_W, - 45 * GRID_H - ]; - _statsBoxCtrl ctrlCommit 0; - }; - case 5: { - _statsBoxCtrl ctrlSetPosition [ - (0.5 - WIDTH_TOTAL / 2) + WIDTH_GAP, - safezoneY + 1.8 * GRID_H, - 47 * GRID_W, - 55 * GRID_H - ]; - _statsBoxCtrl ctrlCommit 0; - }; - }; + [[1, 2, 3, 4, 5] select [_statsCount, 5]] call _hideUnusedFnc; + _statsBoxCtrl ctrlSetPosition [ + (0.5 - WIDTH_TOTAL / 2) + WIDTH_GAP, + safezoneY + 1.8 * GRID_H, + 47 * GRID_W, + ([11, (10 * _statsCount) + 5] select (_statsCount > 0)) * GRID_H + ]; + _statsBoxCtrl ctrlCommit 0; GVAR(statsInfo) = [_isLeftPanel, _statsIndex, _control, _curSel, _itemCfg]; From 859b6a16f68a211134a40e0348c0208906b68237 Mon Sep 17 00:00:00 2001 From: Josuan Albin Date: Sat, 3 Mar 2018 18:34:24 +0100 Subject: [PATCH 061/235] Fix error in ACE Arsenal stats (#6175) * Fix the camera on remote units ending after ace arsenal closes * Shorten handleStats, fix error with face, voice, insignia tabs * Remove uneccessary code You saw nothiiiiing. --- addons/arsenal/functions/fnc_compileStats.sqf | 2 +- addons/arsenal/functions/fnc_handleStats.sqf | 92 ++++++++----------- .../arsenal/functions/fnc_onArsenalClose.sqf | 22 ++--- 3 files changed, 48 insertions(+), 68 deletions(-) diff --git a/addons/arsenal/functions/fnc_compileStats.sqf b/addons/arsenal/functions/fnc_compileStats.sqf index 6ef70b811b..f705e76884 100644 --- a/addons/arsenal/functions/fnc_compileStats.sqf +++ b/addons/arsenal/functions/fnc_compileStats.sqf @@ -70,7 +70,7 @@ private _statsListLeftPanel = [ [[]], // GPS 11 [[]], // Radio 12 [[]], // Compass 13 - [[]] // Watch 14 + [[]] // Watch 14 ]; private _statsListRightPanel = [ diff --git a/addons/arsenal/functions/fnc_handleStats.sqf b/addons/arsenal/functions/fnc_handleStats.sqf index 980aeb8621..f9180f372d 100644 --- a/addons/arsenal/functions/fnc_handleStats.sqf +++ b/addons/arsenal/functions/fnc_handleStats.sqf @@ -157,61 +157,43 @@ if !(isNil "_itemCfg") then { if (ctrlIDC _control == IDC_leftTabContent) then { - switch (GVAR(currentLeftPanel)) do { - case IDC_buttonPrimaryWeapon: { - [0, true] call _handleStatsFnc; - }; - case IDC_buttonHandgun: { - [1, true] call _handleStatsFnc; - }; - case IDC_buttonSecondaryWeapon: { - [2, true] call _handleStatsFnc; - }; - case IDC_buttonUniform: { - [3, true] call _handleStatsFnc; - }; - case IDC_buttonVest: { - [4, true] call _handleStatsFnc; - }; - case IDC_buttonBackpack: { - [5, true] call _handleStatsFnc; - }; - case IDC_buttonHeadgear: { - [6, true] call _handleStatsFnc; - }; - case IDC_buttonGoggles: { - [7, true] call _handleStatsFnc; - }; - case IDC_buttonNVG: { - [8, true] call _handleStatsFnc; - }; - case IDC_buttonBinoculars: { - [9, true] call _handleStatsFnc; - }; - case IDC_buttonMap: { - [10, true] call _handleStatsFnc; - }; - case IDC_buttonGPS: { - [11, true] call _handleStatsFnc; - }; - case IDC_buttonRadio: { - [12, true] call _handleStatsFnc; - }; - case IDC_buttonCompass: { - [13, true] call _handleStatsFnc; - }; - case IDC_buttonWatch: { - [14, true] call _handleStatsFnc; - }; - case IDC_buttonFace: { - [15, true] call _handleStatsFnc; - }; - case IDC_buttonVoice: { - [16, true] call _handleStatsFnc; - }; - case IDC_buttonInsigna: { - [17, true] call _handleStatsFnc; - }; + if ([IDC_buttonFace, IDC_buttonVoice, IDC_buttonInsigna] find GVAR(currentLeftPanel) > -1) then { + + [[1, 2, 3, 4, 5]] call _hideUnusedFnc; + _statsBoxCtrl ctrlSetPosition [ + (0.5 - WIDTH_TOTAL / 2) + WIDTH_GAP, + safezoneY + 1.8 * GRID_H, + 47 * GRID_W, + 11 * GRID_H + ]; + _statsBoxCtrl ctrlCommit 0; + + { + _x ctrlSetFade 1; + _x ctrlCommit 0; + } forEach [ + _statsPreviousPageCtrl, + _statsNextPageCtrl, + _statsCurrentPageCtrl + ]; + } else { + [[ + IDC_buttonPrimaryWeapon, + IDC_buttonHandgun, + IDC_buttonSecondaryWeapon, + IDC_buttonUniform, + IDC_buttonVest, + IDC_buttonBackpack, + IDC_buttonHeadgear, + IDC_buttonGoggles, + IDC_buttonNVG, + IDC_buttonBinoculars, + IDC_buttonMap, + IDC_buttonGPS, + IDC_buttonRadio, + IDC_buttonCompass, + IDC_buttonWatch + ] find GVAR(currentLeftPanel), true] call _handleStatsFnc; }; } else { diff --git a/addons/arsenal/functions/fnc_onArsenalClose.sqf b/addons/arsenal/functions/fnc_onArsenalClose.sqf index a456c5e1a3..316197faf0 100644 --- a/addons/arsenal/functions/fnc_onArsenalClose.sqf +++ b/addons/arsenal/functions/fnc_onArsenalClose.sqf @@ -14,19 +14,11 @@ (_this select 1) params ["", "_exitCode"]; -GVAR(camera) cameraEffect ["terminate", "back"]; private _cameraData = [getposAtl GVAR(camera), (getposAtl GVAR(camera)) vectorFromTo (getposAtl GVAR(cameraHelper))]; [QGVAR(displayClosed), []] call CBA_fnc_localEvent; - removeMissionEventHandler ["draw3D", GVAR(camPosUpdateHandle)]; -GVAR(camera) cameraEffect ["terminate","back"]; -player switchCamera GVAR(cameraView); - -deleteVehicle GVAR(cameraHelper); -camDestroy GVAR(camera); - if (is3DEN) then { private _centerOriginParent = objectParent GVAR(centerOrigin); @@ -62,8 +54,18 @@ if (is3DEN) then { case 1: {GVAR(center) selectWeapon secondaryWeapon GVAR(center);}; case 2: {GVAR(center) selectWeapon handgunWeapon GVAR(center);}; }; + + if (!(isnull curatorCamera) && {ACE_player == player}) then { + curatorcamera cameraEffect ["internal","back"]; + } else { + GVAR(camera) cameraEffect ["terminate","back"]; + ACE_player switchCamera GVAR(cameraView); + }; }; +deleteVehicle GVAR(cameraHelper); +camDestroy GVAR(camera); + if (isMultiplayer) then { [QGVAR(broadcastFace), [GVAR(center), GVAR(currentFace)], QGVAR(center) + "_face"] call CBA_fnc_globalEventJIP; @@ -73,10 +75,6 @@ if (isMultiplayer) then { [QGVAR(center) + "_voice", GVAR(center)] call CBA_fnc_removeGlobalEventJIP; }; -if !(isnull curatorCamera) then { - curatorcamera cameraEffect ["internal","back"]; -}; - GVAR(camera) = nil; GVAR(cameraHelper) = nil; From 5e7103030174e7b87dbf39f2b69fd05fb78e7049 Mon Sep 17 00:00:00 2001 From: Laid3acK Date: Sat, 3 Mar 2018 18:34:40 +0100 Subject: [PATCH 062/235] AB and ACE3 ballistic : compat r3f updated (#6171) * update_atragmx_presets * update airFriction * r3f_762x51_ball2=m993_ap --- optionals/compat_r3f/CfgAmmo.hpp | 66 ++++++++++++++--------------- optionals/compat_r3f/CfgWeapons.hpp | 10 ++--- 2 files changed, 38 insertions(+), 38 deletions(-) diff --git a/optionals/compat_r3f/CfgAmmo.hpp b/optionals/compat_r3f/CfgAmmo.hpp index d7f8ac085c..a708d34e2d 100644 --- a/optionals/compat_r3f/CfgAmmo.hpp +++ b/optionals/compat_r3f/CfgAmmo.hpp @@ -1,7 +1,7 @@ class CfgAmmo { class Default; class BulletBase; - class R3F_9x19_Ball: BulletBase { // https://github.com/acemod/ACE3/blob/master/addons/ballistics/CfgAmmo.hpp#L360 + class R3F_9x19_Ball: BulletBase { // https://github.com/acemod/ACE3/blob/master/addons/ballistics/CfgAmmo.hpp#L370 typicalSpeed = 350; // R3F config airFriction = -0.00201185; // ACE3 value, default -0.001413 ACE_caliber = 9.017; @@ -15,13 +15,13 @@ class CfgAmmo { ACE_muzzleVelocities[] = {340, 370, 400}; ACE_barrelLengths[] = {101.6, 127.0, 228.6}; }; - class R3F_556x45_Ball: BulletBase { // https://github.com/acemod/ACE3/blob/master/addons/ballistics/CfgAmmo.hpp#L9 + class R3F_556x45_Ball: BulletBase { // M855 https://github.com/acemod/ACE3/blob/master/addons/ballistics/CfgAmmo.hpp#L9 typicalSpeed = 930; // R3F config airFriction = -0.00130094; // ACE3 value, default -0.001625 ACE_caliber = 5.69; ACE_bulletLength = 23.012; ACE_bulletMass = 4.0176; - ACE_ammoTempMuzzleVelocityShifts[] = {-27.20, -26.44, -23.76, -21.00, -17.54, -13.10, -7.95, -1.62, 6.24, 15.48, 27.75}; + ACE_ammoTempMuzzleVelocityShifts[] = {-19.25, -18.49, -15.81, -13.05, -9.59, -5.15, 0, 6.33, 14.19, 23.43, 35.70}; ACE_ballisticCoefficients[] = {0.151}; ACE_velocityBoundaries[] = {}; ACE_standardAtmosphere = "ASM"; @@ -29,13 +29,13 @@ class CfgAmmo { ACE_muzzleVelocities[] = {723, 764, 796, 825, 843, 866, 878, 892, 906, 915, 922, 900}; ACE_barrelLengths[] = {210.82, 238.76, 269.24, 299.72, 330.2, 360.68, 391.16, 419.1, 449.58, 480.06, 508.0, 609.6}; }; - class R3F_762x51_Ball: BulletBase { // https://github.com/acemod/ACE3/blob/master/addons/ballistics/CfgAmmo.hpp#L152 + class R3F_762x51_Ball: BulletBase { // M80 https://github.com/acemod/ACE3/blob/master/addons/ballistics/CfgAmmo.hpp#L155 typicalSpeed = 820; // R3F config airFriction = -0.00103711; // ACE3 value, default -0.00095 ACE_caliber = 7.823; ACE_bulletLength = 28.956; ACE_bulletMass = 9.4608; - ACE_ammoTempMuzzleVelocityShifts[] = {-26.55, -25.47, -22.85, -20.12, -16.98, -12.80, -7.64, -1.53, 5.96, 15.17, 26.19}; + ACE_ammoTempMuzzleVelocityShifts[] = {-18.91, -17.83, -15.21, -12.48, -09.34, -05.16, 0, 6.11, 13.60, 22.81, 33.83}; ACE_ballisticCoefficients[] = {0.2}; ACE_velocityBoundaries[] = {}; ACE_standardAtmosphere = "ICAO"; @@ -43,31 +43,31 @@ class CfgAmmo { ACE_muzzleVelocities[] = {700, 800, 820, 833, 845}; ACE_barrelLengths[] = {254.0, 406.4, 508.0, 609.6, 660.4}; }; - class R3F_762x51_Ball2: R3F_762x51_Ball { // https://github.com/acemod/ACE3/blob/master/addons/ballistics/CfgAmmo.hpp#L152 + class R3F_762x51_Ball2: R3F_762x51_Ball { // M993 AP https://github.com/acemod/ACE3/blob/master/addons/ballistics/CfgAmmo.hpp#L226 typicalSpeed = 850; // R3F config - airFriction = -0.00103711; // ACE3 value, default -0.00095 + airFriction = -0.00110718; // ACE3 value, default -0.00095 ACE_caliber = 7.823; - ACE_bulletLength = 28.956; - ACE_bulletMass = 9.4608; - ACE_ammoTempMuzzleVelocityShifts[] = {-26.55, -25.47, -22.85, -20.12, -16.98, -12.80, -7.64, -1.53, 5.96, 15.17, 26.19}; - ACE_ballisticCoefficients[] = {0.2}; + ACE_bulletLength = 31.496; + ACE_bulletMass = 8.22946157; + ACE_ammoTempMuzzleVelocityShifts[] = {-18.91, -17.83, -15.21, -12.48, -09.34, -05.16, 0, 6.11, 13.60, 22.81, 33.83}; + ACE_ballisticCoefficients[] = {0.359}; ACE_velocityBoundaries[] = {}; ACE_standardAtmosphere = "ICAO"; - ACE_dragModel = 7; + ACE_dragModel = 1; ACE_muzzleVelocities[] = {850}; ACE_barrelLengths[] = {650}; }; - class R3F_762x51_Minimi_Ball: R3F_762x51_Ball { // https://github.com/acemod/ACE3/blob/master/addons/ballistics/CfgAmmo.hpp#L152 + class R3F_762x51_Minimi_Ball: R3F_762x51_Ball { // M80 https://github.com/acemod/ACE3/blob/master/addons/ballistics/CfgAmmo.hpp#L155 airFriction = -0.00103711; // ACE3 value, default -0.002000 }; - class R3F_127x99_Ball: BulletBase { // https://github.com/acemod/ACE3/blob/master/addons/ballistics/CfgAmmo.hpp#L494 + class R3F_127x99_Ball: BulletBase { // M33 https://github.com/acemod/ACE3/blob/master/addons/ballistics/CfgAmmo.hpp#L510 typicalSpeed = 780; // R3F config - airFriction = -0.00058679; // ACE3 value, default -0.00086 + airFriction = -0.00062115; // ACE3 value, default -0.00086 ACE_caliber = 12.954; ACE_bulletLength = 58.674; ACE_bulletMass = 41.9256; - ACE_muzzleVelocityVariationSD=0.35; - ACE_ammoTempMuzzleVelocityShifts[] = {-26.55, -25.47, -22.85, -20.12, -16.98, -12.80, -7.64, -1.53, 5.96, 15.17, 26.19}; + ACE_muzzleVelocityVariationSD = 0.35; + ACE_ammoTempMuzzleVelocityShifts[] = {-18.91, -17.83, -15.21, -12.48, -09.34, -05.16, 0, 6.11, 13.60, 22.81, 33.83}; ACE_ballisticCoefficients[] = {0.670}; ACE_velocityBoundaries[] = {}; ACE_standardAtmosphere = "ASM"; @@ -75,14 +75,14 @@ class CfgAmmo { ACE_muzzleVelocities[] = {780}; ACE_barrelLengths[] = {700}; }; - class R3F_127x99_PEI: R3F_127x99_Ball { // https://github.com/acemod/ACE3/blob/master/addons/ballistics/CfgAmmo.hpp#L494 + class R3F_127x99_PEI: R3F_127x99_Ball { // M33 https://github.com/acemod/ACE3/blob/master/addons/ballistics/CfgAmmo.hpp#L510 typicalSpeed = 780; // R3F config - airFriction = -0.00058679; // ACE3 value, default -0.00086 + airFriction = -0.00062115; // ACE3 value, default -0.00086 ACE_caliber = 12.954; ACE_bulletLength = 58.674; ACE_bulletMass = 41.9256; - ACE_muzzleVelocityVariationSD=0.4; - ACE_ammoTempMuzzleVelocityShifts[] = {-26.55, -25.47, -22.85, -20.12, -16.98, -12.80, -7.64, -1.53, 5.96, 15.17, 26.19}; + ACE_muzzleVelocityVariationSD = 0.4; + ACE_ammoTempMuzzleVelocityShifts[] = {-18.91, -17.83, -15.21, -12.48, -09.34, -05.16, 0, 6.11, 13.60, 22.81, 33.83}; ACE_ballisticCoefficients[] = {0.670}; ACE_velocityBoundaries[] = {}; ACE_standardAtmosphere = "ASM"; @@ -90,14 +90,14 @@ class CfgAmmo { ACE_muzzleVelocities[] = {780}; ACE_barrelLengths[] = {700}; }; - class R3F_127x99_Ball2: BulletBase { // https://github.com/acemod/ACE3/blob/master/addons/ballistics/CfgAmmo.hpp#L494 + class R3F_127x99_Ball2: BulletBase { // M33 https://github.com/acemod/ACE3/blob/master/addons/ballistics/CfgAmmo.hpp#L510 typicalSpeed = 850; // R3F config - airFriction = -0.00058679; // ACE3 value, default -0.00086 + airFriction = -0.000601; // ACE3 value, default -0.00086 ACE_caliber = 12.954; ACE_bulletLength = 58.674; ACE_bulletMass = 41.9256; - ACE_muzzleVelocityVariationSD=0.35; - ACE_ammoTempMuzzleVelocityShifts[] = {-26.55, -25.47, -22.85, -20.12, -16.98, -12.80, -7.64, -1.53, 5.96, 15.17, 26.19}; + ACE_muzzleVelocityVariationSD = 0.35; + ACE_ammoTempMuzzleVelocityShifts[] = {-18.91, -17.83, -15.21, -12.48, -09.34, -05.16, 0, 6.11, 13.60, 22.81, 33.83}; ACE_ballisticCoefficients[] = {0.670}; ACE_velocityBoundaries[] = {}; ACE_standardAtmosphere = "ASM"; @@ -105,14 +105,14 @@ class CfgAmmo { ACE_muzzleVelocities[] = {850}; ACE_barrelLengths[] = {736.6}; }; - class R3F_127x99_PEI2: R3F_127x99_Ball2 { // https://github.com/acemod/ACE3/blob/master/addons/ballistics/CfgAmmo.hpp#L494 + class R3F_127x99_PEI2: R3F_127x99_Ball2 { // M33 https://github.com/acemod/ACE3/blob/master/addons/ballistics/CfgAmmo.hpp#L510 typicalSpeed = 850; // R3F config - airFriction = -0.00058679; // ACE3 value, default -0.00086 + airFriction = -0.000601; // ACE3 value, default -0.00086 ACE_caliber = 12.954; ACE_bulletLength = 58.674; ACE_bulletMass = 41.9256; - ACE_muzzleVelocityVariationSD=0.4; - ACE_ammoTempMuzzleVelocityShifts[] = {-26.55, -25.47, -22.85, -20.12, -16.98, -12.80, -7.64, -1.53, 5.96, 15.17, 26.19}; + ACE_muzzleVelocityVariationSD = 0.4; + ACE_ammoTempMuzzleVelocityShifts[] = {-18.91, -17.83, -15.21, -12.48, -09.34, -05.16, 0, 6.11, 13.60, 22.81, 33.83}; ACE_ballisticCoefficients[] = {0.670}; ACE_velocityBoundaries[] = {}; ACE_standardAtmosphere = "ASM"; @@ -120,14 +120,14 @@ class CfgAmmo { ACE_muzzleVelocities[] = {850}; ACE_barrelLengths[] = {736.6}; }; - class R3F_127x99_Ball3: BulletBase { // https://github.com/acemod/ACE3/blob/master/addons/ballistics/CfgAmmo.hpp#L494 + class R3F_127x99_Ball3: BulletBase { // M33 https://github.com/acemod/ACE3/blob/master/addons/ballistics/CfgAmmo.hpp#L510 typicalSpeed = 820; // R3F config - airFriction = -0.00058679; // ACE3 value, default -0.00086 + airFriction = -0.00060964; // ACE3 value, default -0.00086 ACE_caliber = 12.954; ACE_bulletLength = 58.674; ACE_bulletMass = 41.9256; - ACE_muzzleVelocityVariationSD=0.35; - ACE_ammoTempMuzzleVelocityShifts[] = {-26.55, -25.47, -22.85, -20.12, -16.98, -12.80, -7.64, -1.53, 5.96, 15.17, 26.19}; + ACE_muzzleVelocityVariationSD = 0.35; + ACE_ammoTempMuzzleVelocityShifts[] = {-18.91, -17.83, -15.21, -12.48, -09.34, -05.16, 0, 6.11, 13.60, 22.81, 33.83}; ACE_ballisticCoefficients[] = {0.670}; ACE_velocityBoundaries[] = {}; ACE_standardAtmosphere = "ASM"; diff --git a/optionals/compat_r3f/CfgWeapons.hpp b/optionals/compat_r3f/CfgWeapons.hpp index cadf8f08aa..b9c8786557 100644 --- a/optionals/compat_r3f/CfgWeapons.hpp +++ b/optionals/compat_r3f/CfgWeapons.hpp @@ -476,22 +476,22 @@ class CfgWeapons { class ACE_ATragMX_Presets { class R3F_PGM_Hecate_II { // Profile Name, Muzzle Velocity, Zero Range, Scope Base Angle, AirFriction, Bore Height, Scope Unit, Scope Click Unit, Scope Click Number, Maximum Elevation, Dialed Elevation, Dialed Windage, Mass, Bullet Diameter, Rifle Twist, BC, Drag Model, Atmosphere Model, Muzzle Velocity vs. Temperature Interpolation, C1 Ballistic Coefficient vs. Distance Interpolation - preset[] = {"[R3F]PGM", 780, 100, 0.0879633, -0.00058679, 8.89, 0, 2, 10, 120, 0, 0, 41.92, 12.7, 38.10, 0.670, 1, "ASM", {{-15,753},{0,760},{10,767},{15,772},{25,786},{30,795},{35,806}}, {{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0}}}; + preset[] = {"R3F PGM M33", 780, 100, 0.0879633, -0.00062115, 6.35, 0, 2, 10, 120, 0, 0, 41.92, 12.7, 38.10, 0.670, 1, "ASM", {{-15, 761},{0, 768},{10, 775},{15, 780},{25, 794},{30, 803},{35, 814}}, {{0, 0},{0, 0},{0, 0},{0, 0},{0, 0},{0, 0},{0, 0}}}; }; class R3F_M107 { // Profile Name, Muzzle Velocity, Zero Range, Scope Base Angle, AirFriction, Bore Height, Scope Unit, Scope Click Unit, Scope Click Number, Maximum Elevation, Dialed Elevation, Dialed Windage, Mass, Bullet Diameter, Rifle Twist, BC, Drag Model, Atmosphere Model, Muzzle Velocity vs. Temperature Interpolation, C1 Ballistic Coefficient vs. Distance Interpolation - preset[] = {"[R3F]M107", 850, 100, 0.0879633, -0.00058679, 8.89, 0, 2, 10, 120, 0, 0, 41.92, 12.7, 38.10, 0.670, 1, "ASM", {{-15,823},{0,830},{10,837},{15,842},{25,856},{30,865},{35,876}}, {{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0}}}; + preset[] = {"R3F M107 M33", 850, 100, 0.0879633, -0.000601, 7.62, 0, 2, 10, 120, 0, 0, 41.92, 12.7, 38.10, 0.670, 1, "ASM", {{-15, 831},{0, 838},{10, 845},{15, 850},{25, 864},{30, 873},{35, 884}}, {{0, 0},{0, 0},{0, 0},{0, 0},{0, 0},{0, 0},{0, 0}}}; }; class R3F_TAC50 { // Profile Name, Muzzle Velocity, Zero Range, Scope Base Angle, AirFriction, Bore Height, Scope Unit, Scope Click Unit, Scope Click Number, Maximum Elevation, Dialed Elevation, Dialed Windage, Mass, Bullet Diameter, Rifle Twist, BC, Drag Model, Atmosphere Model, Muzzle Velocity vs. Temperature Interpolation, C1 Ballistic Coefficient vs. Distance Interpolation - preset[] = {"[R3F]TAC50", 820, 100, 0.0879633, -0.00058679, 8.89, 0, 2, 10, 120, 0, 0, 41.92, 12.7, 38.10, 0.670, 1, "ASM", {{-15,793},{0,800},{10,807},{15,812},{25,826},{30,835},{35,846}}, {{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0}}}; + preset[] = {"R3F TAC50 M33", 820, 100, 0.0879633, -0.00060964, 7.62, 0, 2, 10, 120, 0, 0, 41.92, 12.7, 38.10, 0.670, 1, "ASM", {{-15, 801},{0, 808},{10, 815},{15, 820},{25, 834},{30, 843},{35, 854}}, {{0, 0},{0, 0},{0, 0},{0, 0},{0, 0},{0, 0},{0, 0}}}; }; class R3F_FRF2 { // Profile Name, Muzzle Velocity, Zero Range, Scope Base Angle, AirFriction, Bore Height, Scope Unit, Scope Click Unit, Scope Click Number, Maximum Elevation, Dialed Elevation, Dialed Windage, Mass, Bullet Diameter, Rifle Twist, BC, Drag Model, Atmosphere Model, Muzzle Velocity vs. Temperature Interpolation, C1 Ballistic Coefficient vs. Distance Interpolation - preset[] = {"[R3F]FRF2", 850, 100, 0.0909184, -0.00103711, 7.62, 0, 2, 10, 120, 0, 0, 9.461, 7.82, 29.46, 0.398, 1, "ICAO", {{-15,823},{0,830},{10,837},{15,842},{25,856},{30,865},{35,876}}, {{0, 0.399}, {810, 0.392}, {1030, 0.383}, {1120, 0.381}, {1270, 0.380}, {1410, 0.379}, {1530, 0.379}}}; + preset[] = {"R3F FRF2 M993", 850, 100, 0.0803840, -0.00110718, 6.35, 0, 2, 10, 120, 0, 0, 8.230, 7.82, 29.46, 0.359, 1, "ICAO", {{-15, 831},{0, 838},{10, 845},{15, 850},{25, 864},{30, 873},{35, 884}}, {{0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}}}; }; class R3F_HK417L { // Profile Name, Muzzle Velocity, Zero Range, Scope Base Angle, AirFriction, Bore Height, Scope Unit, Scope Click Unit, Scope Click Number, Maximum Elevation, Dialed Elevation, Dialed Windage, Mass, Bullet Diameter, Rifle Twist, BC, Drag Model, Atmosphere Model, Muzzle Velocity vs. Temperature Interpolation, C1 Ballistic Coefficient vs. Distance Interpolation - preset[] = {"[R3F]HK417L", 820, 100, 0.0909184, -0.00103711, 7.62, 0, 2, 10, 120, 0, 0, 9.461, 7.82, 29.46, 0.398, 1, "ICAO", {{-15,793},{0,800},{10,807},{15,812},{25,826},{30,835},{35,846}}, {{0, 0.399}, {810, 0.392}, {1030, 0.383}, {1120, 0.381}, {1270, 0.380}, {1410, 0.379}, {1530, 0.379}}}; + preset[] = {"R3F HK417L M80", 820, 100, 0.0909184, -0.00103711, 7.62, 0, 2, 10, 120, 0, 0, 9.461, 7.82, 27.94, 0.398, 1, "ICAO", {{-15, 801},{0, 808},{10, 815},{15, 820},{25, 834},{30, 843},{35, 854}}, {{0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}}}; }; }; From b6a2315525886e49c9e066f0d2f2514e02114ec8 Mon Sep 17 00:00:00 2001 From: Jaffa Date: Mon, 5 Mar 2018 21:20:32 +0000 Subject: [PATCH 063/235] Allow local goggle effects to be set per client From what I can see goggles are all handled locally and do not need to be globally enabled/disabled. If a group wants to force the setting, CBA provides optional force functionality. --- addons/goggles/ACE_Settings.hpp | 1 + 1 file changed, 1 insertion(+) diff --git a/addons/goggles/ACE_Settings.hpp b/addons/goggles/ACE_Settings.hpp index 2b20b46514..26575ab554 100644 --- a/addons/goggles/ACE_Settings.hpp +++ b/addons/goggles/ACE_Settings.hpp @@ -5,6 +5,7 @@ class ACE_Settings { displayName = CSTRING(effects_displayName); typeName = "SCALAR"; value = 2; + isClientSettable = 1; values[] = {ECSTRING(common,Disabled), CSTRING(effects_tintOnly), CSTRING(enabled_tintAndEffects)}; }; class GVAR(showInThirdPerson) { From bda72663ac416ea468faf1298f3f0ba77e903277 Mon Sep 17 00:00:00 2001 From: Jo David Date: Wed, 14 Mar 2018 09:18:32 +0100 Subject: [PATCH 064/235] add acebot.json file used for the ace help chat bot to get that config out of the code --- docs/acebot.json | 102 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 102 insertions(+) create mode 100644 docs/acebot.json diff --git a/docs/acebot.json b/docs/acebot.json new file mode 100644 index 0000000000..8aea4186b2 --- /dev/null +++ b/docs/acebot.json @@ -0,0 +1,102 @@ +[ + // General + { + "name": "Arsenal", + "url": "https://ace3mod.com/wiki/feature/arsenal.html" + }, + // Interaction + { + "name": "AdvancedThrowing", + "url": "https://ace3mod.com/wiki/feature/advanced-throwing.html" + }, + { + "name": "Captives", + "url": "https://ace3mod.com/wiki/feature/captives.html" + }, + { + "name": "Explosives", + "url": "https://ace3mod.com/wiki/feature/explosives.html" + }, + { + "name": "Interaction", + "url": "https://ace3mod.com/wiki/feature/interaction.html" + }, + { + "name": "MapGestures", + "url": "https://ace3mod.com/wiki/feature/map-gestures.html" + }, + { + "name": "Nametags", + "url": "https://ace3mod.com/wiki/feature/nametags.html" + }, + { + "name": "Pylons", + "url": "https://ace3mod.com/wiki/feature/pylons.html" + }, + { + "name": "Refuel", + "url": "https://ace3mod.com/wiki/feature/refuel.html" + }, + { + "name": "Reload", + "url": "https://ace3mod.com/wiki/feature/reload.html" + }, + { + "name": "Repair", + "url": "https://ace3mod.com/wiki/feature/repair.html" + }, + { + "name": "Slideshow", + "url": "https://ace3mod.com/wiki/feature/slideshow.html" + }, + { + "name": "Spectator", + "url": "https://ace3mod.com/wiki/feature/spectator.html" + }, + // Realism + { + "name": "AdvancedBallistics", + "url": "https://ace3mod.com/wiki/feature/advanced-ballistics.html" + }, + { + "name": "Hearing", + "url": "https://ace3mod.com/wiki/feature/hearing.html" + }, + { + "name": "MedicalSystem", + "url": "https://ace3mod.com/wiki/feature/medical-system.html" + }, + { + "name": "Overheating", + "url": "https://ace3mod.com/wiki/feature/overheating.html" + }, + { + "name": "Weather", + "url": "https://ace3mod.com/wiki/feature/weather.html" + }, + // Equipment + { + "name": "ATragMX", + "url": "https://ace3mod.com/wiki/feature/atragmx.html" + }, + { + "name": "Hellfire", + "url": "https://ace3mod.com/wiki/feature/hellfire.html" + }, + { + "name": "Kestrel4500", + "url": "https://ace3mod.com/wiki/feature/kestrel4500.html" + }, + { + "name": "MapTools", + "url": "https://ace3mod.com/wiki/feature/maptools.html" + }, + { + "name": "MicroDAGR", + "url": "https://ace3mod.com/wiki/feature/microdagr.html" + }, + { + "name": "Nightvision", + "url": "https://ace3mod.com/wiki/feature/nightvision.html" + } +] From b5eb4ac8346848588abe24f076030dffe76ad9f7 Mon Sep 17 00:00:00 2001 From: vabene1111 Date: Sat, 17 Mar 2018 18:12:33 +0100 Subject: [PATCH 065/235] Fixed Slideshow action numbering (#6198) Slideshow Action names would not be named on clients because counting was only done on the server, this would result in all actions on one object showing up in the same slideshow set --- addons/slideshow/functions/fnc_createSlideshow.sqf | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/addons/slideshow/functions/fnc_createSlideshow.sqf b/addons/slideshow/functions/fnc_createSlideshow.sqf index 5eefbd39bc..b2bd602e29 100644 --- a/addons/slideshow/functions/fnc_createSlideshow.sqf +++ b/addons/slideshow/functions/fnc_createSlideshow.sqf @@ -49,11 +49,11 @@ if (isServer) then { { _x setObjectTextureGlobal [0, _images select 0]; } count _objects; - - // Number of slideshows (multiple modules support) - GVAR(slideshows) = GVAR(slideshows) + 1; }; +// Number of slideshows (multiple modules support) +GVAR(slideshows) = GVAR(slideshows) + 1; + private _currentSlideshow = GVAR(slideshows); // Local variable in case GVAR gets changed during execution of below code // If interaction menu module is not present, set default duration value From 2cad71cd1e42338fb757ff1ea22b53d44d401bcc Mon Sep 17 00:00:00 2001 From: Laid3acK Date: Sun, 18 Mar 2018 00:38:46 +0100 Subject: [PATCH 066/235] Compat R3F: #6171 updated (#6195) * gunlist_updated_according_presets * scope_base_angle --- optionals/compat_r3f/CfgMagazines.hpp | 16 ++++++++-------- optionals/compat_r3f/CfgWeapons.hpp | 20 ++++++++++---------- 2 files changed, 18 insertions(+), 18 deletions(-) diff --git a/optionals/compat_r3f/CfgMagazines.hpp b/optionals/compat_r3f/CfgMagazines.hpp index e00a8446a4..82247aa887 100644 --- a/optionals/compat_r3f/CfgMagazines.hpp +++ b/optionals/compat_r3f/CfgMagazines.hpp @@ -28,7 +28,7 @@ class CfgMagazines { initSpeed = 850; // R3F config }; class R3F_30Rnd_556x45_TRACER_SIG551: R3F_30Rnd_556x45_SIG551 {}; // AtragMx GunList: 5.56x45mm M855 - class R3F_10Rnd_762x51_FRF2: CA_magazine { // AtragMx GunList: 5.56x45mm M855 + class R3F_10Rnd_762x51_FRF2: CA_magazine { // AtragMx GunList: R3F FRF2 M993 initSpeed = 850; // R3F config }; class R3F_200Rnd_556x45_MINIMI: CA_magazine { // AtragMx GunList: 5.56x45mm M855 @@ -37,23 +37,23 @@ class CfgMagazines { class R3F_100Rnd_762x51_MINIMI: CA_magazine { // AtragMx GunList: 7.62x51mm M80 initSpeed = 820; // R3F config }; - class R3F_20Rnd_762x51_HK417: CA_magazine { // AtragMx GunList: 7.62x51mm M80 + class R3F_20Rnd_762x51_HK417: CA_magazine { // AtragMx GunList: 7.62x51mm M80 / HK417L 20": R3F HK417L M80 initSpeed = 820; // R3F config }; - class R3F_20Rnd_762x51_TRACER_HK417: R3F_20Rnd_762x51_HK417 {}; // AtragMx GunList: 7.62x51mm M80 - class R3F_7Rnd_127x99_PGM: CA_magazine { // AtragMx GunList: 12.7x99mm + class R3F_20Rnd_762x51_TRACER_HK417: R3F_20Rnd_762x51_HK417 {}; // AtragMx GunList: 7.62x51mm M80 / HK417L 20": R3F HK417L M80 + class R3F_7Rnd_127x99_PGM: CA_magazine { // AtragMx GunList: R3F PGM M33 initSpeed = 780; // R3F config }; - class R3F_7Rnd_127x99_PEI_PGM: R3F_7Rnd_127x99_PGM { // AtragMx GunList: 12.7x99mm + class R3F_7Rnd_127x99_PEI_PGM: R3F_7Rnd_127x99_PGM { // AtragMx GunList: R3F PGM M33 initSpeed = 780; // R3F config }; - class R3F_10Rnd_127x99_M107: CA_magazine { // AtragMx GunList: 12.7x99mm + class R3F_10Rnd_127x99_M107: CA_magazine { // AtragMx GunList: R3F M107 M33 initSpeed = 850; // R3F config }; - class R3F_10Rnd_127x99_PEI_M107: R3F_10Rnd_127x99_M107 { // AtragMx GunList: 12.7x99mm + class R3F_10Rnd_127x99_PEI_M107: R3F_10Rnd_127x99_M107 { // AtragMx GunList: R3F M107 M33 initSpeed = 850; // R3F config }; - class R3F_5Rnd_127x99_TAC50: CA_magazine { // AtragMx GunList: 12.7x99mm + class R3F_5Rnd_127x99_TAC50: CA_magazine { // AtragMx GunList: R3F TAC50 M33 initSpeed = 820; // R3F config }; }; diff --git a/optionals/compat_r3f/CfgWeapons.hpp b/optionals/compat_r3f/CfgWeapons.hpp index b9c8786557..97fcb6c23e 100644 --- a/optionals/compat_r3f/CfgWeapons.hpp +++ b/optionals/compat_r3f/CfgWeapons.hpp @@ -247,7 +247,7 @@ class CfgWeapons { }; class R3F_J4: ItemCore { // http://www.scrome.com/assets/templates/flexibility/pdf/Scrome_Riflescope_LTE_J4_Datasheet_GB.pdf ACE_ScopeHeightAboveRail = 3.20641; - ACE_ScopeAdjust_Vertical[] = {0, 16}; + ACE_ScopeAdjust_Vertical[] = {-8, 8}; ACE_ScopeAdjust_Horizontal[] = {-8, 8}; ACE_ScopeAdjust_VerticalIncrement = 0.2; ACE_ScopeAdjust_HorizontalIncrement = 0.2; @@ -267,8 +267,8 @@ class CfgWeapons { ACE_ScopeHeightAboveRail = 4.28091; }; class R3F_J8: ItemCore { // http://www.scrome.com/assets/templates/flexibility/pdf/Scrome_Marksman_Scope_LTE_Datasheet_GB.pdf - ACE_ScopeHeightAboveRail = 4.474; - ACE_ScopeAdjust_Vertical[] = {0, 20}; + ACE_ScopeHeightAboveRail = 4.474; // Inaccurate BDC reticle, designed to work with the vanilla ballistic and R3F values. + ACE_ScopeAdjust_Vertical[] = {-10, 10}; ACE_ScopeAdjust_Horizontal[] = {-10, 10}; ACE_ScopeAdjust_VerticalIncrement = 0.1; ACE_ScopeAdjust_HorizontalIncrement = 0.1; @@ -296,9 +296,9 @@ class CfgWeapons { }; }; class R3F_J10: ItemCore { // http://www.scrome.com/assets/templates/flexibility/pdf/Scrome_Marksman_Scope_LTE_Datasheet_GB.pdf - ACE_ScopeZeroRange = 1400; // Inaccurate reticle, designed to work with the vanilla ballistic. + ACE_ScopeZeroRange = 1400; // Inaccurate BDC reticle, designed to work with the vanilla ballistic and R3F values. ACE_ScopeHeightAboveRail = 4.474; - ACE_ScopeAdjust_Vertical[] = {0, 20}; + ACE_ScopeAdjust_Vertical[] = {-10, 10}; ACE_ScopeAdjust_Horizontal[] = {-10, 10}; ACE_ScopeAdjust_VerticalIncrement = 0.1; ACE_ScopeAdjust_HorizontalIncrement = 0.1; @@ -476,22 +476,22 @@ class CfgWeapons { class ACE_ATragMX_Presets { class R3F_PGM_Hecate_II { // Profile Name, Muzzle Velocity, Zero Range, Scope Base Angle, AirFriction, Bore Height, Scope Unit, Scope Click Unit, Scope Click Number, Maximum Elevation, Dialed Elevation, Dialed Windage, Mass, Bullet Diameter, Rifle Twist, BC, Drag Model, Atmosphere Model, Muzzle Velocity vs. Temperature Interpolation, C1 Ballistic Coefficient vs. Distance Interpolation - preset[] = {"R3F PGM M33", 780, 100, 0.0879633, -0.00062115, 6.35, 0, 2, 10, 120, 0, 0, 41.92, 12.7, 38.10, 0.670, 1, "ASM", {{-15, 761},{0, 768},{10, 775},{15, 780},{25, 794},{30, 803},{35, 814}}, {{0, 0},{0, 0},{0, 0},{0, 0},{0, 0},{0, 0},{0, 0}}}; + preset[] = {"R3F PGM M33", 780, 100, 0.0845596, -0.00062115, 6.35, 0, 2, 10, 120, 0, 0, 41.92, 12.7, 38.10, 0.670, 1, "ASM", {{-15, 761},{0, 768},{10, 775},{15, 780},{25, 794},{30, 803},{35, 814}}, {{0, 0},{0, 0},{0, 0},{0, 0},{0, 0},{0, 0},{0, 0}}}; }; class R3F_M107 { // Profile Name, Muzzle Velocity, Zero Range, Scope Base Angle, AirFriction, Bore Height, Scope Unit, Scope Click Unit, Scope Click Number, Maximum Elevation, Dialed Elevation, Dialed Windage, Mass, Bullet Diameter, Rifle Twist, BC, Drag Model, Atmosphere Model, Muzzle Velocity vs. Temperature Interpolation, C1 Ballistic Coefficient vs. Distance Interpolation - preset[] = {"R3F M107 M33", 850, 100, 0.0879633, -0.000601, 7.62, 0, 2, 10, 120, 0, 0, 41.92, 12.7, 38.10, 0.670, 1, "ASM", {{-15, 831},{0, 838},{10, 845},{15, 850},{25, 864},{30, 873},{35, 884}}, {{0, 0},{0, 0},{0, 0},{0, 0},{0, 0},{0, 0},{0, 0}}}; + preset[] = {"R3F M107 M33", 850, 100, 0.0841653, -0.000601, 7.62, 0, 2, 10, 120, 0, 0, 41.92, 12.7, 38.10, 0.670, 1, "ASM", {{-15, 831},{0, 838},{10, 845},{15, 850},{25, 864},{30, 873},{35, 884}}, {{0, 0},{0, 0},{0, 0},{0, 0},{0, 0},{0, 0},{0, 0}}}; }; class R3F_TAC50 { // Profile Name, Muzzle Velocity, Zero Range, Scope Base Angle, AirFriction, Bore Height, Scope Unit, Scope Click Unit, Scope Click Number, Maximum Elevation, Dialed Elevation, Dialed Windage, Mass, Bullet Diameter, Rifle Twist, BC, Drag Model, Atmosphere Model, Muzzle Velocity vs. Temperature Interpolation, C1 Ballistic Coefficient vs. Distance Interpolation - preset[] = {"R3F TAC50 M33", 820, 100, 0.0879633, -0.00060964, 7.62, 0, 2, 10, 120, 0, 0, 41.92, 12.7, 38.10, 0.670, 1, "ASM", {{-15, 801},{0, 808},{10, 815},{15, 820},{25, 834},{30, 843},{35, 854}}, {{0, 0},{0, 0},{0, 0},{0, 0},{0, 0},{0, 0},{0, 0}}}; + preset[] = {"R3F TAC50 M33", 820, 100, 0.0872461, -0.00060964, 7.62, 0, 2, 10, 120, 0, 0, 41.92, 12.7, 38.10, 0.670, 1, "ASM", {{-15, 801},{0, 808},{10, 815},{15, 820},{25, 834},{30, 843},{35, 854}}, {{0, 0},{0, 0},{0, 0},{0, 0},{0, 0},{0, 0},{0, 0}}}; }; class R3F_FRF2 { // Profile Name, Muzzle Velocity, Zero Range, Scope Base Angle, AirFriction, Bore Height, Scope Unit, Scope Click Unit, Scope Click Number, Maximum Elevation, Dialed Elevation, Dialed Windage, Mass, Bullet Diameter, Rifle Twist, BC, Drag Model, Atmosphere Model, Muzzle Velocity vs. Temperature Interpolation, C1 Ballistic Coefficient vs. Distance Interpolation - preset[] = {"R3F FRF2 M993", 850, 100, 0.0803840, -0.00110718, 6.35, 0, 2, 10, 120, 0, 0, 8.230, 7.82, 29.46, 0.359, 1, "ICAO", {{-15, 831},{0, 838},{10, 845},{15, 850},{25, 864},{30, 873},{35, 884}}, {{0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}}}; + preset[] = {"R3F FRF2 M993", 850, 100, 0.0783702, -0.00110718, 6.35, 0, 2, 10, 120, 0, 0, 8.230, 7.82, 29.46, 0.359, 1, "ICAO", {{-15, 831},{0, 838},{10, 845},{15, 850},{25, 864},{30, 873},{35, 884}}, {{0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}}}; }; class R3F_HK417L { // Profile Name, Muzzle Velocity, Zero Range, Scope Base Angle, AirFriction, Bore Height, Scope Unit, Scope Click Unit, Scope Click Number, Maximum Elevation, Dialed Elevation, Dialed Windage, Mass, Bullet Diameter, Rifle Twist, BC, Drag Model, Atmosphere Model, Muzzle Velocity vs. Temperature Interpolation, C1 Ballistic Coefficient vs. Distance Interpolation - preset[] = {"R3F HK417L M80", 820, 100, 0.0909184, -0.00103711, 7.62, 0, 2, 10, 120, 0, 0, 9.461, 7.82, 27.94, 0.398, 1, "ICAO", {{-15, 801},{0, 808},{10, 815},{15, 820},{25, 834},{30, 843},{35, 854}}, {{0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}}}; + preset[] = {"R3F HK417L M80", 820, 100, 0.0884448, -0.00103711, 7.62, 0, 2, 10, 120, 0, 0, 9.461, 7.82, 27.94, 0.398, 1, "ICAO", {{-15, 801},{0, 808},{10, 815},{15, 820},{25, 834},{30, 843},{35, 854}}, {{0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}}}; }; }; From 8548ff7eb8fd055c5013225b6acb620c753892a4 Mon Sep 17 00:00:00 2001 From: jonpas Date: Sun, 18 Mar 2018 12:49:48 +0100 Subject: [PATCH 067/235] Add support for Razor Wire on Prei Khmaoch Luong (#6199) * Add support for Razor Wire on Prei Khmaoch Luong * line for each model --- addons/logistics_wirecutter/script_component.hpp | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/addons/logistics_wirecutter/script_component.hpp b/addons/logistics_wirecutter/script_component.hpp index 69711d289b..74494a6aa4 100644 --- a/addons/logistics_wirecutter/script_component.hpp +++ b/addons/logistics_wirecutter/script_component.hpp @@ -18,6 +18,15 @@ //find is case sensitive, so keep everything lowercase -#define FENCE_P3DS ["mil_wiredfence_f.p3d","wall_indfnc_3.p3d", "wall_indfnc_9.p3d", "wall_indfnc_corner.p3d", "pletivo_wired.p3d", "wall_fen1_5.p3d", "net_fence_8m_f.p3d"] +#define FENCE_P3DS [\ + "mil_wiredfence_f.p3d",\ + "wall_indfnc_3.p3d",\ + "wall_indfnc_9.p3d",\ + "wall_indfnc_corner.p3d",\ + "pletivo_wired.p3d",\ + "wall_fen1_5.p3d",\ + "net_fence_8m_f.p3d",\ + "razorwire_f.p3d"\ +] #define SOUND_CLIP_TIME_SPACEING 1.5 From ffeadbfe43cb9f95f1f632ceba3548cbb0b87e0a Mon Sep 17 00:00:00 2001 From: Max Date: Thu, 22 Mar 2018 13:24:11 +0100 Subject: [PATCH 068/235] Add IR beam to visible laser mode * Adds an IR beam to a visible laser mode for vanilla laser pointers --- addons/laserpointer/CfgWeapons.hpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/addons/laserpointer/CfgWeapons.hpp b/addons/laserpointer/CfgWeapons.hpp index c86887e1c3..6afa29a344 100644 --- a/addons/laserpointer/CfgWeapons.hpp +++ b/addons/laserpointer/CfgWeapons.hpp @@ -36,7 +36,11 @@ class CfgWeapons { class ItemInfo: InventoryFlashLightItem_Base_F { mass = 6; - class Pointer {}; + class Pointer { + irLaserPos = "laser pos"; + irLaserEnd = "laser dir"; + irDistance = 5; + }; class FlashLight { color[] = {0,0,0}; From fc6f4418d36b19563bf5a50c6dbd475385a42a8f Mon Sep 17 00:00:00 2001 From: xnooztvFR Date: Mon, 2 Apr 2018 07:34:20 +0200 Subject: [PATCH 069/235] Fix french translation (#6180) * Fix french translation Fix french translation * Changes from alganthe/Vdauphin --- addons/advanced_ballistics/stringtable.xml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/addons/advanced_ballistics/stringtable.xml b/addons/advanced_ballistics/stringtable.xml index f638e4c366..0d52797b19 100644 --- a/addons/advanced_ballistics/stringtable.xml +++ b/addons/advanced_ballistics/stringtable.xml @@ -89,6 +89,7 @@ 총구속도 변화적용 啟用槍口初速變化 启用枪口初速变化 + Activer les variations de la vitesse initiale Simulates slight variations in muzzle velocity between each shot @@ -98,6 +99,7 @@ 각 사격 사이에 총구속도 변화를 시뮬레이션 합니다. 模擬每發子彈的槍口初速都略有不同 模拟每发子弹的枪口初速都略有不同 + Simule les légères variations Enable Ammo Temperature Simulation From e1241da4a9347e5ade56d3405ef795b55c9ea7a6 Mon Sep 17 00:00:00 2001 From: lugubrioushatchling <37968162+lugubrioushatchling@users.noreply.github.com> Date: Mon, 2 Apr 2018 02:35:27 -0300 Subject: [PATCH 070/235] Fixes for portuguese translation of ACE medical (#6222) * Update stringtable.xml * Update AUTHORS.txt * Update stringtable.xml * Update stringtable.xml --- AUTHORS.txt | 1 + addons/medical/stringtable.xml | 270 ++++++++++++++++----------------- 2 files changed, 136 insertions(+), 135 deletions(-) diff --git a/AUTHORS.txt b/AUTHORS.txt index bb3cdf4f33..11b34fff14 100644 --- a/AUTHORS.txt +++ b/AUTHORS.txt @@ -98,6 +98,7 @@ legman Legolasindar "Viper" licht-im-Norden87 looter +Lugubrious Hatchling Luigi "Luigium" Myrini Macusercom MarcBook diff --git a/addons/medical/stringtable.xml b/addons/medical/stringtable.xml index 1fcb999998..8a202c8b6a 100644 --- a/addons/medical/stringtable.xml +++ b/addons/medical/stringtable.xml @@ -73,7 +73,7 @@ Adénosine Inietta andenosina Aplikovat adenosine - Injetar Adenosina + Injetar adenosina Ввести аденозин アデノシンを投与 아데노신 주사 @@ -90,7 +90,7 @@ Ввести атропин Atropin beadása Inietta atropina - Injetar Atropina + Injetar atropina アトロピンを投与 아트로핀 주사 注射阿托品 @@ -105,7 +105,7 @@ Épinéphrine Ввести адреналин Epinefrin beadása - Injetar Epinefrina + Injetar epinefrina Inietta adrenalina アドレナリンを投与 에피네프린 주사 @@ -121,7 +121,7 @@ Ввести морфин Morphine Morfium beadása - Injetar Morfina + Injetar morfina Inietta morfina モルヒネを投与 모르핀 주사 @@ -137,7 +137,7 @@ Перелить кровь Transfuser (sang) Infúzió (vér) - Transfundir Sangue + Transfundir sangue Trasfusione di sangue 輸血する 혈액 수혈 @@ -154,7 +154,7 @@ Перелить плазму Infúzió (vérplazma) Trasfusione di plasma - Transfundir Plasma + Transfundir plasma 血しょうを投与 혈장 수혈 输血浆 @@ -170,7 +170,7 @@ Перелить физраствор Infúzió (sós víz) Trasfusione di soluzione salina - Transfundir Soro + Transfundir soro 生理食塩水を投与 생리식염수 수혈 注射生理食盐水 @@ -185,7 +185,7 @@ Poser garrot Наложить жгут Applica laccio emostatico - Aplicar Torniquete + Aplicar torniquete Érszorító alkalmazása 止血帯を巻く 지혈대 적용 @@ -217,7 +217,7 @@ Перевязать голову Panser Tête Fej kötözése - Atar Cabeça + Atar cabeça Benda la testa 包帯を頭へ 머리에 붕대감기 @@ -233,7 +233,7 @@ Перевязать торс Panser Torse Testtörzs kötözése - Atar Tronco + Atar tronco Benda il torso 包帯を胴体へ 몸통에 붕대감기 @@ -249,7 +249,7 @@ Перевязать левую руку Panser Bras Gauche Bal kar kötözése - Atar Braço Esquerdo + Atar braço esquerdo Benda il braccio sinistro 包帯を左腕に 왼팔에 붕대감기 @@ -265,7 +265,7 @@ Перевязать правую руку Panser Bras Droit Jobb kar kötözése - Atar Braço Direito + Atar braço direito Benda il braccio destro 包帯を右腕に 오른팔에 붕대감기 @@ -281,7 +281,7 @@ Перевязать левую ногу Panser Jambe Gauche Bal láb kötözése - Atar Perna Esquerda + Atar perna esquerda Benda la gamba sinistra 包帯を左足へ 왼쪽 다리에 붕대감기 @@ -297,7 +297,7 @@ Перевязать правую ногу Panser Jambe Droite Jobb láb kötözése - Atar Perna Direita + Atar perna direita Benda la gamba destra 包帯を右足へ 오른쪽 다리에 붕대감기 @@ -313,7 +313,7 @@ Введение морфина... Injection (morphine)... Morfium beadása... - Injetando Morfina... + Injetando morfina... Inietto la morfina... モルヒネを投与しています・・・ 모르핀 주사중... @@ -329,7 +329,7 @@ Введение адреналина... Injection (épinéphrine)... Epinefrin beadása... - Injetando Epinefrina... + Injetando epinefrina... Inietto l'adrenalina... アドレナリンを投与しています・・・ 에피네프린 주사중... @@ -344,7 +344,7 @@ Injection (adénosine)... Inietto l'andenosina Aplikuji adenosine... - Injetando Adenosina... + Injetando adenosina... Введение аденозина... アドネシンを投与しています・・・ 아데노신 주사중... @@ -361,7 +361,7 @@ Введение атропина... Atropin beadása... Inietto l'atropina... - Injetando Atropina + Injetando atropina アトロピンを投与しています・・・ 아트리핀 주사중... 阿托品注射中 ... @@ -376,7 +376,7 @@ Переливание крови... Transfusion (sang)... Infúzió vérrel... - Transfundindo Sangue... + Transfundindo sangue... Effettuo la trasfusione di sangue... 輸血しています・・・ 혈액 수혈중... @@ -393,7 +393,7 @@ Переливание физраствора... Infúzió sós vizzel... Effettuo la rasfusione di soluzione salina - Transfundindo Soro... + Transfundindo soro... 生理食塩水を投与しています・・・ 생리식염수 수혈중... 施打生理食盐水中 ... @@ -409,7 +409,7 @@ Переливание плазмы... Infúzió vérplazmával... Effettu la trasfusione di plasma... - Transfundindo Plasma... + Transfundindo plasma... 血しょうを投与しています・・・ 혈장 수혈중... 输血浆中 ... @@ -441,7 +441,7 @@ Наложение жгута... Érszorító felhelyezése... Sto applicando il laccio emostatico... - Applicando Torniquete + Applicando torniquete 止血帯を巻いています・・・ 지혈대 적용중... 使用军用止血带中 ... @@ -473,7 +473,7 @@ Pansement individuel Zárókötszer Bendaggio rapido - Curativo de Campo + Curativo de campo 緊急圧迫包帯 필드 드레싱 基础绷带 @@ -488,7 +488,7 @@ Nyomókötszer Bendaggio compressivo Bande extensible - Bandagem de Compressão + Atadura de compressão Obvaz Tlakový 弾性包帯 거즈 붕대 @@ -505,7 +505,7 @@ Bande compressive Rögzitő kötszer Bendaggio elastico - Bandagem Elástica + Atadura elástica 伸縮包帯 압박 붕대 弹性绷带 @@ -521,7 +521,7 @@ Bandage hémostatique QuikClot QuikClot (polvere emostatica) - QuikClot + QuikClot (Agente homeostático) クイッククロット 퀵 클롯 止血粉 @@ -537,7 +537,7 @@ Prendre le pouls Pulzus ellenőrzése Controlla il polso - Checar Pulso + Checar pulso 心拍数をはかる 맥박 확인 检查脉搏 @@ -553,7 +553,7 @@ Prendre la tension Vérnyomás megmérése Controlla pressionsa sanguigna - Chegar Pressão Sanguínea + Chegar pressão sanguínea 血圧をはかる 혈압 확인 检查血压 @@ -569,7 +569,7 @@ Fiche de triage Orvosi lap Triage Card - Cartão de Triagem + Cartão de triagem トリアージ カード 부상자 분류 카드 检伤分类卡 @@ -585,7 +585,7 @@ Sin entradas en esta tarjeta de clasificación. Ez az orvosi lap nem tartalmaz bejegyzést. Žádné záznamy na tomto štítku - Nenhuma entrada neste cartão de triagem + Nenhuma entrada neste cartão de triagem. トリアージ カードには何も無い。 부상자 분류 카드에 쓰여있는것이 없습니다. 此检伤分类卡上没有任何资料 @@ -617,7 +617,7 @@ Enlever garrot Érszorító leszedése Rimuovi laccio emostatico - Remover Torniquete + Remover torniquete 止血帯をはずす 지혈대 제거 移除军用止血带 @@ -697,7 +697,7 @@ Podat krev. transfúzi (1000ml) Vér adása intravénásan (1000ml) Effettua trasfusione sangue EV (1˙000ml) - Administrar Sangue IV (1000ml) + Administrar sangue IV (1000ml) 血液 IV (1000ml) をあたえる IV 혈액 수혈 (1000ml) 输血液 (1000ml) @@ -713,7 +713,7 @@ Podat krev. transfúzi (500ml) Vér adása intravénásan (500ml) Effettua trasfusione sangue EV (500ml) - Administrar Sangue IV (500ml) + Administrar sangue IV (500ml) 血液 IV (500ml) をあたえる IV 혈액 수혈 (500ml) 输血液 (500ml) @@ -729,7 +729,7 @@ Podat krev. transfúzi (250ml) Vér adása intravénásan (250ml) Effettua trasfusione sangue EV (250ml) - Administrar Sangue IV (250ml) + Administrar sangue IV (250ml) 血液 IV (250ml) をあたえる IV 혈액 수혈 (250ml) 输血液 (250ml) @@ -745,7 +745,7 @@ Podat plazmu (1000ml) Vérplazma adása intravénásan (1000ml) Effettua trasfusione plasma EV (1˙000ml) - Administrar Plasma IV (1000ml) + Administrar plasma IV (1000ml) 血しょう IV (1000ml) をあたえる IV 혈장 수혈 (1000ml) 输血浆 (1000ml) @@ -761,7 +761,7 @@ Podat plazmu (500ml) Vérplazma adása intravénásan (500ml) Effettua trasfusione plasma EV (500ml) - Administrar Plasma IV (500ml) + Administrar plasma IV (500ml) 血しょう IV (500ml) をあたえる IV 혈장 수혈 (500ml) 输血浆 (500ml) @@ -777,7 +777,7 @@ Podat plazmu (250ml) Vérplazma adása intravénásan (250ml) Effettua trasfusione plasma EV (250ml) - Administrar Plasma IV (250ml) + Administrar plasma IV (250ml) 血しょう IV (250ml) をあたえる IV 혈장 수혈 (250ml) 输血浆 (250ml) @@ -793,7 +793,7 @@ Podaz fyz. roztok (1000ml) Sós víz adása intravénásan (1000ml) Effettua trasfusione salina EV (1˙000ml) - Administrar Soro IV (1000ml) + Administrar soro IV (1000ml) 生理食塩水 IV (1000ml) をあたえる IV 생리식염수 수혈 (1000ml) 注射生理食盐水 (1000ml) @@ -809,7 +809,7 @@ Podaz fyz. roztok (500ml) Sós víz adása intravénásan (500ml) Effettua trasfusione salina EV (500ml) - Administrar Soro IV (500ml) + Administrar soro IV (500ml) 生理食塩水 IV (500ml) をあたえる IV 생리식염수 수혈 (500ml) 注射生理食盐水 (500ml) @@ -825,7 +825,7 @@ Podaz fyz. roztok (250ml) Sós víz adása intravénásan (250ml) Effettua trasfusione salina EV (250ml) - Administrar Soro IV (250ml) + Administrar soro IV (250ml) 生理食塩水 IV (250ml) をあたえる IV 생리식염수 수혈 (250ml) 注射生理食盐水 (250ml) @@ -1065,7 +1065,7 @@ Obvaz (Standartní) Kötszer (Általános) Bendaggio (base) - Bandagem(Básico) + Atadura (Básica) 包帯 (緊急圧迫) 붕대 (기본) 基础绷带 @@ -1096,7 +1096,7 @@ Opatrunek materiałowy, używany do przykrywania ran, zakładany na ranę po zatamowaniu krwawienia. Egy különleges anyagú kötszer sebek betakarására, amelyet a vérzés elállítása után helyeznek fel. Una benda apposita, utilizzata per coprire una ferita, la quale viene applicata su di essa una volta fermata l'emorragia. - Uma curativo, material específico para cobrir um ferimento que é aplicado assim que o sangramento é estancando. + Um curativo, material específico usado para cobrir um ferimento assim que o sangramento é estancando. Obvaz je vhodným způsobem upravený sterilní materiál, určený k překrytí rány, případně k fixaci poranění. 緊急圧迫包帯は傷口を血液凝固剤でおおうようにできていて、つかうと出血の原因を取りさります。 드레싱, 출혈을 막고서 상처를 덮기위해 쓰는 물건입니다. @@ -1112,7 +1112,7 @@ Bandaż (uciskowy) Nyomókötszer Bendaggio compressivo - Bandagem de Compressão + Atadura de compressão Obvaz (Tlakový) 弾性包帯 거즈 붕대 @@ -1128,7 +1128,7 @@ Używany w celu opatrywania średnich i dużych ran oraz tamowania krwawienia. Dobrze radzi sobie z tamowaniem ran płatowych oraz postrzałowych. Közepestől nagyig terjedő sebek betakarására és vérzés elállítására használt kötszer Usato su ferite medie o larghe per fermare emorragie. - Usado para o preenchimento de cavidades geradas por ferimentos médios e grandes e estancar o sangramento. + Usado para atar ferimentos médios ou grandes e estancar sangramentos. Používá se k zastavení středních až silnějších krvácení 弾性包帯は粘着フィルム状で、普通から大きめなケガにつかい止血します。 중형 또는 대형 상처를 채우고 출혈을 막기위해 쓰입니다 @@ -1144,7 +1144,7 @@ Egy kötszerfajta, melyet a sebek nyomására használnak a vérzés elállítása és sebgyógyulás érdekében. A nyomókötés egy lehetőség nagyobb polytraumatikus sérülések esetén. Un bendaggio usato per coprire la ferita, fermare il sanguinamento e facilitarne la guarigione. Questa tecnica è opzionale su ferite multiple. Ein Verband, um die Wunde abzudecken und die Wundheilung zu fördern. Wunden abdecken ist eine Option bei größeren Polytraumen - Uma bandagem usada para preencher o ferimento para estancar o sangramento e facilitar a cicatrização. Preenchimento de feridas é uma opção em ferimentos de politrauma grandes. + Atadura usada para atar o ferimento, estancando o sangramento e facilitando a cicatrização. Atar feridas é uma opção em ferimentos de politrauma grandes. Tlakový obvaz se skládá se ze sterilní krycí vrstvy, na kterou je přiložena silná vrstva savého materiálu stlačující cévu v ráně a která je přitlačována k ráně a připevněna obinadlem. Slouží k zastavení silnějších krvácení. 包帯をつかうと出血を防ぎ治療を促進させます。また大きめな多発性外傷にたいしても使えます。 출혈을 막고 상처를 치유하기 위한 붕대. 다발성외상의 경우 상처를 채우는것도 한 가지 방법입니다. @@ -1161,7 +1161,7 @@ Obvaz (Elastický) Rögzító kötszer Benda (elastica) - Bandagem (Elástica) + Atadura (Elástica) 包帯 (伸縮) 붕대 (압박) 弹性绷带 @@ -1176,7 +1176,7 @@ Bandaż elastyczny służy do opatrywania ran ciętych oraz kłutych. Dobrze radzi sobie również ze zgniecieniami tkanek miękkich oraz rozerwaniami powierzchni skóry. Rugalmas kötszercsomag, "rögzítő" Kit di bendaggio, elastico - Kit de Bandagem, Elástica + Kit de ataduras elásticas Sada obvazů, Elastická 包帯キット (伸縮) 붕대, 압박 @@ -1192,7 +1192,7 @@ Brinda una compresión uniforme y ofrece soporte extra a una zona lesionada Egyenletes nyomást és támogatást biztosít a sebesült felületnek. Permette di comprimere e aiutare la zone ferita. - Esta bandagem pode ser utilizada para comprimir o ferimento e diminuir o sangramento e garantir que o ferimento não abra em movimento. + Esta atadura pode ser utilizada para comprimir o ferimento e diminuir o sangramento e garantir que não se abra em movimento. Hodí se k fixačním účelům a to i v oblastech kloubů. 負傷部分へ最大の対応と止血を続けられます。 부상 부위를 골고루 압박해주면서 동시에 고정시켜 줍니다. @@ -1240,7 +1240,7 @@ Ein Hilfsmittel, das Druck auf Venen und Arterien ausübt und so den Blutfluss verringert. Egy szűkítőeszköz, mely a vénás és artériás nyomás keringés helyi összenyomására szolgál, ezzel lelassítva vagy megállítva az adott területen a vérkeringést. Ez csökkenti a vérvesztés mértékét. Un laccio emostatico usato per comprimere le vene e arterie per bloccare o rallentare la circolazione del sangue e quindi rallentare dissanguamenti. - A aparelho que comprime as artérias e veias para diminuir a perda de sangue. + Aparelho que comprime as artérias e veias para diminuir a perda de sangue. Zařízení používané ke stlačení venózního a arteriálního oběhu. V důsledku dochází ke zpomalení toku krve a tedy i snížení ztrát krve. 止血帯は静脈や動脈へ圧力をかけ、循環を遅らせることで血液の流れをおそくし、失血を防ぎます。 정맥과 동맥을 압축시키켜 혈액순환을 억제 혹은 늦추게하여 혈액손실을 줄이는 도구입니다. @@ -1303,7 +1303,7 @@ Auto-injecteur d'adénosine Autoiniettore di adenosina Auto-adenosine - Auto-injetor de Adenosina + Auto-injetor de adenosina Аденозин в пневмошприце アデノシン注射器 아데노신 자동주사기 @@ -1318,7 +1318,7 @@ Utilisé pour contrer les effets de l'épinéphrine Usato per contrastare l'effetto dell'epinefrina Slouží jako protiváha Adrenalinu - Usado para combater os efeitos da Epinefrina + Usado para combater os efeitos da epinefrina Используется для купирования эффектов адреналина アドレナリンの反対の効果としてつかいます。 에피네프린 대응책으로 쓰입니다 @@ -1333,7 +1333,7 @@ Un composé utilisé pour contrer les effets de l'épinéphrine Medicamento usato per contrastare l'effetto dell'epinefrina Droga používaná k tlumení efektu Adrenalinu - Uma droga usada para combater os efeitos da Epinefrina + Uma droga usada para combater os efeitos da epinefrina Препарат используется для купирования эффектов адреналина つかうと、アドレナリンと反対の効果がでます。 에피네프린에 대응용으로 쓰이는 약품 @@ -1350,7 +1350,7 @@ Auto-atropine Atropin autoinjektor Autoiniettore di atropina - Auto-injetor de Atropina + Auto-injetor de atropina アトロピン注射器 아트로핀 자동주사기 阿托品自动注射器 @@ -1428,7 +1428,7 @@ EpiPen z adrenaliną ma działanie sympatykomimetyczne, tj. pobudza receptory alfa- i beta-adrenergiczne. Pobudzenie układu współczulnego prowadzi do zwiększenia częstotliwości pracy serca, zwiększenia pojemności wyrzutowej serca i przyśpieszenia krążenia wieńcowego. Pobudzenie oskrzelowych receptorów beta-adrenergicznych wywołuje rozkurcz mięśni gładkich oskrzeli, co w efekcie zmniejsza towarzyszące oddychaniu świsty i duszności. Una sostanza che permette di dilatare i bronchi, aumentare il battito cardiaco e combattere effetti di reazioni allergiche. Usato anche in casi di arresto cardiaco. Ein Medikament, das die Bronchien erweitert, die Herzfrequenz erhöht und Symptome von allergischen Reaktionen (Anaphylaxie) bekämpft. Wird bei plötzlichem Herzstillstand verabreicht. - Uma droga trabalha dilatando os bronquios, aumentando a frequência cardíaca e combate efeitos de reações alérgicas(anáfilaticas). Usado em casos de parada cardiaca com poucas changes de recuperação. + Uma droga que trabalha dilatando os brônquios, aumentando a frequência cardíaca e combate efeitos de reações alérgicas (anáfilaticas). Usado em casos de parada cardíaca com poucas chances de recuperação. Egy hormon, mely a szimpatikus idegrendszer által kitágítja a hörgőket, valamint megnöveli a szívverést, ezzel ellensúlyozva ilyen jellegű allergiás reakciókat (anafilaxiás sokk). Hirtelen szívmegállás esetén is használt, idő alatt csökkenő hatásfokkal. Zúžení periferních cév díky působení na alfa receptory a následné kontrakci hladkých svalů, tím dochází k tzv. centralizaci oběhu, krev se soustřeďuje v životně důležitých centrálních orgánech (srdce, mozek, plíce), působí také pozitivně na srdeční činnost a dochází ke zvýšení krevního tlaku a tepu. Dále se používá při náhlé srdeční zástavě. 薬は気管支を拡張するよう交感神経を拡張させ、心拍数を増加させます。それにアレルギー反応を収める効果もあります(アナフィラキシー ショック)。得られる効果は少ないですが、心停止している場合などにつかわれます。 @@ -1541,7 +1541,7 @@ Vér-infúzió, intravénás bejuttatásra egy páciensnek (hidegen tárolandó) Sangue usato per ripristinare pazienti in cui si è verificata una perdita di sangue (conservare al fresco) Blut IV, Bluthaushalt des Patienten wiederherstellen. (Kühl halten) - Sangue intravenoso, para restaurar o volume sanguinio do paciente.(Manter frio) + Sangue intravenoso, para restaurar o volume sanguíneo do paciente.(Manter frio) Krevní transfuze pro doplnění pacientovi krve (skladujte v chladu) 血液 IV は、患者へ血液を補給します。(要低温保存) 혈액 IV, 환자에게 혈액을 공급합니다. (차갑게 할것) @@ -1556,7 +1556,7 @@ Sangue 0 negativo usato per ripristinare sangue in pazienti in cui si è verificata una perdita di sangue. Culot sanguin O- utilisé dans de rares et stricts cas pour compléter une perte de sang importante. Administré normalement lors d'un MEDEVAC. O Negative Blutinfusion wird nur in seltenen Fällen verwendet, um den Bluthaushalt des Patienten zu ergänzen. Wird in der Regel wärend der Transportphase durchgeführt. - Sangue O- , utilizado em casos raros para rapidamente repor o sangue. Uso habitual ocorre durante o transporte ou em estações de tratamento. + Sangue "O" de fator Rh negativo, utilizado em casos raros para rapidamente repor o sangue. Uso habitual ocorre durante o transporte ou em estações de tratamento. Nullás vércsoportú, Rh-negatív vér-infúzió, melyet kritikus és ritka helyzetekben vérutánpótlásra használnak, jellemzően az orvosi ellátás szállítási fázisa közben. 0 Rh negativní krev se používá v vzácných případech k doplnění pacientovy hladiny krve, obvykle při převozu zraněné osoby do nemocnice. O 型への輸血はまれで厳格であり、通常は治療のための輸送段階で輸血をおこないます。 @@ -1621,7 +1621,7 @@ 0,9%-os sósvíz-infúzió, a páciens vérmennyiségének helyreállítására Soluzione salina, usata per ripristinare sangue nei pazienti. Kochsalzlösung, ein medizinisches Volumenersatzmittel - Solução Salina Intravenosa 0.9%, para restaurar o volume de sangue temporariamente. + Solução salina intravenosa, para restaurar o volume de sangue. Fyziologický roztok se aplikuje intravenózně a slouží k obnově pacientovi krve 生理食塩水 IV は、患者の血液量を補助します 생리식염수, 환자의 혈액량을 보충할때 쓰입니다 @@ -1637,7 +1637,7 @@ Egy orvosi térfogat-helyreállító készítmény, melyet intravénás módon lehet a szervezetbe juttatni. Una soluzione medica per ripristinare il volume del sangue introdotta tramite trasfusione EV. Ein medizinisches Volumenersatzmittel, dass durch einen intravenösen Zugang in den Blutkreislauf verabreicht wird. - Uma reposição temporaria para restaurar a pressão arterial perdida por perda de sangue. + Uma reposição temporária para restaurar a pressão arterial perdida por perda de sangue. Fyziologický roztok se využívá nejčastěji jako infuze při dehydrataci organismu. 生理食塩水 IV を静脈へ投与し、血液量を増加させることができます。 혈류에 IV로 투여되는 의료 용적 대체 요법 @@ -1685,7 +1685,7 @@ Verbandpäckchen (QuikClot) Általános zárókötszer (QuikClot) Bendaggio emostatico (QuikClot) - Bandagem básica (Coagulante) + Atadura básica (Coagulante) Hemostatický obvaz (QuikClot) 緊急圧迫止血包帯 (クイッククロット) 필드 드레싱 (퀵 클롯) @@ -1701,7 +1701,7 @@ Bandage mit Gerinnungsmittel QuikClot kötszer Bendaggio emostatico (QuikClot) - Bandagem com agente coagulante + Atadura com agente coagulante Hemostatický obvaz (QuikClot) クイッククロット包帯 퀵 클롯 붕대 @@ -1717,7 +1717,7 @@ Verband mit Gerinnungsmittel, um starke Blutung zu behandeln. Hemostatikus kötszer egy vérzésgátló anyaggal. Bendaggio emostatico con coagulante che permette di arrestare perdite di sangue - Bandagem Hemostática com coagulante que controla hemorragia médias e grandes com risco de vida. + Atadura homeostática com coagulante que controla hemorragias médias e grandes. Hemostatický obvaz určený k zástavě krvácení 血液凝固剤をふくむ包帯により、止血できます。 지혈시 사용하는 붕대로 혈액 응고제를 포함하고있습니다. @@ -1733,7 +1733,7 @@ Persönliches Erste-Hilfe-Set Elsősegélycsomag Pronto soccorso personale - Kit De Primeiros Socorros Pessoal + Kit de Primeiros Socorros Pessoal Osobní lékárnička (PAK) 応急処置キット 개인응급키트 @@ -1749,7 +1749,7 @@ Beinhaltet medizinisches Material für fortgeschrittene Behandlung und zum Nähen. Változatos segédfelszereléseket tartalmaz sebvarráshoz és haladó elsősegélynyújtáshoz Include vario materiale medico per trattamenti avanzati. - Inclui vários tratamentos materiais para custura e tratamento avançado + Inclui vários tratamentos materiais para costura e tratamento avançado Osobní lékárnička obsahuje zdravotnický materiál umožňující šití a pokročilejší ošetřování raněných 縫合や高度な処置に必要とされる、さまざまな治療器具が含まれています。 봉합및 고급 조치에 필요한 다양한 치료 도구가 있습니다. @@ -1797,7 +1797,7 @@ Operationsset Sebészeti készlet Kit chirurgico - Kit Cirurgico + Kit Cirúrgico Chirurgická sada 縫合キット 봉합 키트 @@ -1829,7 +1829,7 @@ Trousse chirurgicale pour le traitement sur le terrain Sebészeti készlet komplex orvosi feladatok terepen való ellátására Kit chirurgico per trattamenti avanzati sul campo. - Kit Cirurgico para uso de tratamento médico avançado em campo. + Kit Cirúrgico para tratamento médico avançado em campo. Chirurgická sada určená k pokročilejším zdravotnickým zákrokům v poli 縫合キットは戦場で高度な処置をするためにつかわれます。 야전 상황에서 고급 의료 처치를 위해 사용되는 봉합 키트 @@ -1861,7 +1861,7 @@ Leichensack Hullazsák Sacca per corpi - Saco para cadáver + Saco mortuário Pytel na mrtvoly 死体袋 尸袋 @@ -1909,7 +1909,7 @@ Blutdruck Vérnyomás Pressione sanguigna - Pressão Arterial + Pressão arterial Krevní tlak 血圧を測る 혈압 @@ -1925,7 +1925,7 @@ Blutdruck kontrollieren... Vérnyomás megmérése... Controllando la pressione sanguigna.. - Aferindo Pressão Arterial... + Aferindo pressão arterial... Měřím krevní tlak... 血圧を測定しています・・・ 혈압 측정증... @@ -1973,7 +1973,7 @@ Hai riscontrato una pressione di %2/%3 Wyczuwasz ciśnienie krwi o wartości %2/%3 Der Blutdruck liegt bei %2/%3 - A Pressão Arterial é de %2/%3 + A pressão arterial é de %2/%3 Naměřil si krevní tlak u %2/%3 血圧は %2/%3 혈압이 %2/%3 이다 @@ -1989,7 +1989,7 @@ Blutdruck ist niedrig A vérnyomás alacsony La pressione sanguigna è bassa - Pressão Arterial baixa + Pressão arterial baixa Naměřil si nízký krevní tlak 血圧はかなり低い 发现到低血压 @@ -2005,7 +2005,7 @@ Blutdruck ist normal A vérnyomás normális La pressione sanguigna è normale - Pressão Arterial normal + Pressão arterial normal Naměřil si normální krevní tlak 血圧は通常 发现到正常血压 @@ -2021,7 +2021,7 @@ Blutdruck ist hoch A vérnyomás magas La pressione sanguigna è alta - Pressão Arterial Alta + Pressão arterial alta Naměřil si vysoký krevní tlak 血圧はかなり高い 发现到高血压 @@ -2037,7 +2037,7 @@ Patient hat keinen Blutdruck Nem észlelhető vérnyomás La pressione sanguigna è assente - Sem Pressão Arterial + Sem pressão arterial Nenaměřil si žádný krevní tlak 血圧は測れなかった 혈압이 잡히지 않는다 @@ -2053,7 +2053,7 @@ Du konntest keinen Blutdruck feststellen Nem sikerült a vérnyomás megmérése Manca strumento per misurare pressione sanguigna - Você falhou em aferir a Pressão Arterial + Você falhou em aferir a pressão arterial Nedokázal si změřit krevní tlak 血圧を測るのに失敗 혈압을 잡을 수 없었다 @@ -2149,7 +2149,7 @@ Kontrolliere Herzfrequenz... Szívverés-szám mérése... Controllando il battito cardiaco... - Aferindo Pulso... + Aferindo pulso... Kontroluji srdeční tep... 心拍数を測定しています・・・ 맥박 확인중... @@ -2261,7 +2261,7 @@ Herzfrequenz ist %2 A szívverés-szám %2 Il battito cardiaco è %2 - A Freqüência Cardíaca é de %2 + A freqüência cardíaca é de %2 Nahmatal jsi srdeční tep u %2 心拍数は %2 心跳为%2 @@ -2277,7 +2277,7 @@ Schwacher Puls A szívverés-szám alacsony Hai riscontrato un debole battito cardiaco - Freqüência Cardíaca baixa + Freqüência cardíaca baixa Nahmatal si slabý srdeční puls 自分の心拍数は低い 心跳微弱 @@ -2293,7 +2293,7 @@ Starker Puls A szívverés-szám magas Hai riscontrato un forte battito cardiaco - Freqüência Cardíaca normal + Freqüência cardíaca normal Nahmatal si silný srdeční puls 自分の心拍数は強い 心跳过快 @@ -2309,7 +2309,7 @@ Normaler Puls A szívverés-szám normális Hai riscontrato un normale battito cardiaco - Freqüência Cardíaca alta + Freqüência cardíaca alta Nahmatal si normální srdeční puls 自分の心拍数は通常 心跳正常 @@ -2325,7 +2325,7 @@ Kein Puls gefunden Nem észlelhető szívverés Hai riscontrato una assenza di battito cardiaco - Sem Freqüência Cardíaca + Sem freqüência cardíaca Žádný puls 心拍数を測れなかった 量不到心跳 @@ -2565,7 +2565,7 @@ Bekötözöd %1-t (%2) Stai bendando %1 (%2) Du verbindest %1 (%2) - Você aplica bandagem no paciente %1 (%2) + Você aplica atadura no paciente %1 (%2) Obvazuješ %1 (%2) %1 (%2) 包帯をつかった %1 (%2) 붕대를 감았다 @@ -2725,7 +2725,7 @@ Погрузить пациента в Embarquer le patient Sebesült berakása - Carregar Paciente Em + Carregar paciente em Carica paziente nel 患者を載せる 환자 싣기 @@ -2741,7 +2741,7 @@ Выгрузить пациента Débarquer le patient Sebesült kihúzása - Descarregar Paciente + Descarregar paciente Scarica il paziente 患者を降ろす 환자 내리기 @@ -2757,7 +2757,7 @@ Le patient débarque Sebesült kihúzása Scarica il paziente - Descarregar Paciente + Descarregar paciente Vyložit pacienta 患者を降ろす 환자 내리기 @@ -2773,7 +2773,7 @@ Embarquer le patient Sebesült berakása Carica il paziente - Carregar Paciente Em + Carregar paciente em Naložit pacienta 患者を載せる 환자 싣기 @@ -2789,7 +2789,7 @@ Mettre le corps dans la housse mortuaire Test hullazsákba helyezése Metti il corpo nella sacca per cadaveri - Colocar corpo dentro do saco para cadáver + Colocar corpo dentro do saco mortuário Umístni tělo do pytle na mrtvoly 死体袋に入れる 시체 가방에 담기 @@ -2805,7 +2805,7 @@ Placement du corps dans la housse... Test hullazsákba helyezése... Stai mettendo il corpo nella sacca... - Colocando corpo dentro do saco para cadáver... + Colocando corpo dentro do saco mortuário... Umístňuji tělo do pytle na mrtvoly... 死体袋へ入れています・・・ 시체 가방에 담는중... @@ -2821,7 +2821,7 @@ %1 a pansé le patient %1 bekötözte a pácienst %1 ha bendato il paziente - %1 aplicou bandagem no paciente + %1 aplicou atadura no paciente %1 již obvázal pacienta %1 は包帯を巻いた %1 已包扎伤者 @@ -2948,7 +2948,7 @@ Très légèrement blessé Nagyon enyhén sérült Velmi lehce raněn - Muito levemente ferido + Ferido muito levemente かなり浅い傷 매우 가벼운 부상 小伤 @@ -2996,7 +2996,7 @@ Bras gauche Bal kar Levá ruka - Braço Esquerdo + Braço esquerdo 左腕 왼쪽 팔 左手 @@ -3012,7 +3012,7 @@ Bras droit Jobb kar Pravá ruka - Braço Direito + Braço direito 右腕 오른쪽 팔 右手 @@ -3028,7 +3028,7 @@ Jambe gauche Bal láb Levá noha - Perna Esquerda + Perna esquerda 左足 왼쪽 다리 左脚 @@ -3044,7 +3044,7 @@ Jambe droite Jobb láb Pravá noha - Perna Direita + Perna direita 右足 오른쪽 다리 右脚 @@ -3055,7 +3055,7 @@ Lecz w pełni zabandażowane hitpointy Curar miembros totalmente vendados Исцелять полностью перебинтованные части тела - Curar hitpoints totalmente enfaixados + Curar pontos de vida totalmente enfaixados Heal fully bandaged hitpoints Cura hitpoints completamente bendati Soigner les plaies entièrement bandées @@ -3071,7 +3071,7 @@ Ból jest tymczasowo zwalczany Bolest je potlačena pouze dočasně El dolor se suprime solo temporalmente - Dor é suprimida somente temporáriamente + Dor é suprimida somente temporariamente La douleur est temporairement calmée A fájdalom csak ideiglenesen csökken Боль приглушается только временно @@ -3090,7 +3090,7 @@ Tipo de efecto de dolor Type d'effet de douleur Fájdalom-effekt típusa - Tipo do efeito de dor + Tipo do efeito da dor Typ bolesti - efekt 痛みの種類 고통 효과 종류 @@ -3123,7 +3123,7 @@ Aberration chromatique Kromatikus aberráció Chromatická aberace - Aberração Cromática + Aberração cromática 色の収差 색수차 色差 @@ -3152,7 +3152,7 @@ Wähle den Menüstil: Standard 3D-Auswahl oder kreisförmig. Выберите тип меню: стандартный вариант (3D) или радиальный Selecciona el tipo de menú que prefieres: selecciones 3d por defecto o radial. - Selecione o tipo de menu que você prefere; padrão seleções 3d ou radial. + Selecione o tipo de menu que você prefere; seleções 3d padrão ou radial. Válaszd ki a neked megfelelő menüt: Alapértelmezett 3D válogatás, vagy kerek. Zvolte typ menu: základní 3D výběr nebo kruhový Seleziona il tipo di menù che preferisci: selezione (3D), radiale o disabilitata. @@ -3202,7 +3202,7 @@ Draśnięcie Arañazo Horzsolás - Raspão + Escoriação Odřenina 擦り傷 찰과상 @@ -3218,7 +3218,7 @@ Pomniejsze draśnięcie Arañazo menor Kis horzsolás - Raspão leve + Escoriação leve Malá odřenina 小さな擦り傷 소형 찰과상 @@ -3234,7 +3234,7 @@ Średnie draśnięcie Arañazo medio Közepes horzsolás - Raspão médio + Escoriação média Středně velká odřenina 中くらいの擦り傷 중형 찰과상 @@ -3250,7 +3250,7 @@ Duże draśnięcie Arañazo severo Nagy horzsolás - Raspão grave + Escoriação grave Velká odřenina 大きな擦り傷 대형 찰과상 @@ -3346,7 +3346,7 @@ Pomniejsze stłuczenie Contusión menor Kis zúzódás - Contusão leve + Hematoma leve Malá modřina 小さな打ち傷 소형 타박상 @@ -3362,7 +3362,7 @@ Średnie stłuczenie Contusión media Közepes zúzódás - Contusão média + Hematoma médio Středně velká modřina 中くらいの打ち傷 중형 타박상 @@ -3378,7 +3378,7 @@ Duże stłuczenie Contusión severa Nagy zúzódás - Contusão grave + Hematoma grande Velká modřina 大きな打撲傷 대형 타박상 @@ -3394,7 +3394,7 @@ Zgniecienie tkanek miękkich Tejido triturado Zúzott szövet - Tecido esmagado + Contusão Zhmoždění měkkých tkání 圧挫傷 압궤상 @@ -3410,7 +3410,7 @@ Pomniejsze zgniecienie tkanek miękkich Tejido triturado menor Kis zúzott szövet - Tecido esmagado leve + Contusão leve Malé zhmoždění měkkých tkání 小さな圧挫傷 소형 압궤상 @@ -3426,7 +3426,7 @@ Średnie zgniecienie tkanek miękkich Tejido triturado medio Közepes zúzott szövet - Tecido esmagado médio + Contusão média Střední zhmoždění měkkých tkání 中くらいの圧挫傷 중형 압궤상 @@ -3442,7 +3442,7 @@ Duże zgniecienie tkanek miękkich Tejido triturado severo Nagy zúzött szövet - Tecido esmagado grave + Contusão grande Velké zhmoždění měkkých tkání 大きな圧挫傷 대형 압궤상 @@ -3586,7 +3586,7 @@ Plaie pénétrante Herida de bala Lőtt seb - Ferimento por projétil de arma de fogo + Trauma balístico Střelné poranění 銃創 총상 @@ -3602,7 +3602,7 @@ Herida de bala menor Kis lőtt seb Petite plaie pénétrante - Ferimento leve por projétil de arma de fogo + Trauma balístico pequeno Malé střelné poranění 小さな銃創 소형 총상 @@ -3618,7 +3618,7 @@ Herida de bala media Közepes lőtt seb Moyenne plaie pénétrante - Ferimento médio por projétil de arma de fogo + Trauma balístico médio Střední střelné poranění 中くらいの銃創 중형 총상 @@ -3634,7 +3634,7 @@ Herida de bala severa Nagy lőtt seb Grande plaie pénétrante - Ferimento grave por projétil de arma de fogo + Trauma balístico grande Velké střelné poranění 大きな銃創 대형 총상 @@ -3650,7 +3650,7 @@ Perforation Herida punzante Szúrt seb - Ferimento por perfuração + Ferimento perfurante Bodná rána 刺し傷 자상 @@ -3666,7 +3666,7 @@ Herida punzante menor Kis szúrt seb Petite perforation - Ferimento leve por perfuração + Ferimento perfurante leve Malá bodná rána 小さな刺し傷 소형 자상 @@ -3682,7 +3682,7 @@ Herida punzante media Közepes szúrt seb Moyenne perforation - Ferimento médio por perfuração + Ferimento perfurante médio Střední bodná rána 中くらいの刺し傷 중형 자상 @@ -3698,7 +3698,7 @@ Herida punzante severa Nagy szúrt seb Grande perforation - Ferimento grave por perfuração + Ferimento perfurante grave Velká bodná rána 大きな刺し傷 대형 자상 @@ -3950,7 +3950,7 @@ Activar los restos médicos que se crean en el tratamiento Aktiviere Abfälle, wenn eine Behandlung durchgeführt wurde Vytváří odpad zdravotnického materiálu pří léčení - Ativar lixo ser criado após tratamento + Ativar lixo a ser criado após tratamento Activer la création de détrimus au début des traitements Engedélyezi a szemét keletkezését ellátáskor Abilita la creazione della barella dopo trattamento @@ -3966,7 +3966,7 @@ Tiempo de vida de los restos médicos Dauer des angezeigten Abfalls Životnost pro odpadky - Tempo de vida dos objetos do lixo + Tempo de vida do lixo médico Durée d'affichage des détritus Szemétobjektumok élettartama Tempo di vita delle barelle @@ -3982,7 +3982,7 @@ ¿Por cuánto tiempo deben permanecer los restos médicos? En segundos. -1 es para siempre. Wie lange sollen Abfälle am Boden liegen (in Sekunden)? -1 ist für immer. Za jak dlouho začnou odpadky mizet? V sekundách. -1 navždy. - Quanto tempo os objetos do lixo devem ficar? Em segundos. -1 é para sempre. + Quanto tempo o lixo médico deve permanecer? Em segundos. -1 é para sempre. Combien de temps doivent rester affiché les détritus? En secondes. -1 pour tout le temps Milyen sokáig legyenek jelen a szemétobjektumok (másodpercben)? A -1 végtelen időt jelent. Per quanto devono restare le barelle? In secondi. -1 è permanente @@ -4046,7 +4046,7 @@ ¿Cuál es el daño que un jugador puede sufrir antes de morir? Wie viel Schaden kann ein Spieler erleiden, bevor er getötet wird? Jaké poškození může hráč dostat než bude zabit? - Qal é o dano que um jogador pode sofrer antes de morrer? + Qual é o dano que um jogador pode sofrer antes de morrer? Quels dégâts peut subir un joueur avant d'être tué Mennyi sérülést szenvedhet el egy játékos, mielőtt meghal? Quanto è il danno che un giocatore può sostenere prima di essere ucciso? @@ -4174,7 +4174,7 @@ Mover una unidad a inconsciente en vez de a muerta Lässt eine Einheit bewusstlos werden anstatt zu sterben Jednotka upadne do bezvědomí namísto smrti - Fazer a unidade ficar inconsciente invés de morrer + Fazer a unidade ficar inconsciente ao invés de morrer Forcer l'inconscience au lieu de la mort instantanée Egy egység kerüljön eszméletlen állapotba a halott helyett Imposta un'unità come incosciente invece di morta @@ -4429,7 +4429,7 @@ Accidentes de vehículos Fahrzeugunfälle Poškození z kolize - Batidas de veículos + Colisão de veículos Accident en véhicule Járműbalesetek Schianto Veicoli @@ -4445,7 +4445,7 @@ ¿Las unidades reciben daño de un accidente de tráfico? Verursacht ein Fahrzeugunfall Verletzungen Dostane jednotka poškození při autonehodě? - As unidades recebem dano de uma batida de veículo? + As unidades recebem dano de uma colisão de veículo? Les unités subissent des dégats lors d'accident Sérülnek-e az egységek autós ütközés során? Le unità sostengono danni da incidenti con veicoli? @@ -4462,7 +4462,7 @@ Activer l'épinéphrine Permette epinefrina Povolit adrenalin - Permitir Epinefrina + Permitir epinefrina Разрешить Адреналин アドレナリンの許可 에피네프린 활성화 @@ -4477,7 +4477,7 @@ Qui peut utiliser l'adrénaline pour les soins complets ? (Médical basique seulement) Chi può usare l'epinefrina per la cura completa? (solo per sistema medico di base) Kdo může použít adrenalin k úplnému vyléčení? (Pouze základní zdravotní systém) - Quem pode usar Epinefrina para cura completa? (Somente sistema médico básico) + Quem pode usar epinefrina para cura completa? (Somente sistema médico básico) Кому разрешено использовать адреналин для полного излечения? (Только для базовой медицины) 完全に回復できるよう誰しもがアドレナリンを使えるようにしますか? (ベーシック医療のみ) 완전한 체력회복을 위해 어느 인원이 에피네프린을 쓸 수 있습니까? (기본 의료 전용) @@ -4571,7 +4571,7 @@ Eliminar EPA después del uso Entf. Erste-Hilfe-Set bei Verwendung Odebrat osobní lékárničku po použití - Remover o KPS depois do uso + Remover o KPS após uso Utilisation unique de la trousse sanitaire Elsősegélycsomag eltávolítása használatkor Rimuovi Kit Pronto Soccorso dopo l'uso @@ -4587,7 +4587,7 @@ El EPA será eliminado después de usarlo Sollen Erste-Hilfe-Sets bei Verwendung entfernt werden? Má se osobní lékárnička odstranit po použití? - Deve o KPS ser removido depois do uso? + Deve o KPS ser removido após seu uso? La trousse sanitaire doit être consommée à l'utilisation? Eltávolítódjon az elsősegélycsomag használatkor? Il Kit Pronto Soccorso dev'essere rimosso dopo l'utilizzo? @@ -4604,7 +4604,7 @@ Utilisation de l'épinéphrine Ubicazione epinefrina Oblast k použití adrenalinu - Localizações de Epinefrina + Localizações de epinefrina Место использования адреналина アドレナリンをつかう場所 에피네프린 사용 장소 @@ -4619,7 +4619,7 @@ Où peut être utilisé l'épinéphrine ? (Médical basique) Dove si può usare l'epinefrina? (Sistema medico di base) Kde může být použit adrenalin? (Pouze základní zdravotní systém) - Onde pode-se usar a Epinefrina? (Somente sistema médico básico) + Onde pode-se usar a epinefrina? (Somente sistema médico básico) Где может использоваться адреналин? (Базовая медицина) どこでもアドレナリンをつかえるようにしますか? (ベーシック医療のみ) 어디에서 에피네프린을 사용할 수 있습니까? (기본 의료) @@ -4713,7 +4713,7 @@ Vehiculos médicos Sanitätsfahrzeuge Zdravotnická vozidla - Veículos médcos + Veículos médicos Dans les véhicules sanitaires Orvosi járművek Veicoli medici @@ -4809,7 +4809,7 @@ Eliminar el equipo quirúrgico después del uso Entferne Operationskästen bei Verwendung? Odebrat chirurgickou soupravu po použití? - Deve o kit cirúrgico ser removido após o uso? + Deve o kit cirúrgico ser removido após seu uso? La trousse chirurgicale doit être consommée à l'utilisation? Eltávolítódjon a sebészkészlet használatkor? Il Kit Chirurgico dev'essere rimosso dopo l'uso? @@ -4888,7 +4888,7 @@ Lecz hitpointy Curar puntos de vida Исцелять части тела - Curar hitpoints + Curar pontos de vida Léčit hitponty Cura Hitpoints Soigner les blessures @@ -4903,7 +4903,7 @@ Po bandażowaniu ulecz hitpointy, usuwając z nich ślady krwi i przywracając im pełną sprawność. Curar miembros totalmente vendados Исцелять полностью перебинтованные части тела - Curar totalmente hitpoints enfaixados + Curar totalmente pontos de vida enfaixados Heal fully bandaged hitpoints Cura Hitpoints completamente bendati Soigner les plaies entièrement bandées. @@ -4934,7 +4934,7 @@ Ból jest tylko tymczasowo zwalczany, nie jest usuwany trwale Bolest je potlačena, ale jen dočastně El dolor se suprime solo temporalmente, no se elimina. - Dor é somente temporáriamente suprimida, não removida + Dor é somente temporariamente suprimida, não removida La douleur est seulement temporairement calmée A fájdalom csak ideiglenesen csökken, nem távolítódik el Боль приглушается только временно From 85cf4424f9ff2a8245ca36f40687238174977fe7 Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Mon, 2 Apr 2018 00:59:47 -0500 Subject: [PATCH 071/235] Fix german medical translation (#6223) --- addons/medical/stringtable.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/medical/stringtable.xml b/addons/medical/stringtable.xml index 8a202c8b6a..e5d54af594 100644 --- a/addons/medical/stringtable.xml +++ b/addons/medical/stringtable.xml @@ -2370,7 +2370,7 @@ %1 est conscient %1 ha reaccionado %1 jest przytomny - %1 ist anprechbar + %1 ist ansprechbar %1 reakcióképes %1 e' cosciente %1 está respondendo From 743fbd487590d58cd3b7b2dad9bad22dd87063bd Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Sat, 7 Apr 2018 20:22:14 -0500 Subject: [PATCH 072/235] Cleanup old classnames (#6206) Fix #6205 --- addons/realisticnames/CfgVehicles.hpp | 12 ---- addons/realisticnames/stringtable.xml | 96 --------------------------- addons/rearm/CfgAmmo.hpp | 6 -- addons/rearm/CfgVehicles.hpp | 3 - 4 files changed, 117 deletions(-) diff --git a/addons/realisticnames/CfgVehicles.hpp b/addons/realisticnames/CfgVehicles.hpp index 708bf1c53f..2845e62a9f 100644 --- a/addons/realisticnames/CfgVehicles.hpp +++ b/addons/realisticnames/CfgVehicles.hpp @@ -733,18 +733,6 @@ class CfgVehicles { class I_C_Offroad_02_unarmed_F: Offroad_02_unarmed_base_F { displayName = CSTRING(C_Offroad_02_unarmed); }; - class C_Offroad_02_unarmed_F_black: C_Offroad_02_unarmed_F { - displayName = CSTRING(C_Offroad_02_unarmed_black); - }; - class C_Offroad_02_unarmed_F_blue: C_Offroad_02_unarmed_F { - displayName = CSTRING(C_Offroad_02_unarmed_blue); - }; - class C_Offroad_02_unarmed_F_green: C_Offroad_02_unarmed_F { - displayName = CSTRING(C_Offroad_02_unarmed_green); - }; - class C_Offroad_02_unarmed_F_orange: C_Offroad_02_unarmed_F { - displayName = CSTRING(C_Offroad_02_unarmed_orange); - }; // Cessna class Plane_Civil_01_base_F; diff --git a/addons/realisticnames/stringtable.xml b/addons/realisticnames/stringtable.xml index 6a9345f9a0..e89f674bf1 100644 --- a/addons/realisticnames/stringtable.xml +++ b/addons/realisticnames/stringtable.xml @@ -2591,102 +2591,6 @@ "牧馬人"吉普車 "牧马人"吉普车 - - Jeep Wrangler (Black) - Jeep Wrangler (Černý) - Jeep Wrangler (Noir) - Jeep Wrangler (Negro) - Jeep Wrangler (Чёрный) - Jeep Wrangler (czarny) - Jeep Wrangler (Schwarz) - Jeep Wrangler (Nero) - Jeep Wrangler (Fekete) - Jeep Wrangler (Preto) - ジープ ラングラー (黒) - Jeep Wrangler (검정) - "牧馬人"吉普車 (黑色) - "牧马人"吉普车 (黑色) - - - Jeep Wrangler (Blue) - Jeep Wrangler (Blau) - Jeep Wrangler (Azul) - Jeep Wrangler (niebieski) - Jeep Wrangler (Modrý) - Jeep Wrangler (Bleue) - Jeep Wrangler (Синий) - Jeep Wrangler (Azul) - Jeep Wrangler (Kék) - Jeep Wrangler (Blu) - ジープ ラングラー (青) - Jeep Wrangler (파랑) - "牧馬人"吉普車 (藍色) - "牧马人"吉普车 (蓝色) - - - Jeep Wrangler (Green) - Jeep Wrangler (Grün) - Jeep Wrangler (Verde) - Jeep Wrangler (zielony) - Jeep Wrangler (Zelený) - Jeep Wrangler (Verte) - Jeep Wrangler (Зелёный) - Jeep Wrangler (Verde) - Jeep Wrangler (Zöld) - Jeep Wrangler (Verde) - ジープ ラングラー (緑) - Jeep Wrangler (초록) - "牧馬人"吉普車 (綠色) - "牧马人"吉普车 (绿色) - - - Jeep Wrangler (Orange) - Jeep Wrangler (Orange) - Jeep Wrangler (Naranja) - Jeep Wrangler (pomarańczowy) - Jeep Wrangler (Oranžový) - Jeep Wrangler (Orange) - Jeep Wrangler (Оранжевый) - Jeep Wrangler (Laranja) - Jeep Wrangler (Narancssárga) - Jeep Wrangler (Arancione) - ジープ ラングラー (橙) - Jeep Wrangler (주황) - "牧馬人"吉普車 (橘色) - "牧马人"吉普车 (橘色) - - - Jeep Wrangler (Red) - Jeep Wrangler (Rot) - Jeep Wrangler (Rojo) - Jeep Wrangler (czerwony) - Jeep Wrangler (Červený) - Jeep Wrangler (Rouge) - Jeep Wrangler (Красный) - Jeep Wrangler (Vermelha) - Jeep Wrangler (Piros) - Jeep Wrangler (Rosso) - ジープ ラングラー (赤) - Jeep Wrangler (빨강) - "牧馬人"吉普車 (紅色) - "牧马人"吉普车 (红色) - - - Jeep Wrangler (White) - Jeep Wrangler (Weiß) - Jeep Wrangler (Blanco) - Jeep Wrangler (biały) - Jeep Wrangler (Bílý) - Jeep Wrangler (Blanche) - Jeep Wrangler (Белый) - Jeep Wrangler (Branca) - Jeep Wrangler (Fehér) - Jeep Wrangler (Bianco) - ジープ ラングラー (白) - Jeep Wrangler (하양) - "牧馬人"吉普車 (白色) - "牧马人"吉普车 (白色) - Cessna TTx Cessna TTx diff --git a/addons/rearm/CfgAmmo.hpp b/addons/rearm/CfgAmmo.hpp index 2443ab91a5..c731cafb2b 100644 --- a/addons/rearm/CfgAmmo.hpp +++ b/addons/rearm/CfgAmmo.hpp @@ -1,9 +1,6 @@ class CfgAmmo { class BombCore; - class BombBase : BombCore { - GVAR(caliber) = 250; // Default caliber for bombs - }; class LaserBombCore : BombCore { GVAR(caliber) = 250; // Default caliber for bombs }; @@ -54,9 +51,6 @@ class CfgAmmo { GVAR(caliber) = 60; GVAR(dummy) = QGVAR(R_60mm_HE); }; - class R_Hydra_HE : RocketBase { - GVAR(dummy) = QGVAR(R_Hydra_HE); - }; class BulletBase; class B_19mm_HE : BulletBase { diff --git a/addons/rearm/CfgVehicles.hpp b/addons/rearm/CfgVehicles.hpp index 7c442e4df9..acf7b4d291 100644 --- a/addons/rearm/CfgVehicles.hpp +++ b/addons/rearm/CfgVehicles.hpp @@ -236,7 +236,4 @@ class CfgVehicles { class GVAR(R_60mm_HE): GVAR(defaultCarriedObject) { model = "\A3\Weapons_F_EPC\Ammo\Rocket_03_HE_F.p3d"; }; - class GVAR(R_Hydra_HE): GVAR(defaultCarriedObject) { - model = "\A3\Weapons_F_EPC\Ammo\Rocket_03_HE_F.p3d"; - }; }; From ba9cff211a2f3de459bdca10e0775b02fe55afa5 Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Sat, 7 Apr 2018 20:22:46 -0500 Subject: [PATCH 073/235] Refuel - Fix hint string not being localized (#6214) --- addons/refuel/functions/fnc_connectNozzleAction.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/refuel/functions/fnc_connectNozzleAction.sqf b/addons/refuel/functions/fnc_connectNozzleAction.sqf index eece4b0caa..7a99ce8d6e 100644 --- a/addons/refuel/functions/fnc_connectNozzleAction.sqf +++ b/addons/refuel/functions/fnc_connectNozzleAction.sqf @@ -125,7 +125,7 @@ private _attachPosModel = _sink worldToModel (ASLtoAGL _bestPosASL); _unit setVariable [QGVAR(tempFuel), nil]; [_unit, _nozzle] call FUNC(turnOn); } else { - [LSTRING(CouldNotTurnOn)] call EFUNC(common,displayText); + [localize LSTRING(CouldNotTurnOn)] call EFUNC(common,displayText); }; }, "", From d41779dc74cf463e81c2ad442cca829afb2010fe Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Sat, 7 Apr 2018 20:23:10 -0500 Subject: [PATCH 074/235] Fix getAllRearmTurrets (#6224) --- addons/rearm/functions/fnc_getAllRearmTurrets.sqf | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/addons/rearm/functions/fnc_getAllRearmTurrets.sqf b/addons/rearm/functions/fnc_getAllRearmTurrets.sqf index 890fe5cc6f..db1f4599ce 100644 --- a/addons/rearm/functions/fnc_getAllRearmTurrets.sqf +++ b/addons/rearm/functions/fnc_getAllRearmTurrets.sqf @@ -6,7 +6,7 @@ * This function just adds driver turret to the array returned by "allTurrets". * * Arguments: - * 0: Vehicle + * 0: Vehicle * * Return Value: * Turret paths @@ -20,7 +20,11 @@ params ["_vehicle"]; -private _turrets = allTurrets _vehicle; +private _turrets = if (_vehicle isEqualType objNull) then { + allTurrets _vehicle; +} else { + [_vehicle] call BIS_fnc_allTurrets; // "Does what allTurrets command does, except the param is vehicle's config class name" +}; // Adding the driver turret "[-1]". _turrets pushBack [-1]; From 50abe911a50c52469f787df07e50b03f0beedcfb Mon Sep 17 00:00:00 2001 From: Dedmen Miller Date: Mon, 9 Apr 2018 17:20:03 +0200 Subject: [PATCH 075/235] Change stringToColoredText to accept a hex string (#6241) --- .../functions/fnc_stringToColoredText.sqf | 20 ++++++++++--------- .../functions/fnc_displayTemperature.sqf | 2 +- addons/reload/functions/fnc_displayAmmo.sqf | 2 +- 3 files changed, 13 insertions(+), 11 deletions(-) diff --git a/addons/common/functions/fnc_stringToColoredText.sqf b/addons/common/functions/fnc_stringToColoredText.sqf index c072da9253..33d2fb5dcc 100644 --- a/addons/common/functions/fnc_stringToColoredText.sqf +++ b/addons/common/functions/fnc_stringToColoredText.sqf @@ -4,7 +4,7 @@ * * Arguments: * 0: Text - * 1: Color + * 1: Color * * Return Value: * Text @@ -20,12 +20,14 @@ params ["_string", "_color"]; _string = format ["%1", _string]; -_color = ( - [255 * (_color select 0), 2] call FUNC(toHex) -) + ( - [255 * (_color select 1), 2] call FUNC(toHex) -) + ( - [255 * (_color select 2), 2] call FUNC(toHex) -); +if (_color isEqualType []) then { + _color = "#" + ( + [255 * (_color select 0), 2] call FUNC(toHex) + ) + ( + [255 * (_color select 1), 2] call FUNC(toHex) + ) + ( + [255 * (_color select 2), 2] call FUNC(toHex) + ); +}; -parseText format ["%1", _string, _color] +parseText format ["%2", _color, _string] diff --git a/addons/overheating/functions/fnc_displayTemperature.sqf b/addons/overheating/functions/fnc_displayTemperature.sqf index e829b61f57..b02a555bd4 100644 --- a/addons/overheating/functions/fnc_displayTemperature.sqf +++ b/addons/overheating/functions/fnc_displayTemperature.sqf @@ -45,7 +45,7 @@ for "_a" from (_count + 1) to 12 do { TRACE_3("",_temperature,_color,_string); -_text = composeText [_text, [_string, [0.5, 0.5, 0.5]] call EFUNC(common,stringToColoredText)]; +_text = composeText [_text, [_string, "#808080"] call EFUNC(common,stringToColoredText)]; private _picture = getText (configFile >> "CfgWeapons" >> _weapon >> "picture"); diff --git a/addons/reload/functions/fnc_displayAmmo.sqf b/addons/reload/functions/fnc_displayAmmo.sqf index f48bbb1e0a..36ee8c1528 100644 --- a/addons/reload/functions/fnc_displayAmmo.sqf +++ b/addons/reload/functions/fnc_displayAmmo.sqf @@ -95,7 +95,7 @@ private _ammoBarsStructuredText = if (_showNumber) then { _string = _string + "|"; }; - composeText [_text, [_string, [0.5, 0.5, 0.5]] call EFUNC(common,stringToColoredText)]; + composeText [_text, [_string, "#808080"] call EFUNC(common,stringToColoredText)]; }; From b6b58d4860f4c08176d2e00d12df61d96dcb3705 Mon Sep 17 00:00:00 2001 From: rufix Date: Tue, 10 Apr 2018 03:55:28 +0200 Subject: [PATCH 076/235] Update headers --- addons/common/functions/fnc_setAimCoef.sqf | 12 ++++++------ addons/common/functions/fnc_setHearingCapability.sqf | 6 +++--- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/addons/common/functions/fnc_setAimCoef.sqf b/addons/common/functions/fnc_setAimCoef.sqf index 9ee5d38b15..7c9352c3be 100644 --- a/addons/common/functions/fnc_setAimCoef.sqf +++ b/addons/common/functions/fnc_setAimCoef.sqf @@ -1,18 +1,18 @@ /* * Author: xrufix, Glowbal - * Handle set AimCoef calls. Will use highest available setting. + * Handle set AimCoef calls. Will use the highest available setting. * * Arguments: - * 0: unit - * 1: id - * 2: settings - * 3: add [true] OR remove [false] (default: true) + * 0: Unit + * 1: Unique ID + * 2: Aim coefficient (a higher value causes more shaking) + * 3: Add (true) or remove (false) (default: true) * * Return Value: * None * * Example: - * [player,"ace_advanced_fatigue", 1, true] call ace_common_fnc_setAimCoef + * [player, "ace_advanced_fatigue", 1, true] call ace_common_fnc_setAimCoef * * Public: Yes */ diff --git a/addons/common/functions/fnc_setHearingCapability.sqf b/addons/common/functions/fnc_setHearingCapability.sqf index 5b1e7a5a3a..ab5edcfc41 100644 --- a/addons/common/functions/fnc_setHearingCapability.sqf +++ b/addons/common/functions/fnc_setHearingCapability.sqf @@ -3,9 +3,9 @@ * Handle set volume calls. Will use the lowest available volume setting. * * Arguments: - * 0: id - * 1: settings - * 2: add [true] OR remove [false] (default: true) + * 0: ID + * 1: Settings + * 2: Add (true) or remove (false) (default: true) * * Return Value: * None From 181d2ef5e10a5f310e7081155032300a515de2ed Mon Sep 17 00:00:00 2001 From: shukari Date: Tue, 10 Apr 2018 05:48:58 +0200 Subject: [PATCH 077/235] fix #6237 (#6238) --- addons/cargo/functions/fnc_paradropItem.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/cargo/functions/fnc_paradropItem.sqf b/addons/cargo/functions/fnc_paradropItem.sqf index 4c1929a1dc..ae9b192de4 100644 --- a/addons/cargo/functions/fnc_paradropItem.sqf +++ b/addons/cargo/functions/fnc_paradropItem.sqf @@ -65,7 +65,7 @@ _itemObject setVelocity ((velocity _vehicle) vectorAdd ((vectorNormalized (vecto private _velocity = velocity _item; - _item attachTo [_parachute, [0,0,-1]]; + _item attachTo [_parachute, [0,0,1]]; _parachute setVelocity _velocity; private _light = "Chemlight_yellow" createVehicle [0,0,0]; From 7634f4657b0514b3a462e17f6bba19fc9f9264c7 Mon Sep 17 00:00:00 2001 From: blaffer Date: Tue, 10 Apr 2018 05:50:57 +0200 Subject: [PATCH 078/235] Fix #6234 (#6235) --- addons/hitreactions/functions/fnc_fallDown.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/hitreactions/functions/fnc_fallDown.sqf b/addons/hitreactions/functions/fnc_fallDown.sqf index a7814b914e..c67f3fd0f8 100644 --- a/addons/hitreactions/functions/fnc_fallDown.sqf +++ b/addons/hitreactions/functions/fnc_fallDown.sqf @@ -38,7 +38,7 @@ if (_unit == ACE_player) then { // play scream sound if (!isNil QEFUNC(medical,playInjuredSound)) then { - [_unit] call EFUNC(medical,playInjuredSound); + [_unit,_damage] call EFUNC(medical,playInjuredSound); }; private _vehicle = vehicle _unit; From 3ca8105e9eff22a11df632d1324332215037da9d Mon Sep 17 00:00:00 2001 From: Dedmen Miller Date: Wed, 11 Apr 2018 15:53:23 +0200 Subject: [PATCH 079/235] Improve Reload TakeEH (#6242) * Improve Reload TakeEH * Simplify explosives take EH --- addons/explosives/CfgEventHandlers.hpp | 2 +- addons/reload/CfgEventHandlers.hpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/addons/explosives/CfgEventHandlers.hpp b/addons/explosives/CfgEventHandlers.hpp index ced23c6b56..37df24577d 100644 --- a/addons/explosives/CfgEventHandlers.hpp +++ b/addons/explosives/CfgEventHandlers.hpp @@ -24,7 +24,7 @@ class Extended_Killed_EventHandlers { class Extended_Take_EventHandlers { class CAManBase { - GVAR(takeHandler) = QUOTE([ARR_3(_this select 0, _this select 1, _this select 2)] call FUNC(onInventoryChanged)); + GVAR(takeHandler) = QUOTE(call FUNC(onInventoryChanged)); }; }; class Extended_Put_EventHandlers { diff --git a/addons/reload/CfgEventHandlers.hpp b/addons/reload/CfgEventHandlers.hpp index a3dd6de29b..6016e7712a 100644 --- a/addons/reload/CfgEventHandlers.hpp +++ b/addons/reload/CfgEventHandlers.hpp @@ -20,7 +20,7 @@ class Extended_PostInit_EventHandlers { class Extended_Take_EventHandlers { class CAManBase { class ACE_AmmoIndicatorReload { - clientTake = QUOTE(if (_this select 0 == ACE_player && {GVAR(DisplayText)} && {(_this select 1) in [ARR_3(uniformContainer (_this select 0), vestContainer (_this select 0), backpackContainer (_this select 0))]} && {_this select 2 == currentMagazine (_this select 0)}) then {[ARR_2(_this select 0, vehicle (_this select 0))] call FUNC(displayAmmo)};); + clientTake = QUOTE(params ['_unit']; if (_unit == ACE_player && {GVAR(DisplayText)} && {(_this select 1) in [ARR_3(uniformContainer _unit, vestContainer _unit, backpackContainer _unit)]} && {_this select 2 == currentMagazine _unit}) then {[ARR_2(_unit, vehicle _unit)] call FUNC(displayAmmo)};); }; }; }; From 5ea2069b767b1d46556d376279c56172a6214619 Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Wed, 11 Apr 2018 15:18:05 -0500 Subject: [PATCH 080/235] Arma 1.82 compat (#6201) * Arma 1.82 compat * Add tank to required addons --- addons/cargo/CfgVehicles.hpp | 3 +++ addons/frag/CfgAmmo.hpp | 6 +++--- addons/main/config.cpp | 1 + addons/main/script_mod.hpp | 4 ++-- addons/realisticnames/CfgMagazines.hpp | 16 ++++++++-------- addons/realisticnames/CfgWeapons.hpp | 4 +--- addons/rearm/CfgAmmo.hpp | 7 ++++--- addons/repair/CfgVehicles.hpp | 10 ++++++++++ addons/repair/XEH_preInit.sqf | 8 ++++++-- .../repair/functions/fnc_isInRepairFacility.sqf | 5 ++--- 10 files changed, 40 insertions(+), 24 deletions(-) diff --git a/addons/cargo/CfgVehicles.hpp b/addons/cargo/CfgVehicles.hpp index a690bd432b..d3a800040e 100644 --- a/addons/cargo/CfgVehicles.hpp +++ b/addons/cargo/CfgVehicles.hpp @@ -330,6 +330,9 @@ class CfgVehicles { GVAR(size) = 2; // 1 = small, 2 = large GVAR(canLoad) = 1; }; + class Land_RepairDepot_01_base_F: ReammoBox_F { // TanksDLC - Repair Depo Thing (probably too big to safely unload) + GVAR(canLoad) = 0; + }; //"Supply Box" - Small Pallets class B_supplyCrate_F: ReammoBox_F { GVAR(size) = 6; diff --git a/addons/frag/CfgAmmo.hpp b/addons/frag/CfgAmmo.hpp index bff5a49ffa..e8ba51a451 100644 --- a/addons/frag/CfgAmmo.hpp +++ b/addons/frag/CfgAmmo.hpp @@ -5,8 +5,8 @@ class CfgAmmo { // ~~~~ Bombs: - class LaserBombCore; - class Bo_GBU12_LGB: LaserBombCore { + class ammo_Bomb_LaserGuidedBase; + class Bo_GBU12_LGB: ammo_Bomb_LaserGuidedBase { GVAR(enabled) = 1; GVAR(classes)[] = {QGVAR(large), QGVAR(large), QGVAR(large_HD), QGVAR(large), QGVAR(huge), QGVAR(huge_HD), QGVAR(huge)}; @@ -15,7 +15,7 @@ class CfgAmmo { GVAR(gurney_c) = 2320; GVAR(gurney_k) = 1/2; }; - class Bomb_04_F: LaserBombCore { + class Bomb_04_F: ammo_Bomb_LaserGuidedBase { GVAR(enabled) = 1; GVAR(classes)[] = {QGVAR(large), QGVAR(large), QGVAR(large_HD), QGVAR(large), QGVAR(huge), QGVAR(huge_HD), QGVAR(huge)}; diff --git a/addons/main/config.cpp b/addons/main/config.cpp index e04f573e62..9550b29a78 100644 --- a/addons/main/config.cpp +++ b/addons/main/config.cpp @@ -20,6 +20,7 @@ class CfgPatches { "A3_Data_F_Argo_Loadorder", "A3_Data_F_Patrol_Loadorder", "A3_Data_F_Orange_Loadorder", + "A3_Data_F_Tank_Loadorder", // Vanilla "a3_3den", diff --git a/addons/main/script_mod.hpp b/addons/main/script_mod.hpp index 04785a35a6..d24e2f7d9f 100644 --- a/addons/main/script_mod.hpp +++ b/addons/main/script_mod.hpp @@ -9,8 +9,8 @@ #define VERSION_AR MAJOR,MINOR,PATCHLVL,BUILD // MINIMAL required version for the Mod. Components can specify others.. -#define REQUIRED_VERSION 1.78 -#define REQUIRED_CBA_VERSION {3,5,0} +#define REQUIRED_VERSION 1.82 +#define REQUIRED_CBA_VERSION {3,6,0} #ifdef COMPONENT_BEAUTIFIED #define COMPONENT_NAME QUOTE(ACE3 - COMPONENT_BEAUTIFIED) diff --git a/addons/realisticnames/CfgMagazines.hpp b/addons/realisticnames/CfgMagazines.hpp index ad6746df06..65d6e3d05e 100644 --- a/addons/realisticnames/CfgMagazines.hpp +++ b/addons/realisticnames/CfgMagazines.hpp @@ -246,23 +246,23 @@ class CfgMagazines { displayNameShort = "125mm MP-T"; }; - class 32Rnd_120mm_APFSDS_shells; - class 24Rnd_125mm_APFSDS: 32Rnd_120mm_APFSDS_shells { + class 20Rnd_125mm_APFSDS; + class 24Rnd_125mm_APFSDS: 20Rnd_125mm_APFSDS { displayNameShort = "125mm AP"; }; - class 32Rnd_120mm_APFSDS_shells_Tracer_Red; - class 24Rnd_125mm_APFSDS_T_Red: 32Rnd_120mm_APFSDS_shells_Tracer_Red { + class 20Rnd_125mm_APFSDS_T_Red; + class 24Rnd_125mm_APFSDS_T_Red: 20Rnd_125mm_APFSDS_T_Red { displayNameShort = "125mm AP-T"; }; - class 32Rnd_120mm_APFSDS_shells_Tracer_Green; - class 24Rnd_125mm_APFSDS_T_Green: 32Rnd_120mm_APFSDS_shells_Tracer_Green { + class 20Rnd_125mm_APFSDS_T_Green; + class 24Rnd_125mm_APFSDS_T_Green: 20Rnd_125mm_APFSDS_T_Green { displayNameShort = "125mm AP-T"; }; - class 32Rnd_120mm_APFSDS_shells_Tracer_Yellow; - class 24Rnd_125mm_APFSDS_T_Yellow: 32Rnd_120mm_APFSDS_shells_Tracer_Yellow { + class 20Rnd_125mm_APFSDS_T_Yellow; + class 24Rnd_125mm_APFSDS_T_Yellow: 20Rnd_125mm_APFSDS_T_Yellow { displayNameShort = "125mm AP-T"; }; diff --git a/addons/realisticnames/CfgWeapons.hpp b/addons/realisticnames/CfgWeapons.hpp index fc873ccf10..5112d6fc82 100644 --- a/addons/realisticnames/CfgWeapons.hpp +++ b/addons/realisticnames/CfgWeapons.hpp @@ -413,9 +413,7 @@ class CfgWeapons { }; // bomb - class Bomb_04_Plane_CAS_01_F: RocketPods { - //displayName = ""; - }; + class Bomb_04_Plane_CAS_01_F; class Bomb_03_Plane_CAS_02_F: Bomb_04_Plane_CAS_01_F { displayName = "FAB-250M-54"; }; diff --git a/addons/rearm/CfgAmmo.hpp b/addons/rearm/CfgAmmo.hpp index c731cafb2b..54ff37e279 100644 --- a/addons/rearm/CfgAmmo.hpp +++ b/addons/rearm/CfgAmmo.hpp @@ -178,17 +178,18 @@ class CfgAmmo { GVAR(dummy) = QGVAR(Bo_Mk82); }; - class Bo_GBU12_LGB : LaserBombCore { + class ammo_Bomb_LaserGuidedBase: LaserBombCore {}; + class Bo_GBU12_LGB: ammo_Bomb_LaserGuidedBase { GVAR(caliber) = 250; // Default caliber for bombs GVAR(dummy) = QGVAR(Bo_GBU12_LGB); }; - class Bomb_04_F : LaserBombCore { + class Bomb_04_F: ammo_Bomb_LaserGuidedBase { GVAR(caliber) = 250; // Default caliber for bombs GVAR(dummy) = QGVAR(Bomb_04_F); }; - class Bomb_03_F : Bomb_04_F { + class Bomb_03_F: ammo_Bomb_LaserGuidedBase { GVAR(dummy) = QGVAR(Bomb_03_F); }; }; diff --git a/addons/repair/CfgVehicles.hpp b/addons/repair/CfgVehicles.hpp index 79f46ef753..23ae927a84 100644 --- a/addons/repair/CfgVehicles.hpp +++ b/addons/repair/CfgVehicles.hpp @@ -405,6 +405,16 @@ class CfgVehicles { // disable vanilla repair // "getNumber (_x >> ""transportRepair"") > 0" configClasses (configFile >> "CfgVehicles") + class ReammoBox_F; + class Land_RepairDepot_01_base_F: ReammoBox_F { // TanksDLC - Repair Depo Thing + GVAR(canRepair) = 1; + transportRepair = 0; + }; + class Van_02_base_F; + class Van_02_service_base_F: Van_02_base_F { // OrangeDLC + GVAR(canRepair) = 1; + transportRepair = 0; + }; class Slingload_01_Base_F; class B_Slingload_01_Repair_F: Slingload_01_Base_F { diff --git a/addons/repair/XEH_preInit.sqf b/addons/repair/XEH_preInit.sqf index ca76ce5758..040871d851 100644 --- a/addons/repair/XEH_preInit.sqf +++ b/addons/repair/XEH_preInit.sqf @@ -22,13 +22,17 @@ if (isServer) then { if (isNil "_spareTracks") then { _spareTracks = [0, 1] select (_vehicle isKindOf "Tank"); // must match eden attribute default }; - [_vehicle, _spareTracks, "ACE_Track"] call FUNC(addSpareParts); + if (_spareTracks > 0) then { + [_vehicle, _spareTracks, "ACE_Track"] call FUNC(addSpareParts); + }; private _spareWheels = _vehicle getVariable QGVAR(editorLoadedWheels); if (isNil "_spareWheels") then { _spareWheels = [0, 1] select (_vehicle isKindOf "Car"); // must match eden attribute default }; - [_vehicle, _spareWheels, "ACE_Wheel"] call FUNC(addSpareParts); + if (_spareWheels > 0) then { + [_vehicle, _spareWheels, "ACE_Wheel"] call FUNC(addSpareParts); + }; }; ["Tank", "initPost", _fnc_addSpareItems] call CBA_fnc_addClassEventHandler; diff --git a/addons/repair/functions/fnc_isInRepairFacility.sqf b/addons/repair/functions/fnc_isInRepairFacility.sqf index c9aed130ba..ffc7c26c26 100644 --- a/addons/repair/functions/fnc_isInRepairFacility.sqf +++ b/addons/repair/functions/fnc_isInRepairFacility.sqf @@ -20,11 +20,10 @@ TRACE_1("params",_object); private _position = getPosASL _object; private _isInBuilding = false; -private _repairFacility = []; private _objects = (lineIntersectsWith [_object modelToWorldVisual [0, 0, (_position select 2)], _object modelToWorldVisual [0, 0, (_position select 2) +10], _object]); { - if (((typeOf _x) in _repairFacility) || (_x getVariable ["ACE_isRepairFacility",0]) > 0) exitWith { + if (_x getVariable ["ACE_isRepairFacility", getNumber (configFile >> "CfgVehicles" >> typeOf _x >> QGVAR(canRepair))] > 0) exitWith { _isInBuilding = true; }; } forEach _objects; @@ -32,7 +31,7 @@ private _objects = (lineIntersectsWith [_object modelToWorldVisual [0, 0, (_posi if (!_isInBuilding) then { _objects = position _object nearObjects 7.5; { - if (((typeOf _x) in _repairFacility) || (_x getVariable ["ACE_isRepairFacility",0]) > 0) exitWith { + if (_x getVariable ["ACE_isRepairFacility", getNumber (configFile >> "CfgVehicles" >> typeOf _x >> QGVAR(canRepair))] > 0) exitWith { _isInBuilding = true; }; } forEach _objects; From 731ac2a268e3c2d36e2b6fe0e382f1d06570b918 Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Wed, 11 Apr 2018 15:18:21 -0500 Subject: [PATCH 081/235] Cleanup ace_vehicles for 1.82 (#6247) Close #6220 --- addons/realisticnames/CfgWeapons.hpp | 4 +- addons/vehicles/CfgVehicles.hpp | 241 +++------------------------ addons/vehicles/CfgWeapons.hpp | 33 +--- 3 files changed, 29 insertions(+), 249 deletions(-) diff --git a/addons/realisticnames/CfgWeapons.hpp b/addons/realisticnames/CfgWeapons.hpp index 5112d6fc82..dc563dab62 100644 --- a/addons/realisticnames/CfgWeapons.hpp +++ b/addons/realisticnames/CfgWeapons.hpp @@ -520,8 +520,8 @@ class CfgWeapons { class LMG_coax: LMG_RCWS { displayName = "PKT"; }; - // class ACE_LMG_coax_PKT_mem2: LMG_coax {}; - class ACE_LMG_coax_MAG58_mem2: LMG_coax { + class LMG_coax_ext: LMG_coax {}; + class ACE_LMG_coax_ext_MAG58: LMG_coax_ext { displayName = "MAG 58M"; }; class ACE_LMG_coax_MAG58_mem3: LMG_coax { diff --git a/addons/vehicles/CfgVehicles.hpp b/addons/vehicles/CfgVehicles.hpp index 8834cc1d4d..f2e76377d2 100644 --- a/addons/vehicles/CfgVehicles.hpp +++ b/addons/vehicles/CfgVehicles.hpp @@ -68,44 +68,17 @@ class CfgVehicles { class APC_Tracked_01_base_F: Tank_F { fuelCapacity = 500 * FUEL_FACTOR; - class Turrets: Turrets { - class MainTurret: MainTurret { - class Turrets; - }; - }; }; class APC_Tracked_02_base_F: Tank_F { fuelCapacity = 600 * FUEL_FACTOR; // NO FUCKING DATA - class Turrets: Turrets { - class MainTurret: MainTurret { - class Turrets: Turrets { - class CommanderOptics: CommanderOptics {}; - }; - }; - }; - }; - - class O_APC_Tracked_02_base_F: APC_Tracked_02_base_F {}; - - class O_APC_Tracked_02_cannon_F: O_APC_Tracked_02_base_F { - class Turrets: Turrets { - class MainTurret: MainTurret { - weapons[] = {"autocannon_30mm_CTWS","ACE_LMG_coax_PKT_mem2","missiles_titan"}; - magazines[] = {"140Rnd_30mm_MP_shells_Tracer_Green","60Rnd_30mm_APFSDS_shells_Tracer_Green","2000Rnd_762x51_Belt_Green","2Rnd_GAT_missiles"}; - }; - }; }; class APC_Tracked_03_base_F: Tank_F { fuelCapacity = 660 * FUEL_FACTOR; class Turrets: Turrets { class MainTurret: MainTurret { - weapons[] = {"autocannon_30mm","ACE_LMG_coax_L94A1_mem3"}; - magazines[] = {"140Rnd_30mm_MP_shells_Tracer_Yellow","60Rnd_30mm_APFSDS_shells_Tracer_Yellow","1000Rnd_762x51_Belt_Yellow","1000Rnd_762x51_Belt_Yellow"}; - class Turrets: Turrets { - class CommanderOptics: CommanderOptics {}; - }; + weapons[] = {"autocannon_30mm","ACE_LMG_coax_L94A1_mem3"}; // Base 1.82: "autocannon_30mm","LMG_coax" }; }; }; @@ -114,11 +87,7 @@ class CfgVehicles { fuelCapacity = 550 * FUEL_FACTOR; class Turrets: Turrets { class MainTurret: MainTurret { - weapons[] = {"cannon_120mm_long","ACE_LMG_coax_MAG58_mem3"}; - magazines[] = {"28Rnd_120mm_APFSDS_shells_Tracer_Yellow","14Rnd_120mm_HE_shells_Tracer_Yellow","2000Rnd_762x51_Belt_Yellow","2000Rnd_762x51_Belt_Yellow"}; - class Turrets: Turrets { - class CommanderOptics: CommanderOptics {}; - }; + weapons[] = {"cannon_120mm_long","ACE_LMG_coax_MAG58_mem3"}; // Base 1.82: "cannon_120mm_long","LMG_coax" }; }; }; @@ -127,64 +96,54 @@ class CfgVehicles { fuelCapacity = 500 * FUEL_FACTOR; class Turrets: Turrets { class MainTurret: MainTurret { - weapons[] = {"cannon_120mm","ACE_LMG_coax_MAG58_mem2"}; - magazines[] = {"32Rnd_120mm_APFSDS_shells_Tracer_Red","16Rnd_120mm_HE_shells_Tracer_Red","2000Rnd_762x51_Belt_Red","2000Rnd_762x51_Belt_Red"}; - class Turrets: Turrets { - class CommanderOptics: CommanderOptics {}; - }; + weapons[] = {"cannon_120mm", "ACE_LMG_coax_MAG58_mem3"}; // Base 1.82: "cannon_120mm","LMG_coax" }; }; }; class B_MBT_01_base_F: MBT_01_base_F {}; - class B_MBT_01_cannon_F: B_MBT_01_base_F {}; - - class MBT_02_base_F: Tank_F { - fuelCapacity = 600 * FUEL_FACTOR; // again, couldn't find proper data + class B_MBT_01_TUSK_F: B_MBT_01_cannon_F { class Turrets: Turrets { class MainTurret: MainTurret { - class Turrets: Turrets { - class CommanderOptics: CommanderOptics {}; - }; + weapons[] = {"cannon_120mm", "ACE_LMG_coax_MAG58_mem3"}; // Base 1.82: "cannon_120mm","LMG_coax" }; }; }; + + + + class MBT_02_base_F: Tank_F { + fuelCapacity = 600 * FUEL_FACTOR; // again, couldn't find proper data + }; + + + // Change boat minigun ammo to 7.62 class Ship_F: Ship {}; - class Boat_F: Ship_F {}; - class Boat_Armed_01_base_F: Boat_F { class Turrets: Turrets { class FrontTurret; class RearTurret: FrontTurret {}; }; }; - - class Boat_Armed_01_minigun_base_F: Boat_Armed_01_base_F {}; - - class B_Boat_Armed_01_minigun_F: Boat_Armed_01_minigun_base_F { + class Boat_Armed_01_minigun_base_F: Boat_Armed_01_base_F { class Turrets: Turrets { - class FrontTurret: FrontTurret {}; class RearTurret: RearTurret { - magazines[] = {"2000Rnd_762x51_Belt_T_Red"}; + magazines[] = {"2000Rnd_762x51_Belt_T_Red"}; // Base 1.82: "2000Rnd_65x39_belt_Tracer_Red" }; }; }; - class I_Boat_Armed_01_minigun_F: Boat_Armed_01_minigun_base_F { class Turrets: Turrets { - class FrontTurret: FrontTurret {}; class RearTurret: RearTurret { - magazines[] = {"2000Rnd_762x51_Belt_T_Yellow"}; + magazines[] = {"2000Rnd_762x51_Belt_T_Yellow"}; // Base 1.82: "2000Rnd_65x39_Belt_Tracer_Yellow" }; }; }; - class Truck_F: Car_F { - class Turrets: Turrets {}; - }; + class Truck_F: Car_F {}; class MRAP_01_base_F: Car_F { fuelCapacity = 510 * FUEL_FACTOR; @@ -193,15 +152,7 @@ class CfgVehicles { class MRAP_02_base_F: Car_F { fuelCapacity = 500 * FUEL_FACTOR; // couldn't find any data for the punisher }; - - class O_MRAP_02_F: MRAP_02_base_F { - class Turrets; - }; - - class Offroad_01_base_F: Car_F { - //fuelCapacity = 45; - }; - + class MRAP_03_base_F: Car_F { fuelCapacity = 860 * FUEL_FACTOR; smokeLauncherGrenadeCount = 3; @@ -217,7 +168,6 @@ class CfgVehicles { smokeLauncherGrenadeCount = 3; smokeLauncherAngle = 80; class Turrets: Turrets { - class MainTurret: MainTurret {}; class CommanderTurret: CommanderTurret { stabilizedInAxes = 3; }; @@ -228,7 +178,6 @@ class CfgVehicles { smokeLauncherGrenadeCount = 3; smokeLauncherAngle = 80; class Turrets: Turrets { - class MainTurret: MainTurret {}; class CommanderTurret: CommanderTurret { stabilizedInAxes = 3; }; @@ -237,190 +186,46 @@ class CfgVehicles { class Truck_01_base_F: Truck_F { fuelCapacity = 644 * FUEL_FACTOR; - class Turrets; }; class Truck_02_base_F: Truck_F { fuelCapacity = 1100 * FUEL_FACTOR; - class Turrets; }; class Truck_03_base_F: Truck_F { fuelCapacity = 900 * FUEL_FACTOR; // NO. FUCKING. DATA. - class Turrets; - }; - - class Hatchback_01_base_F: Car_F { - //fuelCapacity = 45; - class Turrets; - }; - - class SUV_01_base_F: Car_F { - //fuelCapacity = 45; - class Turrets; - }; - - class Van_01_base_F: Truck_F { - //fuelCapacity = 45; - class Turrets; }; class APC_Wheeled_01_base_F: Wheeled_APC_F { fuelCapacity = 800 * FUEL_FACTOR; class Turrets: Turrets { - class MainTurret: MainTurret { - class Turrets: Turrets { - class CommanderOptics: CommanderOptics {}; - }; - }; + class MainTurret: MainTurret {}; }; }; - class B_APC_Wheeled_01_base_F: APC_Wheeled_01_base_F {}; - class B_APC_Wheeled_01_cannon_F: B_APC_Wheeled_01_base_F { class Turrets: Turrets { class MainTurret: MainTurret { - weapons[] = {"autocannon_40mm_CTWS","ACE_LMG_coax_MAG58_mem2"}; - magazines[] = {"60Rnd_40mm_GPR_Tracer_Red_shells","40Rnd_40mm_APFSDS_Tracer_Red_shells","2000Rnd_762x51_Belt_Red"}; + weapons[] = {"autocannon_40mm_CTWS","ACE_LMG_coax_MAG58_mem3"}; // Base 1.82: "autocannon_40mm_CTWS","LMG_coax" }; }; }; class APC_Wheeled_02_base_F: Wheeled_APC_F { fuelCapacity = 700 * FUEL_FACTOR; - class Turrets: Turrets { - class MainTurret: MainTurret { - class Turrets; - }; - - class CommanderOptics: CommanderOptics {}; - }; - }; - - class B_MBT_01_TUSK_F: B_MBT_01_cannon_F { - class Turrets: Turrets { - class MainTurret: MainTurret { - weapons[] = {"cannon_105mm","ACE_LMG_coax_MAG58_mem2"}; - magazines[] = {"40Rnd_105mm_APFSDS_T_Red","20Rnd_105mm_HEAT_MP_T_Red","2000Rnd_762x51_Belt_Red","2000Rnd_762x51_Belt_Red"}; - class Turrets: Turrets { - class CommanderOptics: CommanderOptics {}; - }; - }; - }; }; class APC_Wheeled_03_base_F: Wheeled_APC_F { fuelCapacity = 700 * FUEL_FACTOR; class Turrets: Turrets { - class MainTurret: MainTurret { - class Turrets: Turrets { - class CommanderOptics: CommanderOptics {}; - }; - }; + class MainTurret: MainTurret {}; }; }; - class I_APC_Wheeled_03_base_F: APC_Wheeled_03_base_F {}; - class I_APC_Wheeled_03_cannon_F: I_APC_Wheeled_03_base_F { class Turrets: Turrets { class MainTurret: MainTurret { - weapons[] = {"autocannon_30mm_CTWS","ACE_LMG_coax_MAG58_mem2","missiles_titan"}; - magazines[] = {"140Rnd_30mm_MP_shells_Tracer_Yellow","60Rnd_30mm_APFSDS_shells_Tracer_Yellow","2000Rnd_762x51_Belt_Yellow","2Rnd_GAT_missiles"}; - }; - }; - }; - - // static mgs shouldn't use 500 rnd mags. - class StaticWeapon: LandVehicle { - class Turrets { - class MainTurret; //: NewTurret {}; - }; - }; - - class StaticMGWeapon: StaticWeapon {}; - - class HMG_01_base_F: StaticMGWeapon { - class Turrets: Turrets { - class MainTurret: MainTurret { - magazines[] = {"100Rnd_127x99_mag","100Rnd_127x99_mag","100Rnd_127x99_mag","100Rnd_127x99_mag","100Rnd_127x99_mag"}; - }; - }; - }; - - class B_HMG_01_F: HMG_01_base_F { - class Turrets: Turrets { - class MainTurret: MainTurret { - magazines[] = {"100Rnd_127x99_mag_Tracer_Red","100Rnd_127x99_mag_Tracer_Red","100Rnd_127x99_mag_Tracer_Red","100Rnd_127x99_mag_Tracer_Red","100Rnd_127x99_mag_Tracer_Red"}; - }; - }; - }; - - class O_HMG_01_F: HMG_01_base_F { - class Turrets: Turrets { - class MainTurret: MainTurret { - magazines[] = {"100Rnd_127x99_mag_Tracer_Green","100Rnd_127x99_mag_Tracer_Green","100Rnd_127x99_mag_Tracer_Green","100Rnd_127x99_mag_Tracer_Green","100Rnd_127x99_mag_Tracer_Green"}; - }; - }; - }; - - class I_HMG_01_F: HMG_01_base_F { - class Turrets: Turrets { - class MainTurret: MainTurret { - magazines[] = {"100Rnd_127x99_mag_Tracer_Yellow","100Rnd_127x99_mag_Tracer_Yellow","100Rnd_127x99_mag_Tracer_Yellow","100Rnd_127x99_mag_Tracer_Yellow","100Rnd_127x99_mag_Tracer_Yellow"}; - }; - }; - }; - - class HMG_01_high_base_F: HMG_01_base_F {}; - - class B_HMG_01_high_F: HMG_01_high_base_F { - class Turrets: Turrets { - class MainTurret: MainTurret { - magazines[] = {"100Rnd_127x99_mag_Tracer_Red","100Rnd_127x99_mag_Tracer_Red","100Rnd_127x99_mag_Tracer_Red","100Rnd_127x99_mag_Tracer_Red","100Rnd_127x99_mag_Tracer_Red"}; - }; - }; - }; - - class O_HMG_01_high_F: HMG_01_high_base_F { - class Turrets: Turrets { - class MainTurret: MainTurret { - magazines[] = {"100Rnd_127x99_mag_Tracer_Green","100Rnd_127x99_mag_Tracer_Green","100Rnd_127x99_mag_Tracer_Green","100Rnd_127x99_mag_Tracer_Green","100Rnd_127x99_mag_Tracer_Green"}; - }; - }; - }; - - class I_HMG_01_high_F: HMG_01_high_base_F { - class Turrets: Turrets { - class MainTurret: MainTurret { - magazines[] = {"100Rnd_127x99_mag_Tracer_Yellow","100Rnd_127x99_mag_Tracer_Yellow","100Rnd_127x99_mag_Tracer_Yellow","100Rnd_127x99_mag_Tracer_Yellow","100Rnd_127x99_mag_Tracer_Yellow"}; - }; - }; - }; - - class HMG_01_A_base_F: HMG_01_base_F {}; - - class B_HMG_01_A_F: HMG_01_A_base_F { - class Turrets: Turrets { - class MainTurret: MainTurret { - magazines[] = {"100Rnd_127x99_mag_Tracer_Red","100Rnd_127x99_mag_Tracer_Red","100Rnd_127x99_mag_Tracer_Red","100Rnd_127x99_mag_Tracer_Red","100Rnd_127x99_mag_Tracer_Red"}; - }; - }; - }; - - class O_HMG_01_A_F: HMG_01_A_base_F { - class Turrets: Turrets { - class MainTurret: MainTurret { - magazines[] = {"100Rnd_127x99_mag_Tracer_Green","100Rnd_127x99_mag_Tracer_Green","100Rnd_127x99_mag_Tracer_Green","100Rnd_127x99_mag_Tracer_Green","100Rnd_127x99_mag_Tracer_Green"}; - }; - }; - }; - - class I_HMG_01_A_F: HMG_01_A_base_F { - class Turrets: Turrets { - class MainTurret: MainTurret { - magazines[] = {"100Rnd_127x99_mag_Tracer_Yellow","100Rnd_127x99_mag_Tracer_Yellow","100Rnd_127x99_mag_Tracer_Yellow","100Rnd_127x99_mag_Tracer_Yellow","100Rnd_127x99_mag_Tracer_Yellow"}; + weapons[] = {"autocannon_30mm_CTWS","ACE_LMG_coax_ext_MAG58", "missiles_titan"}; // Base 1.82: "autocannon_30mm_CTWS","LMG_coax_ext","missiles_titan" }; }; }; diff --git a/addons/vehicles/CfgWeapons.hpp b/addons/vehicles/CfgWeapons.hpp index 530a6913c7..b0c2f36cc9 100644 --- a/addons/vehicles/CfgWeapons.hpp +++ b/addons/vehicles/CfgWeapons.hpp @@ -3,30 +3,15 @@ class CfgWeapons { class MGunCore; class MGun: MGunCore {}; class LMG_RCWS: MGun {}; + class LMG_coax: LMG_RCWS {}; + class LMG_coax_ext: LMG_coax {}; - class LMG_coax; class ACE_LMG_coax_L94A1_mem3: LMG_coax {}; - class ACE_LMG_coax_PKT_mem2: LMG_coax { - class GunParticles { - class effect1 { - positionName = "usti hlavne2"; - directionName = "konec hlavne2"; - effectName = "MachineGunCloud"; - }; - }; - }; class ACE_LMG_coax_MAG58_mem3: LMG_coax {}; - class ACE_LMG_coax_MAG58_mem2: LMG_coax { - class GunParticles { - class effect1 { - positionName = "usti hlavne2"; - directionName = "konec hlavne2"; - effectName = "MachineGunCloud"; - }; - }; - }; + class ACE_LMG_coax_ext_MAG58: LMG_coax_ext {}; class LMG_Minigun: LMG_RCWS { + // Add the following: "2000Rnd_762x51_Belt_T_Green","2000Rnd_762x51_Belt_T_Red","2000Rnd_762x51_Belt_T_Yellow","5000Rnd_762x51_Belt","5000Rnd_762x51_Yellow_Belt" magazines[] = {"PylonWeapon_2000Rnd_65x39_belt", "1000Rnd_65x39_Belt","1000Rnd_65x39_Belt_Green","1000Rnd_65x39_Belt_Tracer_Green","1000Rnd_65x39_Belt_Tracer_Red","1000Rnd_65x39_Belt_Tracer_Yellow","1000Rnd_65x39_Belt_Yellow","2000Rnd_65x39_Belt","2000Rnd_65x39_Belt_Green","2000Rnd_65x39_Belt_Tracer_Green","2000Rnd_65x39_Belt_Tracer_Green_Splash","2000Rnd_65x39_Belt_Tracer_Red","2000Rnd_65x39_Belt_Tracer_Yellow","2000Rnd_65x39_Belt_Tracer_Yellow_Splash","2000Rnd_65x39_Belt_Yellow","2000Rnd_762x51_Belt_T_Green","2000Rnd_762x51_Belt_T_Red","2000Rnd_762x51_Belt_T_Yellow","200Rnd_65x39_Belt","200Rnd_65x39_Belt_Tracer_Green","200Rnd_65x39_Belt_Tracer_Red","200Rnd_65x39_Belt_Tracer_Yellow","5000Rnd_762x51_Belt","5000Rnd_762x51_Yellow_Belt","500Rnd_65x39_Belt","500Rnd_65x39_Belt_Tracer_Red_Splash","500Rnd_65x39_Belt_Tracer_Green_Splash","500Rnd_65x39_Belt_Tracer_Yellow_Splash"}; }; @@ -36,18 +21,8 @@ class CfgWeapons { class HMG_01: HMG_127 { reloadTime = 0.23; - class manual: manual { reloadTime = 0.23; }; - class close: manual {}; - class short: close {}; - class medium: close {}; - class far: close {}; - }; - - // make static weapons compatible with 100rnd mag variants - class HMG_static: HMG_01 { - magazines[] = {"500Rnd_127x99_mag","500Rnd_127x99_mag_Tracer_Red","500Rnd_127x99_mag_Tracer_Green","500Rnd_127x99_mag_Tracer_Yellow","200Rnd_127x99_mag","200Rnd_127x99_mag_Tracer_Red","200Rnd_127x99_mag_Tracer_Green","200Rnd_127x99_mag_Tracer_Yellow","100Rnd_127x99_mag","100Rnd_127x99_mag_Tracer_Red","100Rnd_127x99_mag_Tracer_Green","100Rnd_127x99_mag_Tracer_Yellow"}; }; }; From 1217d912efae74e2636647671a8e2b33fbb43429 Mon Sep 17 00:00:00 2001 From: jonpas Date: Wed, 11 Apr 2018 22:20:47 +0200 Subject: [PATCH 082/235] Prepare release 3.12.2 --- README.md | 2 +- addons/main/script_version.hpp | 4 ++-- docs/README_DE.md | 2 +- docs/README_PL.md | 2 +- mod.cpp | 4 ++-- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index 779202d258..8241ea340f 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@

- ACE3 Version + ACE3 Version ACE3 Issues diff --git a/addons/main/script_version.hpp b/addons/main/script_version.hpp index 661e95a56d..b8a36e349c 100644 --- a/addons/main/script_version.hpp +++ b/addons/main/script_version.hpp @@ -1,4 +1,4 @@ #define MAJOR 3 #define MINOR 12 -#define PATCHLVL 1 -#define BUILD 31 +#define PATCHLVL 2 +#define BUILD 32 diff --git a/docs/README_DE.md b/docs/README_DE.md index 1a34aa0104..806c31cea0 100644 --- a/docs/README_DE.md +++ b/docs/README_DE.md @@ -4,7 +4,7 @@

- ACE3 Version + ACE3 Version ACE3 Fehlermeldungen diff --git a/docs/README_PL.md b/docs/README_PL.md index 2ada5d6533..4f2c9b80b7 100644 --- a/docs/README_PL.md +++ b/docs/README_PL.md @@ -3,7 +3,7 @@

- ACE3 Wersja + ACE3 Wersja ACE3 Zagadnienia diff --git a/mod.cpp b/mod.cpp index d3827c93ad..cbb26b3acb 100644 --- a/mod.cpp +++ b/mod.cpp @@ -1,8 +1,8 @@ -name = "Advanced Combat Environment 3.12.1"; +name = "Advanced Combat Environment 3.12.2"; picture = "logo_ace3_ca.paa"; actionName = "GitHub"; action = "https://github.com/acemod/ACE3"; -description = "ACE3 - Version 3.12.1"; +description = "ACE3 - Version 3.12.2"; logo = "logo_ace3_ca.paa"; logoOver = "logo_ace3_ca.paa"; tooltip = "ACE3"; From e7b7219bd9dc25bc7ccbf45e5c984b8ed94318de Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Thu, 12 Apr 2018 09:15:57 -0500 Subject: [PATCH 083/235] Repair - Handle changes to getAllHitPointsDamage (#6250) Since 1.82 `getAllHitPointsDamage` returns lower case Fix track repair and hit point groups being case sensitive Part of #6248 --- addons/repair/dev/draw_showRepairInfo.sqf | 2 +- addons/repair/functions/fnc_addRepairActions.sqf | 6 +++--- addons/repair/functions/fnc_canMiscRepair.sqf | 5 +++-- addons/repair/functions/fnc_doRepair.sqf | 5 +++-- addons/repair/script_component.hpp | 2 +- 5 files changed, 11 insertions(+), 9 deletions(-) diff --git a/addons/repair/dev/draw_showRepairInfo.sqf b/addons/repair/dev/draw_showRepairInfo.sqf index 5701c172ea..3a1f0c8d0f 100644 --- a/addons/repair/dev/draw_showRepairInfo.sqf +++ b/addons/repair/dev/draw_showRepairInfo.sqf @@ -64,6 +64,6 @@ addMissionEventHandler ["Draw3D", { _output pushBack format ["%1: %2[%3] = %4", _forEachIndex, _hitPoint, _selection, cursorObject getHitIndex _forEachIndex]; _output pushBack format ["- %1 -",_info]; }; - } forEach _hitPoints; + } forEach _hitSelections; hintSilent (_output joinString "\n"); }]; diff --git a/addons/repair/functions/fnc_addRepairActions.sqf b/addons/repair/functions/fnc_addRepairActions.sqf index 8a1e068379..3f4842c3c0 100644 --- a/addons/repair/functions/fnc_addRepairActions.sqf +++ b/addons/repair/functions/fnc_addRepairActions.sqf @@ -28,7 +28,7 @@ private _initializedClasses = GETMVAR(GVAR(initializedClasses),[]); if (_type in _initializedClasses) exitWith {}; // get all hitpoints and selections -(getAllHitPointsDamage _vehicle) params [["_hitPoints", []], ["_hitSelections", []]]; +(getAllHitPointsDamage _vehicle) params [["_hitPoints", []], ["_hitSelections", []]]; // Since 1.82 these are all lower case // get hitpoints of wheels with their selections ([_vehicle] call FUNC(getWheelHitPointsWithSelections)) params ["_wheelHitPoints", "_wheelHitSelections"]; @@ -41,7 +41,7 @@ private _icon = QPATHTOF(ui\repair_0_ca.paa); { private _selection = _x; - private _hitpoint = _hitPoints select _forEachIndex; + private _hitpoint = toLower (_hitPoints select _forEachIndex); if (_selection in _wheelHitSelections) then { // Wheels should always be unique @@ -68,7 +68,7 @@ private _icon = QPATHTOF(ui\repair_0_ca.paa); [_type, 0, [], _action] call EFUNC(interact_menu,addActionToClass); } else { //Skip glass hitpoints - if (((toLower _hitPoint) find "glass") != -1) exitWith { + if ((_hitPoint find "glass") != -1) exitWith { TRACE_3("Skipping Glass",_hitpoint,_forEachIndex,_selection); }; // Empty selections don't exist diff --git a/addons/repair/functions/fnc_canMiscRepair.sqf b/addons/repair/functions/fnc_canMiscRepair.sqf index 9d9fc29478..c26cfdb42a 100644 --- a/addons/repair/functions/fnc_canMiscRepair.sqf +++ b/addons/repair/functions/fnc_canMiscRepair.sqf @@ -36,9 +36,10 @@ if (isArray _hitpointGroupConfig) then { // Exit using found hitpoint group if this hitpoint is leader of any if (_masterHitpoint == _hitPointClassname) exitWith { { - private _subHitIndex = _allHitPoints find _x; + private _subHitpoint = _x; + private _subHitIndex = _allHitPoints findIf {_x == _subHitpoint}; if (_subHitIndex == -1) then { - ERROR("Hitpoint Not Found"); + ERROR_2("Invalid hitpoint %1 in hitpointGroups of %2",_subHitpoint,_target); } else { _hitpointGroup pushBack _subHitIndex; }; diff --git a/addons/repair/functions/fnc_doRepair.sqf b/addons/repair/functions/fnc_doRepair.sqf index ad944518f4..64056fb999 100644 --- a/addons/repair/functions/fnc_doRepair.sqf +++ b/addons/repair/functions/fnc_doRepair.sqf @@ -47,9 +47,10 @@ if (isArray _hitpointGroupConfig) then { // Exit using found hitpoint group if this hitpoint is leader of any if (_masterHitpoint == _hitPointClassname) exitWith { { - private _subHitIndex = _allHitPoints find _x; //convert hitpoint classname to index + private _subHitpoint = _x; + private _subHitIndex = _allHitPoints findIf {_x == _subHitpoint}; //convert hitpoint classname to index if (_subHitIndex == -1) then { - ERROR_2("Invalid hitpoint %1 in hitpointGroups of %2",_x,_vehicle); + ERROR_2("Invalid hitpoint %1 in hitpointGroups of %2",_subHitpoint,_vehicle); } else { private _subPointCurDamage = _vehicle getHitIndex _hitPointIndex; private _subPointNewDamage = (_subPointCurDamage - 0.5) max _postRepairDamageMin; diff --git a/addons/repair/script_component.hpp b/addons/repair/script_component.hpp index 879d6930e0..678f8fe04e 100644 --- a/addons/repair/script_component.hpp +++ b/addons/repair/script_component.hpp @@ -16,4 +16,4 @@ #include "\z\ace\addons\main\script_macros.hpp" -#define TRACK_HITPOINTS ["HitLTrack", "HitRTrack"] +#define TRACK_HITPOINTS ["hitltrack", "hitrtrack"] From b7942fdb8388ae5be83bed549a4cdaa1b2065334 Mon Sep 17 00:00:00 2001 From: Kex Date: Thu, 12 Apr 2018 16:25:57 +0200 Subject: [PATCH 084/235] Remove arsenal when already present (#6246) --- addons/zeus/functions/fnc_moduleAddAceArsenal.sqf | 1 + 1 file changed, 1 insertion(+) diff --git a/addons/zeus/functions/fnc_moduleAddAceArsenal.sqf b/addons/zeus/functions/fnc_moduleAddAceArsenal.sqf index d3a6a0cb72..5d8bbdb72c 100644 --- a/addons/zeus/functions/fnc_moduleAddAceArsenal.sqf +++ b/addons/zeus/functions/fnc_moduleAddAceArsenal.sqf @@ -29,6 +29,7 @@ switch (true) do { [LSTRING(OnlyAlive)] call FUNC(showMessage); }; default { + [_object, true] call EFUNC(arsenal,removeBox); [_object, true, true] call EFUNC(arsenal,initBox); }; }; From 468da8b79b2d99c500391e216f1c036e1d173cea Mon Sep 17 00:00:00 2001 From: shukari Date: Thu, 12 Apr 2018 17:23:18 +0200 Subject: [PATCH 085/235] Fix fastropes being blocked after rope breaking (#6239) * add broken state * add broke state * add broken state * add broken state * add broken state --- addons/fastroping/functions/fnc_canFastRope.sqf | 2 +- addons/fastroping/functions/fnc_deployRopes.sqf | 4 ++-- addons/fastroping/functions/fnc_fastRope.sqf | 2 +- addons/fastroping/functions/fnc_fastRopeServerPFH.sqf | 2 +- addons/fastroping/functions/fnc_onRopeBreak.sqf | 2 +- 5 files changed, 6 insertions(+), 6 deletions(-) diff --git a/addons/fastroping/functions/fnc_canFastRope.sqf b/addons/fastroping/functions/fnc_canFastRope.sqf index 5bf5c07d03..4fe38cca93 100644 --- a/addons/fastroping/functions/fnc_canFastRope.sqf +++ b/addons/fastroping/functions/fnc_canFastRope.sqf @@ -22,5 +22,5 @@ private _deployedRopes = _vehicle getVariable [QGVAR(deployedRopes), []]; ((driver _vehicle != _unit) && {!(_deployedRopes isEqualTo [])} && -{{!(_x select 5)} count (_deployedRopes) > 0} && +{{!(_x select 5) && !(_x select 6)} count (_deployedRopes) > 0} && {getPos _vehicle select 2 > 2}) diff --git a/addons/fastroping/functions/fnc_deployRopes.sqf b/addons/fastroping/functions/fnc_deployRopes.sqf index 6e61ed232d..c6ed9dc9b6 100644 --- a/addons/fastroping/functions/fnc_deployRopes.sqf +++ b/addons/fastroping/functions/fnc_deployRopes.sqf @@ -45,8 +45,8 @@ private _hookAttachment = _vehicle getVariable [QGVAR(FRIES), _vehicle]; _ropeTop addEventHandler ["RopeBreak", {[_this, "top"] call FUNC(onRopeBreak)}]; _ropeBottom addEventHandler ["RopeBreak", {[_this, "bottom"] call FUNC(onRopeBreak)}]; - //deployedRopes format: attachment point, top part of the rope, bottom part of the rope, attachTo helper object, occupied - _deployedRopes pushBack [_ropeOrigin, _ropeTop, _ropeBottom, _dummy, _hook, false]; + //deployedRopes format: attachment point, top part of the rope, bottom part of the rope, attachTo helper object, occupied, broken + _deployedRopes pushBack [_ropeOrigin, _ropeTop, _ropeBottom, _dummy, _hook, false, false]; false } count _ropeOrigins; diff --git a/addons/fastroping/functions/fnc_fastRope.sqf b/addons/fastroping/functions/fnc_fastRope.sqf index ab78f122e5..a4ce39e7ad 100644 --- a/addons/fastroping/functions/fnc_fastRope.sqf +++ b/addons/fastroping/functions/fnc_fastRope.sqf @@ -23,7 +23,7 @@ private _deployedRopes = _vehicle getVariable [QGVAR(deployedRopes), []]; private _usableRope = _deployedRopes select 0; private _usableRopeIndex = 0; { - if !(_x select 5) exitWith { + if (!(_x select 5) && !(_x select 6)) exitWith { _usableRope = _x; _usableRopeIndex = _forEachIndex; }; diff --git a/addons/fastroping/functions/fnc_fastRopeServerPFH.sqf b/addons/fastroping/functions/fnc_fastRopeServerPFH.sqf index 8c4b347494..c8be61fb6f 100644 --- a/addons/fastroping/functions/fnc_fastRopeServerPFH.sqf +++ b/addons/fastroping/functions/fnc_fastRopeServerPFH.sqf @@ -85,7 +85,7 @@ if ( //Update deployedRopes array private _deployedRopes = _vehicle getVariable [QGVAR(deployedRopes), []]; - _deployedRopes set [_ropeIndex, [_attachmentPoint, _ropeTop, _ropeBottom, _dummy, _hook, false]]; + _deployedRopes set [_ropeIndex, [_attachmentPoint, _ropeTop, _ropeBottom, _dummy, _hook, false, false]]; _vehicle setVariable [QGVAR(deployedRopes), _deployedRopes, true]; [_pfhHandle] call CBA_fnc_removePerFrameHandler; diff --git a/addons/fastroping/functions/fnc_onRopeBreak.sqf b/addons/fastroping/functions/fnc_onRopeBreak.sqf index 3c83daea30..29937217cf 100644 --- a/addons/fastroping/functions/fnc_onRopeBreak.sqf +++ b/addons/fastroping/functions/fnc_onRopeBreak.sqf @@ -36,7 +36,7 @@ private _brokenRope = []; _brokenRope = _x; }; } forEach _deployedRopes; -_brokenRope set [5, true]; +_brokenRope set [6, true]; _vehicle setVariable [QGVAR(deployedRopes), _deployedRopes, true]; private _unit = { From 1994e301fdc95935ba16262eac0a5e65bf996be1 Mon Sep 17 00:00:00 2001 From: Josuan Albin Date: Thu, 12 Apr 2018 17:44:23 +0200 Subject: [PATCH 086/235] More various ace arsenal fixes (#6192) * Compile stats on preInit * Remove uneeded check in add/removeStat * Remove perf profiler vars They aren't required anymore * Fix case issue in verifyLoadout, remove uneeded line * Fix ace arsenal cam not working porperly underwater By removing those checks the cam is allowed to clip through objects and work properly underwater, sounds like features to me :D * Fix gunbag behavior in ace arsenal Switching between gunbags will keep the weapon, switching to another backpack then back to a gunbag will also keep the weapon. * Fix text scaling in the searchbars and loadout name edit boxes Also made the text bigger by default --- addons/arsenal/XEH_preInit.sqf | 2 + addons/arsenal/defines.hpp | 70 +++++++++---------- addons/arsenal/functions/fnc_addStat.sqf | 1 + .../arsenal/functions/fnc_fillLeftPanel.sqf | 4 -- .../arsenal/functions/fnc_fillRightPanel.sqf | 4 -- addons/arsenal/functions/fnc_handleMouse.sqf | 5 -- addons/arsenal/functions/fnc_handleStats.sqf | 5 -- addons/arsenal/functions/fnc_itemInfo.sqf | 4 -- .../arsenal/functions/fnc_onArsenalOpen.sqf | 5 -- .../functions/fnc_onSelChangedLeft.sqf | 4 -- .../functions/fnc_onSelChangedRight.sqf | 4 -- .../fnc_onSelChangedRightListnBox.sqf | 4 -- addons/arsenal/functions/fnc_showItem.sqf | 4 -- addons/arsenal/functions/fnc_sortPanel.sqf | 4 -- addons/arsenal/functions/fnc_updateCamPos.sqf | 6 -- .../functions/fnc_updateRightPanel.sqf | 4 -- addons/arsenal/script_component.hpp | 1 - addons/arsenal/ui/RscAttributes.hpp | 3 + addons/gunbag/XEH_preInit.sqf | 18 +++++ 19 files changed, 59 insertions(+), 93 deletions(-) diff --git a/addons/arsenal/XEH_preInit.sqf b/addons/arsenal/XEH_preInit.sqf index 1919941139..41f5f4cf88 100644 --- a/addons/arsenal/XEH_preInit.sqf +++ b/addons/arsenal/XEH_preInit.sqf @@ -58,4 +58,6 @@ GVAR(modList) = ["","curator","kart","heli","mark","expansion","expansionpremium _this call FUNC(handleStats); }] call CBA_fnc_addEventHandler; +call FUNC(compileStats); + ADDON = true; diff --git a/addons/arsenal/defines.hpp b/addons/arsenal/defines.hpp index 42c0e70536..1a3c94d1ca 100644 --- a/addons/arsenal/defines.hpp +++ b/addons/arsenal/defines.hpp @@ -339,27 +339,27 @@ _buttonCurrentMag2Ctrl ctrlCommit FADE_DELAY;\ ] #define CHECK_WEAPON_OR_ACC\ - _item in (_weaponsArray select 0) ||\ - {_item in (_weaponsArray select 1)} ||\ - {_item in (_weaponsArray select 2)} ||\ - {_item in (GVAR(virtualItems) select 9)} ||\ - {_item in (_accsArray select 0)} ||\ - {_item in (_accsArray select 1)} ||\ - {_item in (_accsArray select 2)} ||\ - {_item in (_accsArray select 3)} + (_weaponsArray select 0) findIf {_x == _item} > -1 ||\ + {(_weaponsArray select 1) findIf {_x == _item} > -1} ||\ + {(_weaponsArray select 2) findIf {_x == _item} > -1} ||\ + {(GVAR(virtualItems) select 9) findIf {_x == _item} > -1} ||\ + {(_accsArray select 0) findIf {_x == _item} > -1} ||\ + {(_accsArray select 1 findIf {_x == _item} > -1)} ||\ + {(_accsArray select 2) findIf {_x == _item} > -1} ||\ + {(_accsArray select 3) findIf {_x == _item} > -1} #define CHECK_ASSIGNED_ITEMS\ - _item in (GVAR(virtualItems) select 10) ||\ - {_item in (GVAR(virtualItems) select 11)} ||\ - {_item in (GVAR(virtualItems) select 12)} ||\ - {_item in (GVAR(virtualItems) select 13)} ||\ - {_item in (GVAR(virtualItems) select 14)} ||\ - {_item in (GVAR(virtualItems) select 8)} + (GVAR(virtualItems) select 10) findIf {_x == _item} > -1 ||\ + {(GVAR(virtualItems) select 11) findIf {_x == _item} > -1} ||\ + {(GVAR(virtualItems) select 12) findIf {_x == _item} > -1} ||\ + {(GVAR(virtualItems) select 13) findIf {_x == _item} > -1} ||\ + {(GVAR(virtualItems) select 14) findIf {_x == _item} > -1} ||\ + {(GVAR(virtualItems) select 8) findIf {_x == _item} > -1} #define CHECK_CONTAINER\ - _item in (GVAR(virtualItems) select 4) ||\ - {_item in (GVAR(virtualItems) select 5)} ||\ - {_item in (GVAR(virtualItems) select 6)} + (GVAR(virtualItems) select 4) findIf {_x == _item} > -1 ||\ + {(GVAR(virtualItems) select 5) findIf {_x == _item} > -1} ||\ + {(GVAR(virtualItems) select 6) findIf {_x == _item} > -1} #define CLASS_CHECK_ITEM\ isClass (_weaponCfg >> _item) ||\ @@ -368,24 +368,24 @@ _buttonCurrentMag2Ctrl ctrlCommit FADE_DELAY;\ {isClass (_magCfg >> _item)} #define CHECK_CONTAINER_ITEMS\ - _item in (GVAR(virtualItems) select 3) ||\ - {_item in (_accsArray select 0)} ||\ - {_item in (_accsArray select 1)} ||\ - {_item in (_accsArray select 2)} ||\ - {_item in (_accsArray select 3)} ||\ - {_item in (GVAR(virtualItems) select 4)} ||\ - {_item in (GVAR(virtualItems) select 5)} ||\ - {_item in (GVAR(virtualItems) select 6)} ||\ - {_item in (GVAR(virtualItems) select 7)} ||\ - {_item in (GVAR(virtualItems) select 8)} ||\ - {_item in (GVAR(virtualItems) select 10)} ||\ - {_item in (GVAR(virtualItems) select 11)} ||\ - {_item in (GVAR(virtualItems) select 12)} ||\ - {_item in (GVAR(virtualItems) select 13)} ||\ - {_item in (GVAR(virtualItems) select 14)} ||\ - {_item in (GVAR(virtualItems) select 15)} ||\ - {_item in (GVAR(virtualItems) select 16)} ||\ - {_item in (GVAR(virtualItems) select 17)} + (GVAR(virtualItems) select 3) findIf {_x == _item} > -1 ||\ + {(_accsArray select 0) findIf {_x == _item} > -1} ||\ + {(_accsArray select 1) findIf {_x == _item} > -1} ||\ + {(_accsArray select 2) findIf {_x == _item} > -1} ||\ + {(_accsArray select 3) findIf {_x == _item} > -1} ||\ + {(GVAR(virtualItems) select 4) findIf {_x == _item} > -1} ||\ + {(GVAR(virtualItems) select 5) findIf {_x == _item} > -1} ||\ + {(GVAR(virtualItems) select 6) findIf {_x == _item} > -1} ||\ + {(GVAR(virtualItems) select 7) findIf {_x == _item} > -1} ||\ + {(GVAR(virtualItems) select 8) findIf {_x == _item} > -1} ||\ + {(GVAR(virtualItems) select 10) findIf {_x == _item} > -1} ||\ + {(GVAR(virtualItems) select 11) findIf {_x == _item} > -1} ||\ + {(GVAR(virtualItems) select 12) findIf {_x == _item} > -1} ||\ + {(GVAR(virtualItems) select 13) findIf {_x == _item} > -1} ||\ + {(GVAR(virtualItems) select 14) findIf {_x == _item} > -1} ||\ + {(GVAR(virtualItems) select 15) findIf {_x == _item} > -1} ||\ + {(GVAR(virtualItems) select 16) findIf {_x == _item} > -1} ||\ + {(GVAR(virtualItems) select 17) findIf {_x == _item} > -1} #define ADD_LOADOUTS_LIST_PICTURES\ _contentPanelCtrl lnbSetPicture [[_newRow, 2], getText (configFile >> "cfgWeapons" >> ((_loadout select 0) select 0) >> "picture")];\ diff --git a/addons/arsenal/functions/fnc_addStat.sqf b/addons/arsenal/functions/fnc_addStat.sqf index 88b732df93..d51c0ff13d 100644 --- a/addons/arsenal/functions/fnc_addStat.sqf +++ b/addons/arsenal/functions/fnc_addStat.sqf @@ -54,6 +54,7 @@ _statements params [ ]; call FUNC(compileStats); + private _returnArray = []; private _fnc_addToTabs = { diff --git a/addons/arsenal/functions/fnc_fillLeftPanel.sqf b/addons/arsenal/functions/fnc_fillLeftPanel.sqf index 46dbd86e83..83a4336ea0 100644 --- a/addons/arsenal/functions/fnc_fillLeftPanel.sqf +++ b/addons/arsenal/functions/fnc_fillLeftPanel.sqf @@ -14,10 +14,6 @@ #include "script_component.hpp" #include "..\defines.hpp" -#ifdef ENABLE_PERF_PROFILING - private _scopeFillLeftPanel = createProfileScope QFUNC(fillLeftPanel); -#endif - params ["_display", "_control"]; private _ctrlIDC = ctrlIDC _control; diff --git a/addons/arsenal/functions/fnc_fillRightPanel.sqf b/addons/arsenal/functions/fnc_fillRightPanel.sqf index 52d91cf20c..c62ea3cab8 100644 --- a/addons/arsenal/functions/fnc_fillRightPanel.sqf +++ b/addons/arsenal/functions/fnc_fillRightPanel.sqf @@ -14,10 +14,6 @@ #include "script_component.hpp" #include "..\defines.hpp" -#ifdef ENABLE_PERF_PROFILING - private _scopeFillRightPanel = createProfileScope QFUNC(fillRightPanel); -#endif - params ["_display", "_control"]; private _ctrlIDC = ctrlIDC _control; diff --git a/addons/arsenal/functions/fnc_handleMouse.sqf b/addons/arsenal/functions/fnc_handleMouse.sqf index 16548f3985..071eb1f94d 100644 --- a/addons/arsenal/functions/fnc_handleMouse.sqf +++ b/addons/arsenal/functions/fnc_handleMouse.sqf @@ -44,11 +44,6 @@ if (count _LMB > 0) then { _helperPos set [2,(_helperPos select 2) max ((boundingboxreal GVAR(center) select 0 select 2) + 0.2)]; - //--- Do not let target go below ground - private _posZmin = 0.1; - private _targetWorldPosZ = (GVAR(center) modeltoworldvisual _helperPos) select 2; - if (_targetWorldPosZ < _posZmin) then {_helperPos set [2,(_helperPos select 2) - _targetWorldPosZ + _posZmin];}; - GVAR(cameraPosition) set [3,_helperPos]; }; diff --git a/addons/arsenal/functions/fnc_handleStats.sqf b/addons/arsenal/functions/fnc_handleStats.sqf index f9180f372d..ec22b6055d 100644 --- a/addons/arsenal/functions/fnc_handleStats.sqf +++ b/addons/arsenal/functions/fnc_handleStats.sqf @@ -16,10 +16,6 @@ #include "script_component.hpp" #include "..\defines.hpp" -#ifdef ENABLE_PERF_PROFILING - private _scopeHandleStats = createProfileScope QFUNC(handleStats); -#endif - params ["_display", "_control", "_curSel", "_itemCfg"]; private _statsBoxCtrl = _display displayCtrl IDC_statsBox; @@ -50,7 +46,6 @@ private _hideUnusedFnc = { } forEach _numbers; }; -call FUNC(compileStats); if !(isNil "_itemCfg") then { private _handleStatsFnc = { diff --git a/addons/arsenal/functions/fnc_itemInfo.sqf b/addons/arsenal/functions/fnc_itemInfo.sqf index 45d5d03164..546158fa7e 100644 --- a/addons/arsenal/functions/fnc_itemInfo.sqf +++ b/addons/arsenal/functions/fnc_itemInfo.sqf @@ -16,10 +16,6 @@ #include "script_component.hpp" #include "..\defines.hpp" -#ifdef ENABLE_PERF_PROFILING - private _scopeItemInfo = createProfileScope QFUNC(itemInfo); -#endif - params ["_display", "_control", "_curSel" ,"_itemCfg"]; private _ctrlInfo = _display displayCtrl IDC_infoBox; diff --git a/addons/arsenal/functions/fnc_onArsenalOpen.sqf b/addons/arsenal/functions/fnc_onArsenalOpen.sqf index 23e03561a8..b67bd4173a 100644 --- a/addons/arsenal/functions/fnc_onArsenalOpen.sqf +++ b/addons/arsenal/functions/fnc_onArsenalOpen.sqf @@ -15,11 +15,6 @@ #include "script_component.hpp" #include "..\defines.hpp" -#ifdef ENABLE_PERF_PROFILING - private _scopeArsenal = createProfileScope QFUNC(onArsenalOpen); - profilerTrigger; -#endif - params ["", "_args"]; _args params ["_display"]; diff --git a/addons/arsenal/functions/fnc_onSelChangedLeft.sqf b/addons/arsenal/functions/fnc_onSelChangedLeft.sqf index b70f7b00e6..5c4d49b5d1 100644 --- a/addons/arsenal/functions/fnc_onSelChangedLeft.sqf +++ b/addons/arsenal/functions/fnc_onSelChangedLeft.sqf @@ -14,10 +14,6 @@ #include "script_component.hpp" #include "..\defines.hpp" -#ifdef ENABLE_PERF_PROFILING - private _scopeOnSelChangedLeft = createProfileScope QFUNC(onSelChangedLeft); -#endif - params ["_control", "_curSel"]; if (_curSel < 0) exitwith {}; diff --git a/addons/arsenal/functions/fnc_onSelChangedRight.sqf b/addons/arsenal/functions/fnc_onSelChangedRight.sqf index ce40ef87f6..7a565cd14d 100644 --- a/addons/arsenal/functions/fnc_onSelChangedRight.sqf +++ b/addons/arsenal/functions/fnc_onSelChangedRight.sqf @@ -14,10 +14,6 @@ #include "script_component.hpp" #include "..\defines.hpp" -#ifdef ENABLE_PERF_PROFILING - private _scopeOnSelChangedRight = createProfileScope QFUNC(onSelChangedRight); -#endif - params ["_control", "_curSel"]; if (_curSel < 0) exitwith {}; diff --git a/addons/arsenal/functions/fnc_onSelChangedRightListnBox.sqf b/addons/arsenal/functions/fnc_onSelChangedRightListnBox.sqf index 531c0817c8..29c66a79f9 100644 --- a/addons/arsenal/functions/fnc_onSelChangedRightListnBox.sqf +++ b/addons/arsenal/functions/fnc_onSelChangedRightListnBox.sqf @@ -14,10 +14,6 @@ #include "script_component.hpp" #include "..\defines.hpp" -#ifdef ENABLE_PERF_PROFILING - private _scopeOnSelChangedRightLNB = createProfileScope QFUNC(onSelChangedRightListnBox); -#endif - params ["_control", "_curSel"]; if (_curSel < 0) exitwith {}; diff --git a/addons/arsenal/functions/fnc_showItem.sqf b/addons/arsenal/functions/fnc_showItem.sqf index fddfbe1a3a..478ae4218d 100644 --- a/addons/arsenal/functions/fnc_showItem.sqf +++ b/addons/arsenal/functions/fnc_showItem.sqf @@ -13,10 +13,6 @@ #include "script_component.hpp" #include "..\defines.hpp" -#ifdef ENABLE_PERF_PROFILING - private _scopeShowItem = createProfileScope QFUNC(showItem); -#endif - if (GVAR(centerNotPlayer)) exitWith {}; private _nextAction = switch (GVAR(currentLeftPanel)) do { diff --git a/addons/arsenal/functions/fnc_sortPanel.sqf b/addons/arsenal/functions/fnc_sortPanel.sqf index a81b31bd82..c8bf02777f 100644 --- a/addons/arsenal/functions/fnc_sortPanel.sqf +++ b/addons/arsenal/functions/fnc_sortPanel.sqf @@ -14,10 +14,6 @@ #include "script_component.hpp" #include "..\defines.hpp" -#ifdef ENABLE_PERF_PROFILING - private _scopeSortPanel = createProfileScope QFUNC(sortPanel); -#endif - params ["_control", "_mode"]; private _display = ctrlParent _control; diff --git a/addons/arsenal/functions/fnc_updateCamPos.sqf b/addons/arsenal/functions/fnc_updateCamPos.sqf index f8b6b91a15..41b7399e61 100644 --- a/addons/arsenal/functions/fnc_updateCamPos.sqf +++ b/addons/arsenal/functions/fnc_updateCamPos.sqf @@ -19,9 +19,3 @@ GVAR(cameraHelper) attachTo [GVAR(center), GVAR(cameraPosition) select 3, ""]; / GVAR(camera) setPos (GVAR(cameraHelper) modelToWorld [0, -_distance, 0]); GVAR(camera) setVectorDirAndUp [vectorDir GVAR(cameraHelper), vectorUp GVAR(cameraHelper)]; - -//--- Make sure the camera is not underground -if ((getPosAsl GVAR(camera) select 2) < (getPosAsl GVAR(center) select 2)) then { - private _disCoef = ((getPosAsl GVAR(cameraHelper) select 2) - (getPosAsl GVAR(center) select 2)) / ((getPosAsl GVAR(cameraHelper) select 2) - (getPosAsl GVAR(camera) select 2) + 0.001); - GVAR(camera) setPos (GVAR(cameraHelper) modelToWorldVisual [0, -_distance * _disCoef, 0]); -}; diff --git a/addons/arsenal/functions/fnc_updateRightPanel.sqf b/addons/arsenal/functions/fnc_updateRightPanel.sqf index 42a0275fbb..41c7c68483 100644 --- a/addons/arsenal/functions/fnc_updateRightPanel.sqf +++ b/addons/arsenal/functions/fnc_updateRightPanel.sqf @@ -14,10 +14,6 @@ #include "script_component.hpp" #include "..\defines.hpp" -#ifdef ENABLE_PERF_PROFILING - private _scopeUpdateRightPanel = createProfileScope QFUNC(updateRightPanel); -#endif - params ["_control", "_maxLoad"]; private _loadIndicatorBarCtrl = _display displayCtrl IDC_loadIndicatorBar; diff --git a/addons/arsenal/script_component.hpp b/addons/arsenal/script_component.hpp index 791b9663dc..2eb9c3f170 100644 --- a/addons/arsenal/script_component.hpp +++ b/addons/arsenal/script_component.hpp @@ -5,7 +5,6 @@ // #define DEBUG_MODE_FULL // #define DISABLE_COMPILE_CACHE // #define ENABLE_PERFORMANCE_COUNTERS -// #define ENABLE_PERF_PROFILING // This requires https://forums.bohemia.net/forums/topic/211626-arma-script-profiler/ do not uncomment otherwise. #ifdef DEBUG_ENABLED_ARSENAL #define DEBUG_MODE_FULL diff --git a/addons/arsenal/ui/RscAttributes.hpp b/addons/arsenal/ui/RscAttributes.hpp index 7f485fb9e6..50a1d7f93c 100644 --- a/addons/arsenal/ui/RscAttributes.hpp +++ b/addons/arsenal/ui/RscAttributes.hpp @@ -559,6 +559,7 @@ class GVAR(display) { y = QUOTE(safezoneY + 1.8 * GRID_H); w = QUOTE(74 * GRID_W); h = QUOTE(6 * GRID_H); + sizeEx = QUOTE(6 * GRID_H); }; class leftSearchbarButton: ctrlButtonPicture { idc = IDC_leftSearchbarButton; @@ -987,6 +988,7 @@ class GVAR(loadoutsDisplay) { y = QUOTE(safezoneH - (51 * GRID_H)); w = QUOTE(65 * GRID_W); h = QUOTE(5 * GRID_H); + sizeEx = QUOTE(6 * GRID_H); }; class loadoutsSearchbar: ctrlEdit { idc = IDC_loadoutsSearchbar; @@ -997,6 +999,7 @@ class GVAR(loadoutsDisplay) { y = QUOTE(safezoneH - (51 * GRID_H)); w = QUOTE(72 * GRID_W); h = QUOTE(5 * GRID_H); + sizeEx = QUOTE(6 * GRID_H); }; class loadoutsSearchbarButton: ctrlButtonPicture { idc = -1; diff --git a/addons/gunbag/XEH_preInit.sqf b/addons/gunbag/XEH_preInit.sqf index cac548d134..8f313ba472 100644 --- a/addons/gunbag/XEH_preInit.sqf +++ b/addons/gunbag/XEH_preInit.sqf @@ -24,4 +24,22 @@ PREP_RECOMPILE_END; }, _this] call CBA_fnc_execNextFrame; }] call CBA_fnc_addClassEventHandler; +[QEGVAR(arsenal,displayOpened), { + + private _center = EGVAR(arsenal,center); + + if (_center call FUNC(hasGunBag)) then { + GVAR(arsenalCache) = (backpackContainer _center) getVariable [QGVAR(gunbagWeapon), []]; + }; +}] call CBA_fnc_addEventHandler; + +[QEGVAR(arsenal,displayClosed), { + + if !(isNil QGVAR(arsenalCache)) then { + (backpackContainer EGVAR(arsenal,center)) setVariable [QGVAR(gunbagWeapon),GVAR(arsenalCache), true]; + }; + + GVAR(arsenalCache) = nil; +}] call CBA_fnc_addEventHandler; + ADDON = true; From 13d338a7897647e656cb65450d7f54ae8b4d5e61 Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Thu, 12 Apr 2018 12:16:44 -0500 Subject: [PATCH 087/235] make.py - cleanup old optional pbos before rename (#6254) --- tools/make.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/tools/make.py b/tools/make.py index 3ca0523cd0..8e4509e162 100644 --- a/tools/make.py +++ b/tools/make.py @@ -432,9 +432,15 @@ def cleanup_optionals(mod): if (os.path.isfile(src_file_path)): + if (os.path.isfile(dst_file_path)): + # print("Cleanuping up old file {}".format(dst_file_path)) + os.remove(dst_file_path); #print("Preserving {}".format(file_name)) os.renames(src_file_path,dst_file_path) if (os.path.isfile(src_sig_path)): + if (os.path.isfile(dst_sig_path)): + # print("Cleanuping up old file {}".format(dst_sig_path)) + os.remove(dst_sig_path); #print("Preserving {}".format(sigFile_name)) os.renames(src_sig_path,dst_sig_path) except FileExistsError: From 350711a86ceeba8793cfd200b15867286ca3df1c Mon Sep 17 00:00:00 2001 From: Dystopian Date: Sat, 14 Apr 2018 01:37:08 +0200 Subject: [PATCH 088/235] Fix repair at dead vehicle (#6262) --- addons/repair/functions/fnc_isNearRepairVehicle.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/repair/functions/fnc_isNearRepairVehicle.sqf b/addons/repair/functions/fnc_isNearRepairVehicle.sqf index b0bd4b3cd1..763d146970 100644 --- a/addons/repair/functions/fnc_isNearRepairVehicle.sqf +++ b/addons/repair/functions/fnc_isNearRepairVehicle.sqf @@ -22,7 +22,7 @@ private _nearObjects = nearestObjects [_unit, ["Air", "LandVehicle", "Slingload_ private _return = false; { - if ([_x] call FUNC(isRepairVehicle)) exitWith {_return = true;}; + if (alive _x && {[_x] call FUNC(isRepairVehicle)}) exitWith {_return = true;}; } forEach _nearObjects; _return; From 10a3a29ea056015763ef924f0331b82b46c3432f Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Fri, 13 Apr 2018 23:08:39 -0500 Subject: [PATCH 089/235] Drop FCS from aircraft (#6265) --- addons/fcs/CfgVehicles.hpp | 31 ---------------------- optionals/compat_rhs_afrf3/CfgVehicles.hpp | 18 ------------- optionals/compat_rhs_usf3/CfgVehicles.hpp | 14 ---------- 3 files changed, 63 deletions(-) diff --git a/addons/fcs/CfgVehicles.hpp b/addons/fcs/CfgVehicles.hpp index 5b5935506e..e357613a80 100644 --- a/addons/fcs/CfgVehicles.hpp +++ b/addons/fcs/CfgVehicles.hpp @@ -97,35 +97,4 @@ class CfgVehicles { }; }; }; - - // AIR VEHICLES - class Air: AllVehicles {}; - - class Helicopter: Air { - class Turrets { - class MainTurret; - }; - }; - - class Helicopter_Base_F: Helicopter {}; - - class Heli_Attack_01_base_F: Helicopter_Base_F { - class Turrets: Turrets { - class MainTurret: MainTurret { - GVAR(Enabled) = 1; - discreteDistance[] = {}; - discreteDistanceInitIndex = 0; - }; - }; - }; - - class Heli_Attack_02_base_F: Helicopter_Base_F { - class Turrets: Turrets { - class MainTurret: MainTurret { - GVAR(Enabled) = 1; - discreteDistance[] = {}; - discreteDistanceInitIndex = 0; - }; - }; - }; }; diff --git a/optionals/compat_rhs_afrf3/CfgVehicles.hpp b/optionals/compat_rhs_afrf3/CfgVehicles.hpp index c1c3c73908..e818677f24 100644 --- a/optionals/compat_rhs_afrf3/CfgVehicles.hpp +++ b/optionals/compat_rhs_afrf3/CfgVehicles.hpp @@ -152,33 +152,15 @@ class CfgVehicles { }; class Heli_Attack_02_base_F: Helicopter_Base_F {}; - class rhs_mi28_base: Heli_Attack_02_base_F { - class Turrets: Turrets { - class MainTurret: MainTurret { - EGVAR(fcs,enabled) = 0; // Note: This is still required because of inheritance from Heli_Attack_02_base_F - }; - }; - }; - class RHS_Ka52_base: Heli_Attack_02_base_F { EGVAR(refuel,fuelCapacity) = 1870; EGVAR(fastroping,enabled) = 0; - class Turrets: Turrets { - class MainTurret: MainTurret { - EGVAR(fcs,enabled) = 0; // Note: This is still required because of inheritance from Heli_Attack_02_base_F - }; - }; }; class RHS_Mi24_base: Heli_Attack_02_base_F { EGVAR(map,vehicleLightColor)[] = {1,0,0,0.1}; EGVAR(refuel,fuelCapacity) = 1851; EGVAR(fastroping,enabled) = 0; - class Turrets: Turrets { - class MainTurret: MainTurret { - EGVAR(fcs,enabled) = 0; // Note: This is still required because of inheritance from Heli_Attack_02_base_F - }; - }; }; class rhs_t80b: rhs_tank_base { diff --git a/optionals/compat_rhs_usf3/CfgVehicles.hpp b/optionals/compat_rhs_usf3/CfgVehicles.hpp index 9e646f40cc..ba5937fa72 100644 --- a/optionals/compat_rhs_usf3/CfgVehicles.hpp +++ b/optionals/compat_rhs_usf3/CfgVehicles.hpp @@ -196,24 +196,10 @@ class CfgVehicles { EGVAR(hellfire,addLaserDesignator) = 1; }; - class RHS_AH1Z: RHS_AH1Z_base { - class Turrets: Turrets { - class MainTurret: MainTurret { - ace_fcs_Enabled = 0; // Note: This is still required because of inheritance from Heli_Attack_01_base_F - }; - }; - }; class RHS_AH64_base: Heli_Attack_01_base_F { EGVAR(refuel,fuelCapacity) = 1420; EGVAR(hellfire,addLaserDesignator) = 1; }; - class RHS_AH64D: RHS_AH64_base { - class Turrets: Turrets { - class MainTurret: MainTurret { - ace_fcs_Enabled = 0; // Note: This is still required because of inheritance from Heli_Attack_01_base_F - }; - }; - }; class MBT_01_arty_base_F; class rhsusf_m109tank_base: MBT_01_arty_base_F { From 6a4f2b1fda1b907096cc2420d9b63356aac45269 Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Fri, 13 Apr 2018 23:08:56 -0500 Subject: [PATCH 090/235] Hellfire - Fix hellfires not showing after 1.82 (#6259) Inherit from RocketPods instead of scalpel which has changed --- addons/hellfire/CfgWeapons.hpp | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/addons/hellfire/CfgWeapons.hpp b/addons/hellfire/CfgWeapons.hpp index e55492a59c..1d7f167aad 100644 --- a/addons/hellfire/CfgWeapons.hpp +++ b/addons/hellfire/CfgWeapons.hpp @@ -1,15 +1,28 @@ class CfgWeapons { - class missiles_SCALPEL; - class GVAR(launcher): missiles_SCALPEL { + class RocketPods; + class GVAR(launcher): RocketPods { displayName = "AGM-114K Hellfire II"; GVAR(enabled) = 1; // handle adding interactions and adding Laser Designator EGVAR(laser,canSelect) = 1; // can ace_laser lock (allows switching laser code) EGVAR(laser,showHud) = 1; // show attack profile / lock on hud + magazines[] = {"6Rnd_ACE_Hellfire_AGM114K", "PylonMissile_1Rnd_ACE_Hellfire_AGM114K", "PylonRack_1Rnd_ACE_Hellfire_AGM114K", "PylonRack_3Rnd_ACE_Hellfire_AGM114K", "PylonRack_4Rnd_ACE_Hellfire_AGM114K"}; + + autoFire = 0; canLock = 0; weaponLockSystem = 0; - magazines[] = {"6Rnd_ACE_Hellfire_AGM114K", "PylonMissile_1Rnd_ACE_Hellfire_AGM114K", "PylonRack_1Rnd_ACE_Hellfire_AGM114K", "PylonRack_3Rnd_ACE_Hellfire_AGM114K", "PylonRack_4Rnd_ACE_Hellfire_AGM114K"}; lockingTargetSound[] = {"",0,1}; lockedTargetSound[] = {"",0,1}; + soundFly[] = {"A3\Sounds_F\weapons\Rockets\rocket_fly_1",1,1.1,700}; + nameSound = "MissileLauncher"; + sounds[] = {"StandardSound"}; + class StandardSound { + begin1[] = {"A3\Sounds_F\weapons\Rockets\missile_1",1.12202,1.3,1000}; + soundBegin[] = {"begin1",1}; + soundsetshot[] = {"RocketsMedium_Shot_SoundSet"}; + }; + cursor = "EmptyCursor"; + cursorAim = "missile"; + showAimCursorInternal = 0; }; class GVAR(launcher_N): GVAR(launcher) { displayName = "AGM-114N Hellfire II"; From 5d039b72d6a0b318774caa1de65e41011a0e7419 Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Fri, 13 Apr 2018 23:09:16 -0500 Subject: [PATCH 091/235] Cookoff- Damage handling disabled by default (#6264) --- addons/cookoff/ACE_Settings.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/cookoff/ACE_Settings.hpp b/addons/cookoff/ACE_Settings.hpp index b06aaf7b9a..304aaf48e0 100644 --- a/addons/cookoff/ACE_Settings.hpp +++ b/addons/cookoff/ACE_Settings.hpp @@ -4,7 +4,7 @@ class ACE_Settings { category = CSTRING(displayName); displayName = CSTRING(enable_name); description = CSTRING(enable_tooltip); - value = 1; + value = 0; typeName = "BOOL"; }; class GVAR(enableAmmobox) { From f8291802830b8c60738f909e9cf943689c7ada45 Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Sat, 14 Apr 2018 03:24:41 -0500 Subject: [PATCH 092/235] Fix realistic name for maverik pylon (#6263) Fix #6260 --- addons/realisticnames/CfgWeapons.hpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/addons/realisticnames/CfgWeapons.hpp b/addons/realisticnames/CfgWeapons.hpp index dc563dab62..0e1287c716 100644 --- a/addons/realisticnames/CfgWeapons.hpp +++ b/addons/realisticnames/CfgWeapons.hpp @@ -350,6 +350,9 @@ class CfgWeapons { class Missile_AGM_02_Plane_CAS_01_F: MissileLauncher { displayName = "AGM-65 Maverick G"; }; + class weapon_AGM_65Launcher: RocketPods { + displayName = "AGM-65 Maverick G"; + }; class Missile_AGM_01_Plane_CAS_02_F: Missile_AGM_02_Plane_CAS_01_F { displayName = "Kh-25MTP"; }; From 99299f285ef6b5461054b8d471d7a1d3df42236f Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Sat, 14 Apr 2018 16:05:30 -0500 Subject: [PATCH 093/235] NLAW - Fix "no shape for" rpt warning (#6269) ``` No shape for ammo type ACE_NLAW_Explosion No shape for ammo type ACE_NLAW_ShapedCharge ``` --- addons/nlaw/CfgAmmo.hpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/addons/nlaw/CfgAmmo.hpp b/addons/nlaw/CfgAmmo.hpp index f0649b2ba4..f51816d692 100644 --- a/addons/nlaw/CfgAmmo.hpp +++ b/addons/nlaw/CfgAmmo.hpp @@ -39,11 +39,11 @@ class CfgAmmo { // Sub ammos used in OTA mode (see fnc_seeker.sqf) class ACE_NLAW_Explosion: ACE_NLAW { // Based on FCS-Airburst, will explode right away timeToLive = 0; - model = ""; + model = "\A3\weapons_f\empty"; }; class ACE_NLAW_ShapedCharge: ACE_NLAW { // Shaped charge from rocket explosion, no effects timeToLive = 1; - model = ""; + model = "\A3\weapons_f\empty"; hit = 750; indirectHit = 0; indirectHitRange = 0; From ede072cd5c176c37005a0649de7ee2795fcf03f5 Mon Sep 17 00:00:00 2001 From: commy2 Date: Sun, 15 Apr 2018 12:59:14 +0200 Subject: [PATCH 094/235] getMissionConfigValue instead of missionConfigFile --- addons/common/functions/fnc_assignedItemFix.sqf | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/addons/common/functions/fnc_assignedItemFix.sqf b/addons/common/functions/fnc_assignedItemFix.sqf index f7fe02f30c..8e0c518c90 100644 --- a/addons/common/functions/fnc_assignedItemFix.sqf +++ b/addons/common/functions/fnc_assignedItemFix.sqf @@ -15,11 +15,11 @@ */ #include "script_component.hpp" -ACE_isMapEnabled = call {private _config = missionConfigFile >> "showMap"; !isNumber _config || {getNumber _config == 1}}; // default value is 1, so do isNumber check first -ACE_isCompassEnabled = call {private _config = missionConfigFile >> "showCompass"; !isNumber _config || {getNumber _config == 1}}; -ACE_isWatchEnabled = call {private _config = missionConfigFile >> "showWatch"; !isNumber _config || {getNumber _config == 1}}; -ACE_isRadioEnabled = call {private _config = missionConfigFile >> "showRadio"; !isNumber _config || {getNumber _config == 1}}; -ACE_isGPSEnabled = call {private _config = missionConfigFile >> "showGPS"; !isNumber _config || {getNumber _config == 1}}; +ACE_isMapEnabled = getMissionConfigValue ["showMap", 1] in [true, 1]; +ACE_isCompassEnabled = getMissionConfigValue ["showCompass", 1] in [true, 1]; +ACE_isWatchEnabled = getMissionConfigValue ["showWatch", 1] in [true, 1]; +ACE_isRadioEnabled = getMissionConfigValue ["showRadio", 1] in [true, 1]; +ACE_isGPSEnabled = getMissionConfigValue ["showGPS", 1] in [true, 1]; GVAR(AssignedItems) = []; GVAR(AssignedItemsInfo) = []; From 451d50f4a2a90653aebbe5acf17d0f52ed3677b6 Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Sun, 15 Apr 2018 10:58:00 -0500 Subject: [PATCH 095/235] Fix titan on blufor LSV (#6270) --- addons/javelin/CfgVehicles.hpp | 18 ++++++++++++++++++ addons/javelin/CfgWeapons.hpp | 24 +++++------------------- 2 files changed, 23 insertions(+), 19 deletions(-) diff --git a/addons/javelin/CfgVehicles.hpp b/addons/javelin/CfgVehicles.hpp index 790b802230..cd9f23607b 100644 --- a/addons/javelin/CfgVehicles.hpp +++ b/addons/javelin/CfgVehicles.hpp @@ -65,4 +65,22 @@ class CfgVehicles { }; }; }; + class Car; + class Car_F: Car { + class Turrets { + class MainTurret; + }; + }; + class LSV_01_base_F: Car_F { + class Turrets: Turrets {}; + }; + class LSV_01_AT_base_F: LSV_01_base_F { // Prowler / Polaris DAGOR + class Turrets: Turrets { + class TopTurret: MainTurret { + weapons[] = { QGVAR(Titan_Static) }; + turretInfoType = "ACE_RscOptics_javelin"; + gunnerOpticsModel = QPATHTOF(data\reticle_titan.p3d); + }; + }; + }; }; diff --git a/addons/javelin/CfgWeapons.hpp b/addons/javelin/CfgWeapons.hpp index e8e5d382b2..b277b6364e 100644 --- a/addons/javelin/CfgWeapons.hpp +++ b/addons/javelin/CfgWeapons.hpp @@ -1,18 +1,8 @@ class CfgWeapons { - class Launcher; - class MissileLauncher; - - class Launcher_Base_F: Launcher { - class WeaponSlotsInfo; - }; - - // @TODO: AA by default, motherfuckers - class missiles_titan: MissileLauncher { - - }; - - class missiles_titan_at: missiles_titan { }; - class GVAR(Titan_Static): missiles_titan_at { + + class missiles_titan_static; + class GVAR(Titan_Static): missiles_titan_static { + modes[] = {"Player"}; GVAR(enabled) = 1; weaponInfoType = "ACE_RscOptics_javelin"; modelOptics = QPATHTOF(data\reticle_titan.p3d); @@ -23,11 +13,7 @@ class CfgWeapons { lockedTargetSound[] = {"",0,1}; }; - // @TODO: AA by default, motherfuckers - class launch_Titan_base: Launcher_Base_F {}; - - class launch_Titan_short_base: launch_Titan_base { }; - + class launch_Titan_short_base; class launch_B_Titan_short_F: launch_Titan_short_base { GVAR(enabled) = 1; weaponInfoType = "ACE_RscOptics_javelin"; From bd754b641516082f1e4d86d89293ce6e302a2b88 Mon Sep 17 00:00:00 2001 From: mharis001 <34453221+mharis001@users.noreply.github.com> Date: Sun, 15 Apr 2018 14:14:10 -0400 Subject: [PATCH 096/235] Rename ambiance sounds module (#6272) --- addons/missionmodules/stringtable.xml | 28 +++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/addons/missionmodules/stringtable.xml b/addons/missionmodules/stringtable.xml index 55a754bf85..90142f9795 100644 --- a/addons/missionmodules/stringtable.xml +++ b/addons/missionmodules/stringtable.xml @@ -18,20 +18,20 @@ ACE 任務模塊 - Ambiance Sounds [ACE] - Dźwięki [ACE] - [ACE] Sonidos ambiente - Umgebungsgeräusche [ACE] - Zvuky prostředí [ACE] - [ACE] Sons ambientes - Sons d'ambiance [ACE] - Ambiens hangok [ACE] - Звук окружения [ACE] - Souni Ambientali [ACE] - 環境音 [ACE] - 환경 효과음 [ACE] - 环境声音 [ACE] - 環境聲音 [ACE] + Ambiance Sounds + Dźwięki + Sonidos ambiente + Umgebungsgeräusche + Zvuky prostředí + Sons ambientes + Sons d'ambiance + Ambiens hangok + Звук окружения + Souni Ambientali + 環境音 + 환경 효과음 + 环境声音 + 環境聲音 Sounds From 7239ad561f932f92c4f502c43e51fe1a72682c50 Mon Sep 17 00:00:00 2001 From: mharis001 <34453221+mharis001@users.noreply.github.com> Date: Sun, 15 Apr 2018 14:14:31 -0400 Subject: [PATCH 097/235] Change ACE Hint preview (#6271) --- addons/common/CfgUIGrids.hpp | 20 ++++++++++++++++++++ addons/common/UI/ACE_Hint_Preview_ca.paa | Bin 0 -> 24869 bytes addons/common/UI/ace_hint_ca.paa | Bin 78186 -> 0 bytes addons/common/config.cpp | 22 +--------------------- 4 files changed, 21 insertions(+), 21 deletions(-) create mode 100644 addons/common/CfgUIGrids.hpp create mode 100644 addons/common/UI/ACE_Hint_Preview_ca.paa delete mode 100644 addons/common/UI/ace_hint_ca.paa diff --git a/addons/common/CfgUIGrids.hpp b/addons/common/CfgUIGrids.hpp new file mode 100644 index 0000000000..295a9098eb --- /dev/null +++ b/addons/common/CfgUIGrids.hpp @@ -0,0 +1,20 @@ +class CfgUIGrids { + class IGUI { + class Presets { + class Arma3 { + class Variables { + grid_ACE_displayText[] = {{((safezoneX + safezoneW) - (10 *(((safezoneW / safezoneH) min 1.2) / 40)) - 2.9 *(((safezoneW / safezoneH) min 1.2) / 40)),safeZoneY + 0.175 * safezoneH, (10 *(((safezoneW / safezoneH) min 1.2) / 40)), (3 *((((safezoneW / safezoneH) min 1.2) / 1.2) / 25))}, "(((safezoneW / safezoneH) min 1.2) / 40)","((((safezoneW / safezoneH) min 1.2) / 1.2) / 25)"}; + }; + }; + }; + + class Variables { + class grid_ACE_displayText { + displayName = "ACE Hint"; + description = "Textual in game feedback to the player."; + preview = QPATHTOF(UI\ACE_Hint_Preview_ca.paa); + saveToProfile[] = {0,1}; + }; + }; + }; +}; diff --git a/addons/common/UI/ACE_Hint_Preview_ca.paa b/addons/common/UI/ACE_Hint_Preview_ca.paa new file mode 100644 index 0000000000000000000000000000000000000000..19e592eddeb7d6c5908fc937165e0dc5a990a93b GIT binary patch literal 24869 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 qXvm}_WlYy}2^_Wu9|ypeGL literal 0 HcmV?d00001 diff --git a/addons/common/UI/ace_hint_ca.paa b/addons/common/UI/ace_hint_ca.paa deleted file mode 100644 index 4ceceeb86772c0a5e6fbcf23cf75b7105429f683..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 78186 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 #include #include "CompassControl.hpp" - -class CfgUIGrids { - class IGUI { - class Presets { - class Arma3 { - class Variables { - grid_ACE_displayText[] = {{((safezoneX + safezoneW) - (10 *(((safezoneW / safezoneH) min 1.2) / 40)) - 2.9 *(((safezoneW / safezoneH) min 1.2) / 40)),safeZoneY + 0.175 * safezoneH, (10 *(((safezoneW / safezoneH) min 1.2) / 40)), (3 *((((safezoneW / safezoneH) min 1.2) / 1.2) / 25))}, "(((safezoneW / safezoneH) min 1.2) / 40)","((((safezoneW / safezoneH) min 1.2) / 1.2) / 25)"}; - }; - }; - }; - - class Variables { - class grid_ACE_displayText { - displayName = "ACE Hint"; - description = "Textual in game feedback to the player."; - preview = QPATHTOF(UI\ace_hint_ca.paa); - saveToProfile[] = {0,1}; - }; - }; - }; -}; +#include "CfgUIGrids.hpp" class ACE_Extensions { extensions[] = {}; From 336b8973c44e1f11ce6f5c0a23aa411b90eb1bb4 Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Mon, 16 Apr 2018 23:35:50 -0500 Subject: [PATCH 098/235] Rearm - Increase rearm distance check (#6276) Fix #6177 --- addons/rearm/script_component.hpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/addons/rearm/script_component.hpp b/addons/rearm/script_component.hpp index a80dab55b2..83d495bc38 100644 --- a/addons/rearm/script_component.hpp +++ b/addons/rearm/script_component.hpp @@ -18,8 +18,8 @@ #include "\z\ace\addons\main\script_macros.hpp" -#define REARM_ACTION_DISTANCE 7 -#define REARM_ACTION_DISTANCE_SQR 49 +#define REARM_ACTION_DISTANCE 9 +#define REARM_ACTION_DISTANCE_SQR 81 #define REARM_CALIBERS [ 6, 7, 8, 13, 19, 20, 25, 30, 35, 39, 40, 60, 70, 80, 82, 100, 105, 120, 122, 125, 155, 230, 250] #define REARM_DURATION_TAKE [ 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 3, 3, 3, 3, 3, 4, 5, 5, 5, 5, 13, 10] From 3ca1bd77b8abc1a72fdbae0d8afcdfbbde7f5d55 Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Mon, 16 Apr 2018 23:38:58 -0500 Subject: [PATCH 099/235] Build Number for RC2 --- addons/main/script_version.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/main/script_version.hpp b/addons/main/script_version.hpp index b8a36e349c..4f432970c0 100644 --- a/addons/main/script_version.hpp +++ b/addons/main/script_version.hpp @@ -1,4 +1,4 @@ #define MAJOR 3 #define MINOR 12 #define PATCHLVL 2 -#define BUILD 32 +#define BUILD 33 From 853b4ffe0afba4550bfbec67bff03a12e87ba140 Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Thu, 19 Apr 2018 12:07:14 -0500 Subject: [PATCH 100/235] Bump wiki version to 3.12.2 --- docs/_config.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/_config.yml b/docs/_config.yml index 237d3d7348..18cefe6347 100644 --- a/docs/_config.yml +++ b/docs/_config.yml @@ -9,8 +9,8 @@ ace: version: major: 3 minor: 12 - patch: 1 - build: 30 + patch: 2 + build: 33 acex: githubUrl: https://github.com/acemod/ACEX From f4473ccfd355e0e9b339ce64878c7c0e5c44a6b7 Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Thu, 19 Apr 2018 12:20:18 -0500 Subject: [PATCH 101/235] Tactical Ladder - Fix args to cancleTLdeploy (#6280) Fix #6232 cancelTLdeploy expects `[unit, mouse button key]` --- addons/tacticalladder/functions/fnc_cancelTLdeploy.sqf | 2 +- .../tacticalladder/functions/fnc_handleInteractMenuOpened.sqf | 2 +- addons/tacticalladder/functions/fnc_handleKilled.sqf | 2 +- addons/tacticalladder/functions/fnc_handlePlayerChanged.sqf | 4 ++-- addons/tacticalladder/functions/fnc_handleUnconscious.sqf | 2 +- 5 files changed, 6 insertions(+), 6 deletions(-) diff --git a/addons/tacticalladder/functions/fnc_cancelTLdeploy.sqf b/addons/tacticalladder/functions/fnc_cancelTLdeploy.sqf index 098429bcec..9dcd597230 100644 --- a/addons/tacticalladder/functions/fnc_cancelTLdeploy.sqf +++ b/addons/tacticalladder/functions/fnc_cancelTLdeploy.sqf @@ -10,7 +10,7 @@ * None * * Example: - * [_ladder] call ace_tacticalladder_fnc_cancelTLdeploy + * [player, 1] call ace_tacticalladder_fnc_cancelTLdeploy * * Public: No */ diff --git a/addons/tacticalladder/functions/fnc_handleInteractMenuOpened.sqf b/addons/tacticalladder/functions/fnc_handleInteractMenuOpened.sqf index 1e023b22b0..421329909e 100644 --- a/addons/tacticalladder/functions/fnc_handleInteractMenuOpened.sqf +++ b/addons/tacticalladder/functions/fnc_handleInteractMenuOpened.sqf @@ -18,5 +18,5 @@ params ["_unit"]; if (!isNull GETMVAR(GVAR(ladder),objNull) && {GVAR(ladder) in attachedObjects _unit}) then { - [_unit, GVAR(ladder)] call FUNC(cancelTLdeploy); + [_unit, 1] call FUNC(cancelTLdeploy); }; diff --git a/addons/tacticalladder/functions/fnc_handleKilled.sqf b/addons/tacticalladder/functions/fnc_handleKilled.sqf index 0983901010..9a03e5b4a6 100644 --- a/addons/tacticalladder/functions/fnc_handleKilled.sqf +++ b/addons/tacticalladder/functions/fnc_handleKilled.sqf @@ -18,5 +18,5 @@ params ["_unit"]; if (!isNull GETMVAR(ladder,objNull) && {GVAR(ladder) in attachedObjects _unit}) then { - [_unit, GVAR(ladder)] call FUNC(cancelTLdeploy); + [_unit, 1] call FUNC(cancelTLdeploy); }; diff --git a/addons/tacticalladder/functions/fnc_handlePlayerChanged.sqf b/addons/tacticalladder/functions/fnc_handlePlayerChanged.sqf index f2bac289d1..a19cfeb107 100644 --- a/addons/tacticalladder/functions/fnc_handlePlayerChanged.sqf +++ b/addons/tacticalladder/functions/fnc_handlePlayerChanged.sqf @@ -21,9 +21,9 @@ if (isNull GETGVAR(ladder,objNull)) exitWith {}; params ["_newPlayer", "_oldPlayer"]; if (GVAR(ladder) in attachedObjects _newPlayer) then { - [_newPlayer, GVAR(ladder)] call FUNC(cancelTLdeploy); + [_newPlayer, 1] call FUNC(cancelTLdeploy); }; if (GVAR(ladder) in attachedObjects _oldPlayer) then { - [_oldPlayer, GVAR(ladder)] call FUNC(cancelTLdeploy); + [_oldPlayer, 1] call FUNC(cancelTLdeploy); }; diff --git a/addons/tacticalladder/functions/fnc_handleUnconscious.sqf b/addons/tacticalladder/functions/fnc_handleUnconscious.sqf index 9d6f8ad23e..fe1bae5770 100644 --- a/addons/tacticalladder/functions/fnc_handleUnconscious.sqf +++ b/addons/tacticalladder/functions/fnc_handleUnconscious.sqf @@ -20,5 +20,5 @@ params ["_unit"]; if (!local _unit) exitWith {}; if (!isNull GETMVAR(ladder,objNull) && {GVAR(ladder) in attachedObjects _unit}) then { - [_unit, GVAR(ladder)] call FUNC(cancelTLdeploy); + [_unit, 1] call FUNC(cancelTLdeploy); }; From a828ebe591153fcec1c4f8cb3b85e77f00989f04 Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Thu, 19 Apr 2018 12:31:00 -0500 Subject: [PATCH 102/235] Repair - Disable repair on ERA/Slat armor hitpoints (#6283) * Repair - Disable repair on ERA/Slat armor Disable "miscRepair" action for all era and slat armor hitpoints. Can still be repaired via "Full Repair" * Minor perf improvment * Add hitpoint names for 1.82 comTurret/gun * Fix russian translations --- addons/repair/ACE_Repair.hpp | 2 +- addons/repair/CfgVehicles.hpp | 10 +-- .../repair/functions/fnc_addRepairActions.sqf | 77 +++++++++---------- addons/repair/functions/fnc_isEngineer.sqf | 2 +- .../functions/fnc_modifyInteraction.sqf | 4 +- .../fnc_modifySelectionInteraction.sqf | 5 +- addons/repair/stringtable.xml | 32 ++++++++ optionals/compat_rhs_afrf3/CfgVehicles.hpp | 42 ---------- optionals/compat_rhs_usf3/CfgVehicles.hpp | 34 -------- 9 files changed, 78 insertions(+), 130 deletions(-) diff --git a/addons/repair/ACE_Repair.hpp b/addons/repair/ACE_Repair.hpp index 3cea9ed7ca..ec0624e2dc 100644 --- a/addons/repair/ACE_Repair.hpp +++ b/addons/repair/ACE_Repair.hpp @@ -72,7 +72,7 @@ class ACE_Repair { requiredEngineer = QGVAR(engineerSetting_fullRepair); repairLocations[] = {QGVAR(fullRepairLocation)}; repairingTime = 30; - condition = "0 < ({_x>0} count (getAllHitPointsDamage _target param [2,[]]))"; + condition = "-1 != ((getAllHitPointsDamage _target param [2,[]]) findIf {_x > 0})"; callbackSuccess = QUOTE(call FUNC(doFullRepair)); itemConsumed = QGVAR(consumeItem_ToolKit); }; diff --git a/addons/repair/CfgVehicles.hpp b/addons/repair/CfgVehicles.hpp index 23ae927a84..74733cb7a0 100644 --- a/addons/repair/CfgVehicles.hpp +++ b/addons/repair/CfgVehicles.hpp @@ -424,7 +424,7 @@ class CfgVehicles { class Helicopter_Base_H; class Heli_Transport_04_base_F: Helicopter_Base_H { - GVAR(hitpointGroups)[] = { {"HitEngine", {"HitEngine1", "HitEngine2"}}, {"Glass_1_hitpoint", {"Glass_2_hitpoint", "Glass_3_hitpoint", "Glass_4_hitpoint", "Glass_5_hitpoint", "Glass_6_hitpoint", "Glass_7_hitpoint", "Glass_8_hitpoint", "Glass_9_hitpoint", "Glass_10_hitpoint", "Glass_11_hitpoint", "Glass_12_hitpoint", "Glass_13_hitpoint", "Glass_14_hitpoint", "Glass_15_hitpoint", "Glass_16_hitpoint", "Glass_17_hitpoint", "Glass_18_hitpoint", "Glass_19_hitpoint", "Glass_20_hitpoint"}} }; + GVAR(hitpointGroups)[] = { {"HitEngine", {"HitEngine1", "HitEngine2"}} }; }; class O_Heli_Transport_04_repair_F: Heli_Transport_04_base_F { GVAR(canRepair) = 1; @@ -458,18 +458,12 @@ class CfgVehicles { }; class Car_F; - class Offroad_01_base_F: Car_F { - GVAR(hitpointGroups)[] = { {"HitGlass1", {"HitGlass2"}} }; - }; + class Offroad_01_base_F: Car_F {}; class Offroad_01_repair_base_F: Offroad_01_base_F { GVAR(canRepair) = 1; transportRepair = 0; }; - class MRAP_01_base_F: Car_F { - GVAR(hitpointGroups)[] = { {"HitGlass1", {"HitGlass2", "HitGlass3", "HitGlass4", "HitGlass5", "HitGlass6"}} }; - }; - class B_Truck_01_mover_F; class B_Truck_01_Repair_F: B_Truck_01_mover_F { GVAR(canRepair) = 1; diff --git a/addons/repair/functions/fnc_addRepairActions.sqf b/addons/repair/functions/fnc_addRepairActions.sqf index 3f4842c3c0..9428cdb1a0 100644 --- a/addons/repair/functions/fnc_addRepairActions.sqf +++ b/addons/repair/functions/fnc_addRepairActions.sqf @@ -18,13 +18,11 @@ if (!hasInterface) exitWith {}; params ["_vehicle"]; -TRACE_2("params", _vehicle,typeOf _vehicle); - private _type = typeOf _vehicle; - -private _initializedClasses = GETMVAR(GVAR(initializedClasses),[]); +TRACE_2("addRepairActions", _vehicle,_type); // do nothing if the class is already initialized +private _initializedClasses = GETMVAR(GVAR(initializedClasses),[]); if (_type in _initializedClasses) exitWith {}; // get all hitpoints and selections @@ -39,10 +37,15 @@ private _hitPointsAddedAmount = []; private _processedHitpoints = []; private _icon = QPATHTOF(ui\repair_0_ca.paa); + +// Custom position can be defined via config for associated hitpoint +private _hitpointPositions = getArray (configFile >> "CfgVehicles" >> _type >> QGVAR(hitpointPositions)); +// Associated hitpoints can be grouped via config to produce a single repair action +private _hitpointGroups = getArray(configFile >> "CfgVehicles" >> _type >> QGVAR(hitpointGroups)); + { private _selection = _x; private _hitpoint = toLower (_hitPoints select _forEachIndex); - if (_selection in _wheelHitSelections) then { // Wheels should always be unique if (_hitpoint in _processedHitpoints) exitWith {TRACE_3("Duplicate Wheel",_hitpoint,_forEachIndex,_selection);}; @@ -67,56 +70,52 @@ private _icon = QPATHTOF(ui\repair_0_ca.paa); _action = [_name, _text, _icon, _statement, _condition, {}, [_hitpoint], _position, 2] call EFUNC(interact_menu,createAction); [_type, 0, [], _action] call EFUNC(interact_menu,addActionToClass); } else { - //Skip glass hitpoints - if ((_hitPoint find "glass") != -1) exitWith { - TRACE_3("Skipping Glass",_hitpoint,_forEachIndex,_selection); - }; // Empty selections don't exist + if (_selection isEqualTo "") exitWith { TRACE_3("Skipping Empty Sel",_hitpoint,_forEachIndex,_selection); }; // Empty hitpoints don't contain enough information - if (_selection isEqualTo "") exitWith { TRACE_3("Selection Empty",_hitpoint,_forEachIndex,_selection); }; - if (_hitpoint isEqualTo "") exitWith { TRACE_3("Hitpoint Empty",_hitpoint,_forEachIndex,_selection); }; + if (_hitpoint isEqualTo "") exitWith { TRACE_3("Skipping Empty Hit",_hitpoint,_forEachIndex,_selection); }; + // Ignore glass hitpoints + if ((_hitPoint find "glass") != -1) exitWith { TRACE_3("Skipping Glass",_hitpoint,_forEachIndex,_selection); }; + // Ignore hitpoints starting with # (seems to be lights) + if ((_hitpoint select [0,1]) == "#") exitWith { TRACE_3("Skipping # hit",_hitpoint,_forEachIndex,_selection); }; + // Ignore ERA/Slat armor (vanilla uses hitera_/hitslat_, pre-1.82 RHS uses era_) + // ToDo: see how community utilizes new armor system, could also check getText (_hitpointConfig >> "simulation") + if (((_hitpoint select [0,7]) == "hitera_") || {(_hitpoint select [0,8]) == "hitslat_"} || {(_hitpoint select [0,4]) == "era_"}) exitWith { TRACE_3("Skipping ERA/SLAT",_hitpoint,_forEachIndex,_selection); }; + + //Depends hitpoints shouldn't be modified directly (will be normalized) // Biki: Clearing 'depends' in case of inheritance cannot be an empty string (rpt warnings), but rather a "0" value. if (!((getText (configFile >> "CfgVehicles" >> _type >> "HitPoints" >> _hitpoint >> "depends")) in ["", "0"])) exitWith { TRACE_3("Skip Depends",_hitpoint,_forEachIndex,_selection); }; - // Associated hitpoints can be grouped via config to produce a single repair action - private _groupsConfig = configFile >> "CfgVehicles" >> _type >> QGVAR(hitpointGroups); private _childHitPoint = false; - if (isArray _groupsConfig) then { + { { - { - if (_hitpoint == _x) exitWith { - _childHitPoint = true; - }; - } forEach (_x select 1); - } forEach (getArray _groupsConfig); - }; + if (_hitpoint == _x) exitWith { + _childHitPoint = true; + }; + } forEach (_x select 1); + } forEach _hitpointGroups; // If the current selection is associated with a child hitpoint, then skip if (_childHitPoint) exitWith { TRACE_3("childHitpoint",_hitpoint,_forEachIndex,_selection); }; // Find the action position private _position = compile format ["_target selectionPosition ['%1', 'HitPoints'];", _selection]; - - // Custom position can be defined via config for associated hitpoint - private _positionsConfig = configFile >> "CfgVehicles" >> _type >> QGVAR(hitpointPositions); - if (isArray _positionsConfig) then { - { - _x params ["_hit", "_pos"]; - if (_hitpoint == _hit) exitWith { - if (_pos isEqualType []) exitWith { - _position = _pos; // Position in model space - }; - if (_pos isEqualType "") exitWith { - _position = compile format ["_target selectionPosition ['%1', 'HitPoints'];", _pos]; - }; - ERROR_3("Invalid custom position %1 of hitpoint %2 in vehicle %3.",_position,_hitpoint,_type); + { + _x params ["_hit", "_pos"]; + if (_hitpoint == _hit) exitWith { + if (_pos isEqualType []) exitWith { + _position = _pos; // Position in model space }; - } forEach (getArray _positionsConfig); - }; + if (_pos isEqualType "") exitWith { + _position = compile format ["_target selectionPosition ['%1', 'HitPoints'];", _pos]; + }; + ERROR_3("Invalid custom position %1 of hitpoint %2 in vehicle %3.",_position,_hitpoint,_type); + }; + } forEach _hitpointPositions; - // Prepair the repair action + // Prepare the repair action private _name = format ["Repair_%1_%2", _forEachIndex, _selection]; // Find localized string and track those added for numerization @@ -151,7 +150,7 @@ private _icon = QPATHTOF(ui\repair_0_ca.paa); }; }; - _processedHitPoints pushBack _hitPoint; + _processedHitPoints pushBack _hitpoint; }; } forEach _hitSelections; diff --git a/addons/repair/functions/fnc_isEngineer.sqf b/addons/repair/functions/fnc_isEngineer.sqf index 92ce1091b0..f7482760af 100644 --- a/addons/repair/functions/fnc_isEngineer.sqf +++ b/addons/repair/functions/fnc_isEngineer.sqf @@ -17,7 +17,6 @@ #include "script_component.hpp" params ["_unit", ["_engineerN", 1]]; -TRACE_2("params",_unit,_engineerN); private _class = _unit getVariable ["ACE_IsEngineer", _unit getUnitTrait "engineer"]; @@ -25,4 +24,5 @@ private _class = _unit getVariable ["ACE_IsEngineer", _unit getUnitTrait "engine // We cannot move this function to common because we require the GVAR(engineerSetting_Repair), which only makes sense to include in the repair module. if (_class isEqualType false) then {_class = [0, 1] select _class}; +TRACE_3("isEngineer",_unit,_engineerN,_class); _class >= _engineerN; diff --git a/addons/repair/functions/fnc_modifyInteraction.sqf b/addons/repair/functions/fnc_modifyInteraction.sqf index 5288d10211..5b49089268 100644 --- a/addons/repair/functions/fnc_modifyInteraction.sqf +++ b/addons/repair/functions/fnc_modifyInteraction.sqf @@ -18,11 +18,11 @@ */ #include "script_component.hpp" -params ["_target", "_player", "_args", "_actionData"]; -TRACE_4("params",_target,_player,_args,_actionData); +params ["_target", "", "", "_actionData"]; // Interaction dots numbered 0..8, white to red. // Convert damage to number (rounding up), so that even slight damage can bee seen private _fileName = format [QPATHTOF(ui\damage_%1_ca.paa), ceil (linearConversion [0, 1, damage _target, 0, 8, true])]; +TRACE_2("modifyInteraction",_target,_fileName); _actionData set [2, _fileName]; diff --git a/addons/repair/functions/fnc_modifySelectionInteraction.sqf b/addons/repair/functions/fnc_modifySelectionInteraction.sqf index cf776a1831..5698d55e24 100644 --- a/addons/repair/functions/fnc_modifySelectionInteraction.sqf +++ b/addons/repair/functions/fnc_modifySelectionInteraction.sqf @@ -18,8 +18,7 @@ */ #include "script_component.hpp" -params ["_target", "_player", "_args", "_actionData"]; -TRACE_4("params",_target,_player,_args,_actionData); +params ["_target", "", "_args", "_actionData"]; // Interaction wrenches numbered 0..8, white to red. // Convert damage to number (rounding up), so that even slight damage can bee seen @@ -28,5 +27,5 @@ private _fileName = format [ QPATHTOF(ui\repair_%1_ca.paa), ceil (linearConversion [0, 1, _target getHitPointDamage (_args select 0), 0, 8, true]) ]; - +TRACE_2("modifyInteraction",_target,_fileName); _actionData set [2, _fileName]; diff --git a/addons/repair/stringtable.xml b/addons/repair/stringtable.xml index 0135f50fc7..8f724cc79f 100644 --- a/addons/repair/stringtable.xml +++ b/addons/repair/stringtable.xml @@ -735,6 +735,38 @@ + + Commander Turret + Kommandant Turm + Comandante Torreta + Commander Tourelle + Dowódca Wieżyczka + Velitel Věž + Comandante Torre + Comandante Torretta + Parancsnok Lövegtorony + Башня командира + 指揮官 砲塔 + 지휘관 포탑 + 指挥官 炮塔 + 指揮官 砲塔 + + + Commander Gun + Kommandant Kanone + Comandante Cañón + Commander Canon + Dowódca Działo + Velitel Kanón + Comandante Canhão + Comandante Cannone + Parancsnok Ágyú + Пушка командира + 指揮官 砲 + 지휘관 포 + 指挥官 枪 + 指揮官 槍 + Missiles Rakete diff --git a/optionals/compat_rhs_afrf3/CfgVehicles.hpp b/optionals/compat_rhs_afrf3/CfgVehicles.hpp index e818677f24..60c6b78d9a 100644 --- a/optionals/compat_rhs_afrf3/CfgVehicles.hpp +++ b/optionals/compat_rhs_afrf3/CfgVehicles.hpp @@ -59,29 +59,9 @@ class CfgVehicles { class rhs_a3spruttank_base: Tank_F { EGVAR(refuel,fuelCapacity) = 400; }; - -#define ERA(num) QUOTE(era_##num##_hitpoint) -#define ERA_2_28 ERA(2), ERA(3), ERA(4), ERA(5), ERA(6), ERA(7), ERA(8), ERA(9), ERA(10), ERA(11), ERA(12), ERA(13), ERA(14), ERA(15), ERA(16), ERA(17), ERA(18), ERA(19), ERA(20), ERA(21), ERA(22), ERA(23), ERA(24), ERA(25), ERA(26), ERA(27), ERA(28) -#define ERA_2_31 ERA_2_28, ERA(29), ERA(30), ERA(31) -#define ERA_2_32 ERA_2_31, ERA(32) -#define ERA_2_35 ERA_2_32, ERA(33), ERA(34), ERA(35) -#define ERA_2_36 ERA_2_35, ERA(36) - class rhs_a3t72tank_base: Tank_F { EGVAR(refuel,fuelCapacity) = 1200; }; - class rhs_t72bb_tv: rhs_a3t72tank_base { - ace_repair_hitpointPositions[] = {{ERA(1), {0,0,0}}}; - ace_repair_hitpointGroups[] = {{ERA(1), {ERA_2_31}}}; - }; - class rhs_t72bc_tv: rhs_a3t72tank_base { - ace_repair_hitpointPositions[] = {{ERA(1), {0,0,0}}}; - ace_repair_hitpointGroups[] = {{ERA(1), {ERA_2_32}}}; - }; - class rhs_t72bd_tv: rhs_a3t72tank_base { - ace_repair_hitpointPositions[] = {{ERA(1), {0,0,0}}}; - ace_repair_hitpointGroups[] = {{ERA(1), {ERA_2_32}}}; - }; class rhs_tank_base: Tank_F { EGVAR(refuel,fuelCapacity) = 1200; }; @@ -166,28 +146,6 @@ class CfgVehicles { class rhs_t80b: rhs_tank_base { EGVAR(refuel,fuelCapacity) = 1100; }; - class rhs_t80bv: rhs_t80b { - ace_repair_hitpointPositions[] = {{ERA(1), {0,0,0}}}; - ace_repair_hitpointGroups[] = {{ERA(1), {ERA_2_28}}}; - }; - class rhs_t80a: rhs_t80bv {}; - class rhs_t80u: rhs_t80a { - ace_repair_hitpointPositions[] = {{ERA(1), {0,0,0}}}; - ace_repair_hitpointGroups[] = {{ERA(1), {ERA_2_35}}}; - }; - class rhs_t80uk: rhs_t80u { - ace_repair_hitpointPositions[] = {{ERA(1), {0,0,0}}}; - ace_repair_hitpointGroups[] = {{ERA(1), {ERA_2_36}}}; - }; - class rhs_t80ue1: rhs_t80a { - ace_repair_hitpointPositions[] = {{ERA(1), {0,0,0}}}; - ace_repair_hitpointGroups[] = {{ERA(1), {ERA_2_36}}}; - }; - class rhs_t80um: rhs_t80u { - ace_repair_hitpointPositions[] = {{ERA(1), {0,0,0}}}; - ace_repair_hitpointGroups[] = {{ERA(1), {ERA_2_36}}}; - }; - class Truck_F: Car_F {}; class RHS_Ural_BaseTurret: Truck_F { EGVAR(refuel,fuelCapacity) = 360; diff --git a/optionals/compat_rhs_usf3/CfgVehicles.hpp b/optionals/compat_rhs_usf3/CfgVehicles.hpp index ba5937fa72..18e400f016 100644 --- a/optionals/compat_rhs_usf3/CfgVehicles.hpp +++ b/optionals/compat_rhs_usf3/CfgVehicles.hpp @@ -44,30 +44,10 @@ class CfgVehicles { }; }; -#define ERA(num) QUOTE(era_##num##_hitpoint) -#define ERA_2_34 ERA(2), ERA(3), ERA(4), ERA(5), ERA(6), ERA(7), ERA(8), ERA(9), ERA(10), ERA(11), ERA(12), ERA(13), ERA(14), ERA(15), ERA(16), ERA(17), ERA(18), ERA(19), ERA(20), ERA(21), ERA(22), ERA(23), ERA(24), ERA(25), ERA(26), ERA(27), ERA(28), ERA(29), ERA(30), ERA(31), ERA(32), ERA(33), ERA(34) -#define ERA_2_45 ERA_2_34, ERA(35), ERA(36), ERA(37), ERA(38), ERA(39), ERA(40), ERA(41), ERA(42), ERA(43), ERA(44), ERA(45) -#define ERA_2_46 ERA_2_45, ERA(46) -#define ERA_2_59 ERA_2_46, ERA(47), ERA(48), ERA(49), ERA(50), ERA(51), ERA(52), ERA(53), ERA(54), ERA(55), ERA(56), ERA(57), ERA(58), ERA(59) - class MBT_01_base_F: Tank_F {}; class rhsusf_m1a1tank_base: MBT_01_base_F { EGVAR(refuel,fuelCapacity) = 1909; }; - class rhsusf_m1a1aim_tuski_wd: rhsusf_m1a1tank_base { - ace_repair_hitpointPositions[] = {{ERA(1), {0,0,0}}}; - ace_repair_hitpointGroups[] = {{ERA(1), {ERA_2_34}}}; - }; - class rhsusf_m1a2tank_base; - class rhsusf_m1a2sep1tuskid_usarmy: rhsusf_m1a2tank_base { - ace_repair_hitpointPositions[] = {{ERA(1), {0,0,0}}}; - ace_repair_hitpointGroups[] = {{ERA(1), {ERA_2_34}}}; - }; - class rhsusf_m1a2sep1tuskiiwd_usarmy: rhsusf_m1a2sep1tuskid_usarmy { - ace_repair_hitpointPositions[] = {{ERA(1), {0,0,0}}}; - ace_repair_hitpointGroups[] = {{ERA(1), {ERA_2_46}}}; - }; - class Helicopter_Base_F: Helicopter { class Eventhandlers; }; @@ -292,20 +272,6 @@ class CfgVehicles { class RHS_M2A2_Base: APC_Tracked_03_base_F { EGVAR(refuel,fuelCapacity) = 746; }; - class RHS_M2A2: RHS_M2A2_Base {}; - class RHS_M2A2_BUSKI: RHS_M2A2 { - ace_repair_hitpointPositions[] = {{ERA(1), {0,0,0}}}; - ace_repair_hitpointGroups[] = {{ERA(1), {ERA_2_45}}}; - }; - class RHS_M2A3: RHS_M2A2 {}; - class RHS_M2A3_BUSKI: RHS_M2A3 { - ace_repair_hitpointPositions[] = {{ERA(1), {0,0,0}}}; - ace_repair_hitpointGroups[] = {{ERA(1), {ERA_2_45}}}; - }; - class RHS_M2A3_BUSKIII: RHS_M2A3_BUSKI { - ace_repair_hitpointPositions[] = {{ERA(1), {0,0,0}}}; - ace_repair_hitpointGroups[] = {{ERA(1), {ERA_2_59}}}; - }; class Plane_CAS_01_base_F; class RHS_A10: Plane_CAS_01_base_F { From ec8115d2a4c9b514261a1b8801575bbfa954efff Mon Sep 17 00:00:00 2001 From: mharis001 <34453221+mharis001@users.noreply.github.com> Date: Thu, 19 Apr 2018 15:01:26 -0400 Subject: [PATCH 103/235] Zeus - Toggle NVGs and Flashlights improvements (#6219) * New Toggle NVG ui and improve function * Add Toggle Flashlights icon * New Toggle Flashlights ui and improve function * Stringtable changes and ace_ai postInit clean up * TRACE fix and stringtable capitalization --- addons/ai/XEH_postInit.sqf | 36 +++--- addons/ai/script_component.hpp | 4 +- addons/zeus/CfgVehicles.hpp | 5 +- addons/zeus/XEH_postInit.sqf | 4 - .../functions/fnc_moduleToggleFlashlight.sqf | 59 +++++----- addons/zeus/functions/fnc_moduleToggleNvg.sqf | 78 ++++++------ .../functions/fnc_ui_toggleFlashlight.sqf | 107 ++++++----------- addons/zeus/functions/fnc_ui_toggleNvg.sqf | 95 ++++++--------- addons/zeus/stringtable.xml | 48 +++----- .../ui/Icon_Module_Zeus_Flashlight_ca.paa | Bin 0 -> 5625 bytes addons/zeus/ui/RscAttributes.hpp | 111 +++++++++--------- 11 files changed, 240 insertions(+), 307 deletions(-) create mode 100644 addons/zeus/ui/Icon_Module_Zeus_Flashlight_ca.paa diff --git a/addons/ai/XEH_postInit.sqf b/addons/ai/XEH_postInit.sqf index 25bd328ff7..4ce37fd314 100644 --- a/addons/ai/XEH_postInit.sqf +++ b/addons/ai/XEH_postInit.sqf @@ -7,12 +7,13 @@ { if (_bool) then { _x enableAI _section; + LOG_3("%1 enableAI %2 | ID: %3",_x,_section,clientOwner); } else { _x disableAI _section; + LOG_3("%1 disableAI %2 | ID: %3",_x,_section,clientOwner); }; - LOG(format [ARR_4("XEH_postInit: %1 disableAI %2 | ID %3", _x, _section, clientOwner)]); - } foreach (_units select {local _x}); - } foreach _sections + } forEach (_units select {local _x}); + } forEach _sections; }] call CBA_fnc_addEventHandler; [QGVAR(unGarrison), FUNC(unGarrison)] call CBA_fnc_addEventHandler; @@ -21,29 +22,26 @@ params ["_unitsArray"]; { _x params ["_unit", "_pos"]; - //_unit doFollow leader _unit; _unit setDestination [_pos, "LEADER PLANNED", true]; _unit doMove _pos; - LOG(format [ARR_4("XEH_postInit: %1 doMove %2 | ID %3", _unit, _pos, clientOwner)]); - } foreach _unitsArray + LOG_3("%1 doMove %2 | ID: %3",_unit,_pos,clientOwner); + } forEach _unitsArray; }] call CBA_fnc_addEventHandler; [QGVAR(setBehaviour), { params ["_groupsArray", "_behaviour"]; { - _x params ["_group"]; - _group setBehaviour _behaviour; - LOG(format [ARR_4("XEH_postInit: %1 setBehaviour %2 | ID %3", _group, _behaviour, clientOwner)]); - } foreach _groupsArray + _x setBehaviour _behaviour; + LOG_3("%1 setBehaviour %2 | ID: %3",_x,_behaviour,clientOwner); + } forEach _groupsArray; }] call CBA_fnc_addEventHandler; [QGVAR(enableAttack), { params ["_unitsArray", "_mode"]; { - _x params ["_unit"]; - _unit enableAttack _mode; - LOG(format [ARR_4("XEH_postInit: %1 enableAttack %2 | ID %3", _unit, _mode, clientOwner)]); - } foreach _unitsArray + _x enableAttack _mode; + LOG_3("%1 enableAttack %2 | ID: %3",_x,_mode,clientOwner); + } forEach _unitsArray; }] call CBA_fnc_addEventHandler; [QGVAR(setUnitPos), { @@ -66,14 +64,18 @@ _unit allowFleeing _cowardice; }] call CBA_fnc_addEventHandler; +[QGVAR(enableGunLights), { + params ["_unit", "_mode"]; + _unit enableGunLights _mode; +}] call CBA_fnc_addEventHandler; + #ifdef DEBUG_MODE_FULL addMissionEventHandler ["Draw3D", { private _unitMoveList = missionNameSpace getVariable [QGVAR(garrison_unitMoveList), []]; - { _x params ["_unit", "_pos"]; - switch true do { + switch (true) do { case (surfaceIsWater (getPos _unit) && {surfaceIsWater _pos}) : { for "_i" from 0 to 3 do { drawLine3D [_unit modelToWorldVisualWorld [0,0,1], (AGLtoASL _pos), [1,0,0,1]]; @@ -102,6 +104,6 @@ drawIcon3D ["\a3\ui_f\data\map\groupicons\waypoint.paa", [1,0,0,1], _pos, 0.75, 0.75, 0.75]; }; }; - } foreach _unitMoveList; + } forEach _unitMoveList; }]; #endif diff --git a/addons/ai/script_component.hpp b/addons/ai/script_component.hpp index 3a05db6896..9a0afcf434 100644 --- a/addons/ai/script_component.hpp +++ b/addons/ai/script_component.hpp @@ -2,8 +2,8 @@ #define COMPONENT_BEAUTIFIED AI #include "\z\ace\addons\main\script_mod.hpp" -//#define DEBUG_MODE_FULL -//#define DISABLE_COMPILE_CACHE +// #define DEBUG_MODE_FULL +// #define DISABLE_COMPILE_CACHE // #define ENABLE_PERFORMANCE_COUNTERS #ifdef DEBUG_ENABLED_AI diff --git a/addons/zeus/CfgVehicles.hpp b/addons/zeus/CfgVehicles.hpp index f37c5e8310..63d221c1e3 100644 --- a/addons/zeus/CfgVehicles.hpp +++ b/addons/zeus/CfgVehicles.hpp @@ -279,14 +279,15 @@ class CfgVehicles { class GVAR(moduleToggleNvg): GVAR(moduleBase) { curatorCanAttach = 1; category = QGVAR(AI); - displayName = CSTRING(moduleToggleNVG_DisplayName); + displayName = CSTRING(ModuleToggleNVG_DisplayName); curatorInfoType = QGVAR(RscToggleNvg); }; class GVAR(moduleToggleFlashlight): GVAR(moduleBase) { curatorCanAttach = 1; category = QGVAR(AI); - displayName = CSTRING(moduleToggleFlashlight_DisplayName); + displayName = CSTRING(ModuleToggleFlashlight_DisplayName); curatorInfoType = QGVAR(RscToggleFlashlight); + icon = QPATHTOF(ui\Icon_Module_Zeus_Flashlight_ca.paa); }; class GVAR(AddFullArsenal): GVAR(moduleBase) { curatorCanAttach = 1; diff --git a/addons/zeus/XEH_postInit.sqf b/addons/zeus/XEH_postInit.sqf index 5929e8664e..adf3d75a9b 100644 --- a/addons/zeus/XEH_postInit.sqf +++ b/addons/zeus/XEH_postInit.sqf @@ -16,10 +16,6 @@ QGVAR(GlobalSkillAI) addPublicVariableEventHandler FUNC(moduleGlobalSetSkill); [QGVAR(moduleSearchNearby), CBA_fnc_searchNearby] call CBA_fnc_addEventHandler; [QGVAR(moduleSearchArea), CBA_fnc_taskSearchArea] call CBA_fnc_addEventHandler; [QGVAR(suppressiveFire), LINKFUNC(moduleSuppressiveFireLocal)] call CBA_fnc_addEventHandler; -[QGVAR(enableFlashlight), { - params ["_unit", "_mode"]; - _unit enableGunLights _mode; -}] call CBA_fnc_addEventHandler; // Editable object commands must be ran on server, this events are used in the respective module if (isServer) then { diff --git a/addons/zeus/functions/fnc_moduleToggleFlashlight.sqf b/addons/zeus/functions/fnc_moduleToggleFlashlight.sqf index b66d011704..c5f4c3668d 100644 --- a/addons/zeus/functions/fnc_moduleToggleFlashlight.sqf +++ b/addons/zeus/functions/fnc_moduleToggleFlashlight.sqf @@ -1,63 +1,64 @@ /* - * Author: alganthe - * Zeus module function to toggle Flashlights + * Author: alganthe, mharis001 + * Zeus module function to toggle flashlights. * * Arguments: * 0: Logic object * 1: Toggle mode * 2: Add gear - * 3: Target of the toggle 0: blufor; 1: opfor; 2: indep; 3: civ; 4: selected group + * 3: Target units (-1 - Selected group, 0 - BLUFOR, 1 - OPFOR, 2 - Independent, 3 - Civilian) * * Return Value: * None * * Example: - * [LOGIC, true, true, 4] call ace_zeus_fnc_moduleToggleFlashlight + * [LOGIC, true, true, -1] call ace_zeus_fnc_moduleToggleFlashlight * * Public: No -*/ + */ #include "script_component.hpp" params ["_logic", "_toggle", "_addGear", "_target"]; +TRACE_1("params",_this); +// Create array of target units private _units = []; -if (_target == 4) then { - _units = units (attachedTo _logic); +if (_target == -1) then { + _units = (units attachedTo _logic) select {alive _x && {!([_x] call EFUNC(common,isPlayer))} && {!(currentWeapon _x isEqualTo "")}}; } else { - _units = allUnits select {alive _x && {side _x == ([blufor, opfor, independent, civilian] select _target)}}, + private _side = [west, east, independent, civilian] select _target; + _units = allUnits select {alive _x && {side _x == _side} && {!([_x] call EFUNC(common,isPlayer))} && {!(currentWeapon _x isEqualTo "")}}; }; +// Toggle flashlights for units if (_toggle) then { + private _cfgWeapons = configFile >> "CfgWeapons"; { - // enableGunLights doesn't work on players - if !(isPlayer _x || {(currentWeapon _x) isEqualTo ""}) then { - private _pointer = (_x weaponAccessories (currentWeapon _x)) select 1; + private _weapon = currentWeapon _x; + private _pointer = (_x weaponAccessories _weapon) select 1; - if (!(_pointer isEqualTo "") && {isNull (configfile >> "CfgWeapons" >> _pointer >> "ItemInfo" >> "Pointer")}) then { - [QGVAR(enableFlashlight), [_x, "forceOn"], _x] call CBA_fnc_targetEvent; + if (!(_pointer isEqualTo "") && {getNumber (_cfgWeapons >> _pointer >> "ItemInfo" >> "FlashLight" >> "size") > 0}) then { + [QEGVAR(ai,enableGunLights), [_x, "forceOn"], _x] call CBA_fnc_targetEvent; + } else { + if (_addGear) then { + // Get compatible items for pointer slot + private _compatibleItems = [_weapon, "pointer"] call CBA_fnc_compatibleItems; - } else { - if (_addGear) then { - // Retrieve compatible items for the pointer slot - private _pointerSlotCompatible = [currentWeapon _x, "pointer"] call CBA_fnc_compatibleItems; + // Get random flashlight from compatible pointer slot items + private _flashlightItem = selectRandom (_compatibleItems select {getNumber (_cfgWeapons >> _x >> "ItemInfo" >> "FlashLight" >> "size") > 0}); - // Get flashlights from the array above and select the first one - private _flashlight = (_pointerSlotCompatible select {isNull (configfile >> "CfgWeapons" >> _x >> "ItemInfo" >> "Pointer")}) select 0; - - [QEGVAR(common,addWeaponItem), [_x, (currentWeapon _x), _flashlight], _x] call CBA_fnc_targetEvent; - [QGVAR(enableFlashlight), [_x, "forceOn"], _x] call CBA_fnc_targetEvent; - }; + // Add flashlight to weapon and enable + [QEGVAR(common,addWeaponItem), [_x, _weapon, _flashlightItem], _x] call CBA_fnc_targetEvent; + [QEGVAR(ai,enableGunLights), [_x, "forceOn"], _x] call CBA_fnc_targetEvent; + TRACE_2("Added flashlight to unit",_x,_flashlightItem); }; }; - } foreach _units; - + } forEach _units; } else { { - if !(isPlayer _x || {(currentWeapon _x) isEqualTo ""}) then { - [QGVAR(enableFlashlight), [_x, "forceOff"], _x] call CBA_fnc_targetEvent; - }; - } foreach _units; + [QEGVAR(ai,enableGunLights), [_x, "forceOff"], _x] call CBA_fnc_targetEvent; + } forEach _units; }; deleteVehicle _logic; diff --git a/addons/zeus/functions/fnc_moduleToggleNvg.sqf b/addons/zeus/functions/fnc_moduleToggleNvg.sqf index 23a2cf5a05..7a01c27a4a 100644 --- a/addons/zeus/functions/fnc_moduleToggleNvg.sqf +++ b/addons/zeus/functions/fnc_moduleToggleNvg.sqf @@ -1,68 +1,76 @@ /* - * Author: alganthe - * Zeus module function to toggle NVGs + * Author: alganthe, mharis001 + * Zeus module function to toggle NVGs. * * Arguments: * 0: Logic object * 1: Toggle mode - * 2: Target of the toggle 0: blufor; 1: opfor; 2: indep; 3: civ; 4: selected group + * 2: Target units (-1 - Selected group, 0 - BLUFOR, 1 - OPFOR, 2 - Independent, 3 - Civilian) * * Return Value: * None * * Example: - * [LOGIC, true, 4] call ace_zeus_fnc_moduleToggleNvg + * [LOGIC, true, -1] call ace_zeus_fnc_moduleToggleNvg * * Public: No -*/ + */ #include "script_component.hpp" params ["_logic", "_toggle", "_target"]; +TRACE_1("params",_this); +// Create array of target units private _units = []; -if (_target == 4) then { - _units = units (attachedTo _logic); +if (_target == -1) then { + _units = (units attachedTo _logic) select {alive _x && {!([_x] call EFUNC(common,isPlayer))}}; } else { - _units = allUnits select {alive _x && {side _x == ([blufor, opfor, independent, civilian] select _target)}}, + private _side = [west, east, independent, civilian] select _target; + _units = allUnits select {alive _x && {side _x == _side} && {!([_x] call EFUNC(common,isPlayer))}}; }; +// Add or remove NVGs from units +private _cfgVehicles = configFile >> "CfgVehicles"; +private _cfgWeapons = configFile >> "CfgWeapons"; + if (_toggle) then { { - if (!isplayer _x && {hmd _x isEqualTo ""}) then { - private _cfgArray = getArray (configFile >> 'CfgVehicles' >> typeOf _x >>'linkedItems'); + if (hmd _x isEqualTo "") then { + // Get NVG item and helmet from unit config + private _linkedItems = getArray (_cfgVehicles >> typeOf _x >> "linkedItems"); + private _nvgItem = _linkedItems select {_x isKindOf ["NVGoggles", _cfgWeapons]}; + private _nvgHelmet = _linkedItems select {!(getArray (_cfgWeapons >> _x >> "subItems") isEqualTo [])}; - private _nvgClass = _cfgArray select {_x isKindOf ["NVGoggles",(configFile >> "CfgWeapons")]}; - private _nvgHelmet =_cfgArray select {count (getArray (configFile >> "CfgWeapons" >> _x >> "subItems")) > 0}; - - // Can't have more than 1 assigned by default - if (count _nvgClass == 1 || {count _nvgHelmet == 1}) then { - if (count _nvgHelmet == 1) then { - _x addHeadgear (_nvgHelmet select 0); - } else { - _x linkItem (_nvgClass select 0); - }; - - } else { - _x linkItem "NVGoggles"; + // Add NVG helmet if defined + if !(_nvgHelmet isEqualTo []) exitWith { + _x addHeadgear (_nvgHelmet select 0); }; - }; - } foreach _units; + // Add NVGs if defined + if !(_nvgItem isEqualTo []) exitWith { + _x linkItem (_nvgItem select 0); + }; + + // Default: add basic NVGs + _x linkItem "NVGoggles"; + }; + } forEach _units; } else { { - if (!isplayer _x) then { - private _cfgArray = getArray (configFile >> 'CfgVehicles' >> typeOf _x >>'linkedItems'); + // Get unit current NVGs or helmet with NVG built-in + private _nvgItem = hmd _x; + private _nvgHelmet = getArray (_cfgWeapons >> headgear _x >> "subItems") isEqualTo []; - private _nvgHelmet =_cfgArray select {count (getArray (configFile >> "CfgWeapons" >> _x >> "subItems")) > 0}; - - if (count _nvgHelmet == 1) then { - removeHeadgear _x; - } else { - _x unlinkItem (hmd _x); - }; + // Remove NVG equipment from unit + if !(_nvgHelmet) then { + removeHeadgear _x; }; - } foreach _units; + + if !(_nvgItem isEqualTo "") then { + _x unlinkItem _nvgItem; + }; + } forEach _units; }; deleteVehicle _logic; diff --git a/addons/zeus/functions/fnc_ui_toggleFlashlight.sqf b/addons/zeus/functions/fnc_ui_toggleFlashlight.sqf index a40a55ac40..874f2dcc91 100644 --- a/addons/zeus/functions/fnc_ui_toggleFlashlight.sqf +++ b/addons/zeus/functions/fnc_ui_toggleFlashlight.sqf @@ -1,35 +1,35 @@ /* - * Author: alganthe - * Initalises the `Toggle Flashlights` zeus module display + * Author: alganthe, mharis001 + * Initializes the "Toggle Flashlights" Zeus module display. * * Arguments: - * 0: Flashlight toggle controls group + * 0: toggleFlashlight controls group * * Return Value: * None * * Example: - * onSetFocus = "_this call ace_zeus_fnc_ui_toggleFLashlight" + * [CONTROL] call ace_zeus_fnc_ui_toggleFlashlight * * Public: No -*/ + */ #include "script_component.hpp" -disableSerialization; +#define COMBO_ITEMS [[LSTRING(SelectedGroup), "\a3\ui_f_curator\data\displays\rscdisplaycurator\modegroups_ca.paa"], ["STR_WEST", "\a3\ui_f\data\map\diary\icons\playerwest_ca.paa"], ["STR_EAST", "\a3\ui_f\data\map\diary\icons\playereast_ca.paa"], ["STR_guerrila", "\a3\ui_f\data\map\diary\icons\playerguer_ca.paa"], ["STR_Civilian", "\a3\ui_f\data\map\diary\icons\playerciv_ca.paa"]] params ["_control"]; -//Generic Init: -private _display = ctrlparent _control; -private _ctrlButtonOK = _display displayctrl 1; //IDC_OK -private _logic = GETMVAR(BIS_fnc_initCuratorAttributes_target,objnull); -TRACE_1("logicObject",_logic); +// Generic init +private _display = ctrlParent _control; +private _ctrlButtonOK = _display displayCtrl 1; // IDC_OK +private _logic = GETMVAR(BIS_fnc_initCuratorAttributes_target,objNull); +TRACE_1("Logic Object",_logic); -_control ctrlRemoveAllEventHandlers "setFocus"; +_control ctrlRemoveAllEventHandlers "SetFocus"; +// Validate module target private _unit = effectiveCommander (attachedTo _logic); -// Handles errors scopeName "Main"; private _fnc_errorAndClose = { params ["_msg"]; @@ -50,59 +50,24 @@ if !(isNull _unit) then { }; }; -//Specific on-load stuff: -private _comboBox = _display displayCtrl 56218; -private _comboBox2 = _display displayCtrl 56219; -private _comboBox3 = _display displayCtrl 56220; +// Specific onLoad stuff +private _combo = _display displayCtrl 56220; +// Add target combo options (only add selected group option if placed on unit) { - _comboBox lbSetValue [_comboBox lbAdd (_x select 0), _x select 1]; -} forEach [ - [localize ELSTRING(common,Disabled), 0], - [localize ELSTRING(common,Enabled), 1] -]; + _x params ["_text", "_icon"]; + _combo lbSetPicture [_combo lbAdd (localize _text), _icon]; +} forEach (COMBO_ITEMS select [[0, 1] select (isNull _unit), 5]); -if (isNull _unit) then { - { - _comboBox2 lbSetValue [_comboBox2 lbAdd (_x select 0), _x select 1]; - } forEach [ - ["BLUFOR", 0], - ["OPFOR", 1], - ["INDEP", 2], - ["CIV", 3] - ]; -} else { - { - _comboBox2 lbSetValue [_comboBox2 lbAdd (_x select 0), _x select 1]; - } forEach [ - [localize LSTRING(moduleToggleNVG_SelectedGroup), 4], - ["BLUFOR", 0], - ["OPFOR", 1], - ["INDEP", 2], - ["CIV", 3] - ]; +_combo lbSetCurSel 0; + +// Set default flashlight status +if !(isNull _unit) then { + (_display displayCtrl 56218) lbSetCurSel ([0, 1] select (_unit isFlashlightOn (currentWeapon _unit))); }; -{ - _comboBox3 lbSetValue [_comboBox3 lbAdd (_x select 0), _x select 1]; -} foreach [ - [localize ELSTRING(common,Disabled), 0], - [localize ELSTRING(common,Enabled), 1] -]; - - -private _enabledDefault = false; -if (!isNull _unit) then { - _enabledDefault = _unit isFlashlightOn (currentWeapon _unit); -}; -_comboBox lbSetCurSel ([0,1] select _enabledDefault); -_comboBox2 lbSetCurSel 0; -_comboBox3 lbSetCurSel 0; - private _fnc_onUnload = { - params ["_display"]; - - private _logic = GETMVAR(BIS_fnc_initCuratorAttributes_target,objnull); + private _logic = GETMVAR(BIS_fnc_initCuratorAttributes_target,objNull); if (isNull _logic) exitWith {}; deleteVehicle _logic; @@ -111,22 +76,20 @@ private _fnc_onUnload = { private _fnc_onConfirm = { params [["_ctrlButtonOK", controlNull, [controlNull]]]; - private _display = ctrlparent _ctrlButtonOK; + private _display = ctrlParent _ctrlButtonOK; if (isNull _display) exitWith {}; - private _logic = GETMVAR(BIS_fnc_initCuratorAttributes_target,objnull); + private _logic = GETMVAR(BIS_fnc_initCuratorAttributes_target,objNull); if (isNull _logic) exitWith {}; - private _combo1 = _display displayCtrl 56218; - private _combo2 = _display displayCtrl 56219; - private _combo3 = _display displayCtrl 56220; + private _toggle = lbCurSel (_display displayCtrl 56218) > 0; + private _addGear = lbCurSel (_display displayCtrl 56219) > 0; + private _combo = _display displayCtrl 56220; + private _target = lbCurSel _combo; + if (lbSize _combo > 4) then {DEC(_target)}; - private _toggle = _combo1 lbValue (lbCurSel _combo1); - private _target = _combo2 lbValue (lbCurSel _combo2); - private _gear = _combo3 lbValue (lbCurSel _combo3); - - [_logic, _toggle == 1, _gear == 1, _target] call FUNC(moduleToggleFlashlight); + [_logic, _toggle, _addGear, _target] call FUNC(moduleToggleFlashlight); }; -_display displayAddEventHandler ["unload", _fnc_onUnload]; -_ctrlButtonOK ctrlAddEventHandler ["buttonclick", _fnc_onConfirm]; +_display displayAddEventHandler ["Unload", _fnc_onUnload]; +_ctrlButtonOK ctrlAddEventHandler ["ButtonClick", _fnc_onConfirm]; diff --git a/addons/zeus/functions/fnc_ui_toggleNvg.sqf b/addons/zeus/functions/fnc_ui_toggleNvg.sqf index fcfbc52c83..c10b0b5bbc 100644 --- a/addons/zeus/functions/fnc_ui_toggleNvg.sqf +++ b/addons/zeus/functions/fnc_ui_toggleNvg.sqf @@ -1,35 +1,35 @@ /* - * Author: alganthe - * Initalises the `Toggle NVGs` zeus module display + * Author: alganthe, mharis001 + * Initializes the "Toggle NVGs" Zeus module display. * * Arguments: - * 0: Nvg toggle controls group + * 0: toggleNvg controls group * * Return Value: * None * * Example: - * onSetFocus = "_this call ace_zeus_fnc_ui_toggleNvg" + * [CONTROL] call ace_zeus_fnc_ui_toggleNvg * * Public: No -*/ + */ #include "script_component.hpp" -disableSerialization; +#define COMBO_ITEMS [[LSTRING(SelectedGroup), "\a3\ui_f_curator\data\displays\rscdisplaycurator\modegroups_ca.paa"], ["STR_WEST", "\a3\ui_f\data\map\diary\icons\playerwest_ca.paa"], ["STR_EAST", "\a3\ui_f\data\map\diary\icons\playereast_ca.paa"], ["STR_guerrila", "\a3\ui_f\data\map\diary\icons\playerguer_ca.paa"], ["STR_Civilian", "\a3\ui_f\data\map\diary\icons\playerciv_ca.paa"]] params ["_control"]; -//Generic Init: -private _display = ctrlparent _control; -private _ctrlButtonOK = _display displayctrl 1; //IDC_OK -private _logic = GETMVAR(BIS_fnc_initCuratorAttributes_target,objnull); -TRACE_1("logicObject",_logic); +// Generic init +private _display = ctrlParent _control; +private _ctrlButtonOK = _display displayCtrl 1; // IDC_OK +private _logic = GETMVAR(BIS_fnc_initCuratorAttributes_target,objNull); +TRACE_1("Logic Object",_logic); -_control ctrlRemoveAllEventHandlers "setFocus"; +_control ctrlRemoveAllEventHandlers "SetFocus"; +// Validate module target private _unit = effectiveCommander (attachedTo _logic); -// Handles errors scopeName "Main"; private _fnc_errorAndClose = { params ["_msg"]; @@ -50,50 +50,24 @@ if !(isNull _unit) then { }; }; -//Specific on-load stuff: -private _comboBox = _display displayCtrl 92855; -private _comboBox2 = _display displayCtrl 92856; +// Specific onLoad stuff +private _combo = _display displayCtrl 92856; +// Add target combo options (only add selected group option if placed on unit) { - _comboBox lbSetValue [_comboBox lbAdd (_x select 0), _x select 1]; -} forEach [ - [localize ELSTRING(common,Disabled), 0], - [localize ELSTRING(common,Enabled), 1] -]; + _x params ["_text", "_icon"]; + _combo lbSetPicture [_combo lbAdd (localize _text), _icon]; +} forEach (COMBO_ITEMS select [[0, 1] select (isNull _unit), 5]); -if (isNull _unit) then { - { - _comboBox2 lbSetValue [_comboBox2 lbAdd (_x select 0), _x select 1]; - } forEach [ - ["BLUFOR", 0], - ["OPFOR", 1], - ["INDEP", 2], - ["CIV", 3] - ]; -} else { - { - _comboBox2 lbSetValue [_comboBox2 lbAdd (_x select 0), _x select 1]; - } forEach [ - [localize LSTRING(moduleToggleNVG_SelectedGroup), 4], - ["BLUFOR", 0], - ["OPFOR", 1], - ["INDEP", 2], - ["CIV", 3] - ]; +_combo lbSetCurSel 0; + +// Set default NVG status +if !(isNull _unit) then { + (_display displayCtrl 92855) lbSetCurSel ([0, 1] select !(hmd _unit isEqualTo "")); }; - -private _enabledDefault = false; -if (!isNull _unit) then { - _enabledDefault = !(hmd _unit isEqualTo ""); -}; -_comboBox lbSetCurSel ([0,1] select _enabledDefault); -_comboBox2 lbSetCurSel 0; - private _fnc_onUnload = { - params ["_display"]; - - private _logic = GETMVAR(BIS_fnc_initCuratorAttributes_target,objnull); + private _logic = GETMVAR(BIS_fnc_initCuratorAttributes_target,objNull); if (isNull _logic) exitWith {}; deleteVehicle _logic; @@ -102,20 +76,19 @@ private _fnc_onUnload = { private _fnc_onConfirm = { params [["_ctrlButtonOK", controlNull, [controlNull]]]; - private _display = ctrlparent _ctrlButtonOK; + private _display = ctrlParent _ctrlButtonOK; if (isNull _display) exitWith {}; - private _logic = GETMVAR(BIS_fnc_initCuratorAttributes_target,objnull); + private _logic = GETMVAR(BIS_fnc_initCuratorAttributes_target,objNull); if (isNull _logic) exitWith {}; - private _combo1 = _display displayCtrl 92855; - private _combo2 = _display displayCtrl 92856; + private _toggle = lbCurSel (_display displayCtrl 92855) > 0; + private _combo = _display displayCtrl 92856; + private _target = lbCurSel _combo; + if (lbSize _combo > 4) then {DEC(_target)}; - private _toggle = _combo1 lbValue (lbCurSel _combo1); - private _target = _combo2 lbValue (lbCurSel _combo2); - - [_logic, _toggle == 1, _target] call FUNC(moduleToggleNvg); + [_logic, _toggle, _target] call FUNC(moduleToggleNvg); }; -_display displayAddEventHandler ["unload", _fnc_onUnload]; -_ctrlButtonOK ctrlAddEventHandler ["buttonclick", _fnc_onConfirm]; +_display displayAddEventHandler ["Unload", _fnc_onUnload]; +_ctrlButtonOK ctrlAddEventHandler ["ButtonClick", _fnc_onConfirm]; diff --git a/addons/zeus/stringtable.xml b/addons/zeus/stringtable.xml index 38696f4038..d1daeab775 100644 --- a/addons/zeus/stringtable.xml +++ b/addons/zeus/stringtable.xml @@ -1067,7 +1067,7 @@ 装载到货物中 화물 싣기 - + Toggle NVGs Nachtsichtgeräte Hinzufügen/Entfernen Basculer JVN @@ -1077,8 +1077,8 @@ 切换夜视镜 야시경 토글 - - NVG equipment + + NVG Equipment Nachtsichtgeräte Equipment de vision nocturne Attrezzatura NVG @@ -1087,7 +1087,7 @@ 夜视镜装备 야시경 장비 - + Add or remove NVGs from units Nachtsichtgeräte Hinzufügen/Entfernen Ajouter ou retirer JVN des unités @@ -1097,18 +1097,14 @@ 增加或移除单位的夜视镜 야시경 추가/제거 - - Toggle NVG target - Wechsle Nachtsichtgeräteziel - Cible du basculement - Attiva obiettivo NVG - 選択先の暗視装置の切り替え - 切換目標的夜視鏡狀態 - 切换目标的夜视镜状态 - 목표의 야시경 토글 + + Toggle Target - - Selected group + + Units affected by the toggle + + + Selected Group Ausgewählte Gruppe Groupe sélectionné Gruppo selezionato @@ -1117,8 +1113,8 @@ 选择小队 그룹 선택 - - Toggle flashlights + + Toggle Flashlights Ändere Taschenlampen Basculer lampes torches Attiva torce @@ -1127,18 +1123,8 @@ 切换手电筒 손전등 토글 - - Toggle flashlight target - Wechsle Nachtsichtgeräteziel - Cible du basculement - Attiva obiettivo torcia - 選択先のフラッシュライトの切り替え - 切換目標的手電筒狀態 - 切换目标的手电筒状态 - 목표의 손전등 토글 - - - Flashlight + + Flashlights Taschenlampe Lampe torche Torcia @@ -1147,8 +1133,8 @@ 手电筒 손전등 - - Add gear + + Add Gear Ausrüstung hinzufügen Ajouter équipement Aggiungi equipaggiamento diff --git a/addons/zeus/ui/Icon_Module_Zeus_Flashlight_ca.paa b/addons/zeus/ui/Icon_Module_Zeus_Flashlight_ca.paa new file mode 100644 index 0000000000000000000000000000000000000000..276411b7aa432e2ab1176b659a19b84f2ea02b53 GIT binary patch literal 5625 zcmeHLZ%kWN6u+1Cg#zoS!za$d^0X`w*ditd6Upo&U>TXj#`U3zeBh4`{Q&i&e?llr z6phOmOQy!e6u%k62Mp$^aUT#8hCrAL%38Xuld;VhrYvBkquuqK`}&}LTT&(_bjFk1 z*Ph($z7W8=Xep<&x#JS0IIe^%vB((iu+_^${qg_BquO?1~L>`?_6n z_F=Wf1|~;d6cwc)+WDjJ=H*+Ag;-z4d*;0Z_qIR05Gilg^%FopGT*uESnY|SzChG| zIT;V<(5UBHdHZ)b5B?x#toFu+d!qTsr=vTVzEaz4YHJ0`r--7E_l;UO%p!385aN~z z$-Rd5`}BK0uefF9rU8%8ZFo@KKSc14vai|Mp}2n#*`;iIUv0BHk8ytz1xgP22Vwz7 z^z>HYVHd?eMwLIvQ^I#&ZE7b8c_=a@DuWgPf0{= zeo3wKBM<)J+R2I={BeC{mmBqMvO9lY)A#7DF&``j3bE`ALSC6+Hym-^>-CZ+dJ*sV z{psHN`?JJ=&;ICS0zQKBG#Jl+Qak^$>~b0H%Z^~^!hjZHpe}rJmIpZP_hf#@PhWQU zy9+sl}JB{_SlEEVBDz#|9-Xae^O`UA&9QQT>V zhxO+%&$8MYKQDq(9{|xKo@LaBkc=;k`WyAlF6gqXa((aYANF5zqnQkjUmTC3x%9?^ zK2Y8qjGuo2?vuvTjcYt!FuQ^SZL5o(`8Y1rh)*hh&y{36(%nCdCwEsMIet8Jj``Tw zKgZ)<^A95)Hh(f6w%N_$@xOm)2*ZWJBh798(VY-qm93AjMt?B!oAr+m``C>UpO#NR zL~(5+2TthujvMYL<9_MRr@B8t-=#C%7A+qA2lP#44_jAqyt!NZN<<Qt`l5RR})Te+qdK zk}h+9?oj4oDehLZx@fK!(t53ov6?7(d}^>G&=VWM|0kCH`uq82@YpDCy$-^}(+H?S zlt<>eA5PqlUD8aTW0^DPh)w5O7jS=UIvgZW)6^c}WeuG2wKmK~_XklqN$|uy#NWmt z?bp(LEQ{nYi%cJHs=)n#gzfTrS%Yc*!4>EcbS^qL9`e60Pqm>esSZbaqE4+1gB}u> zYt7fvO`g)DzSu~Qb}d6&U@fhe06X2L@O8ufg8xO5VBmTqK7SJOYT27wnM+8eLJeWS zimgCOY(IdF!!Pr0mZAv4jtOtwthxUzH)BHkLf-~<<0Qcox6L1wF1@2y14K~Rz6oD} z<8_z|u}8BB$y*vM^nX;xy9sb=Wxg055)52#uPjxO%f3_Yi%*2dU*Mo0_7oIO|;Ys>4l+cC`KnA@iha&7< rlGUpRQEUpC{Ke<rX32s!tbKiv5GVE+@;poX!(4_erN=lm^ literal 0 HcmV?d00001 diff --git a/addons/zeus/ui/RscAttributes.hpp b/addons/zeus/ui/RscAttributes.hpp index 87ce44e54a..8345904ca9 100644 --- a/addons/zeus/ui/RscAttributes.hpp +++ b/addons/zeus/ui/RscAttributes.hpp @@ -583,42 +583,46 @@ class GVAR(RscToggleNvg): RscDisplayAttributes { class Title: Title {}; class Content: Content { class Controls { - class ToggleNvg: RscControlsGroupNoScrollbars { + class toggleNvg: RscControlsGroupNoScrollbars { onSetFocus = QUOTE(_this call FUNC(ui_toggleNvg)); idc = 92854; x = 0; y = 0; w = W_PART(26); - h = H_PART(3); + h = H_PART(2.1); class controls { - class ToggleNvgTitle: Title { + class ToggleLabel: RscText { idc = -1; - text = CSTRING(moduleToggleNVG_ToggleNvgTitle); - toolTip = CSTRING(moduleToggleNVG_ToggleNvgTitleTooltip); - x = H_PART(0); - y = H_PART(0); - w = W_PART(7); + text = CSTRING(ModuleToggleNVG_NvgEquipment); + tooltip = CSTRING(ModuleToggleNVG_NvgEquipment_tooltip); + x = 0; + y = 0; + w = W_PART(10); + h = H_PART(1); + colorBackground[] = {0, 0, 0, 0.5}; }; - class ToggleNvgCombo: RscCombo { + class Toggle: ctrlToolbox { idc = 92855; - x = H_PART(6); - y = H_PART(0); - w = W_PART(10.1); + x = W_PART(10.1); + y = 0; + w = W_PART(15.9); h = H_PART(1); + rows = 1; + columns = 2; + strings[] = {ECSTRING(common,Disabled), ECSTRING(common,Enabled)}; }; - class ToggleNvgSideTitle: Title { - idc = -1; - text = CSTRING(moduleToggleNVG_ToggleNvgSide); - x = H_PART(0); - y = H_PART(1.2); - w = W_PART(7); + class TargetLabel: ToggleLabel { + text = CSTRING(ToggleTarget); + tooltip = CSTRING(ToggleTarget_Tooltip); + y = H_PART(1.1); }; - class ToggleNvgSideCombo: RscCombo { + class Target: RscCombo { idc = 92856; - x = H_PART(6); - y = H_PART(1.2); - w = W_PART(10.1); + x = W_PART(10.1); + y = H_PART(1.1); + w = W_PART(15.9); h = H_PART(1); + colorBackground[] = {0, 0, 0, 0.7}; }; }; }; @@ -637,55 +641,54 @@ class GVAR(RscToggleFlashlight): RscDisplayAttributes { class Title: Title {}; class Content: Content { class Controls { - class ToggleFlashlight: RscControlsGroupNoScrollbars { + class toggleFlashlight: RscControlsGroupNoScrollbars { onSetFocus = QUOTE(_this call FUNC(ui_toggleFlashlight)); idc = 56217; x = 0; y = 0; w = W_PART(26); - h = H_PART(5); + h = H_PART(3.2); class controls { - class ToggleFlashlightTitle: Title { + class ToggleLabel: RscText { idc = -1; - text = CSTRING(moduleToggleFlashlight_ToggleFlashlightTitle); - x = H_PART(0); - y = H_PART(0); - w = W_PART(7); + text = CSTRING(ModuleToggleFlashlight_Flashlights); + x = 0; + y = 0; + w = W_PART(10); + h = H_PART(1); + colorBackground[] = {0, 0, 0, 0.5}; }; - class ToggleFlashlightCombo: RscCombo { + class Toggle: ctrlToolbox { idc = 56218; - x = H_PART(6); - y = H_PART(0); - w = W_PART(10.1); + x = W_PART(10.1); + y = 0; + w = W_PART(15.9); h = H_PART(1); + rows = 1; + columns = 2; + strings[] = {ECSTRING(common,Disabled), ECSTRING(common,Enabled)}; }; - class ToggleFlashlightSideTitle: Title { - idc = -1; - text = CSTRING(moduleToggleFlashlight_ToggleFlashlightSide); - x = H_PART(0); - y = H_PART(1.2); - w = W_PART(7); + class AddGearLabel: ToggleLabel { + text = CSTRING(ModuleToggleFlashlight_AddGear); + y = H_PART(1.1); }; - class ToggleFlashlightSideCombo: RscCombo { + class AddGear: Toggle { idc = 56219; - x = H_PART(6); - y = H_PART(1.2); - w = W_PART(10.1); - h = H_PART(1); + y = H_PART(1.1); + strings[] = {ECSTRING(common,No), ECSTRING(common,Yes)}; }; - class ToggleFlashlightGearTitle: Title { - idc = -1; - text = CSTRING(moduleToggleFlashlight_ToggleFlashlightGear); - x = H_PART(0); - y = H_PART(2.4); - w = W_PART(7); + class TargetLabel: ToggleLabel { + text = CSTRING(ToggleTarget); + tooltip = CSTRING(ToggleTarget_Tooltip); + y = H_PART(2.2); }; - class ToggleFlashlightGearCombo: RscCombo { + class Target: RscCombo { idc = 56220; - x = H_PART(6); - y = H_PART(2.4); - w = W_PART(10.1); + x = W_PART(10.1); + y = H_PART(2.2); + w = W_PART(15.9); h = H_PART(1); + colorBackground[] = {0, 0, 0, 0.7}; }; }; }; From 704dd66d38f91f49d394c1354ec27762fd0e74cd Mon Sep 17 00:00:00 2001 From: Josuan Albin Date: Thu, 19 Apr 2018 21:03:53 +0200 Subject: [PATCH 104/235] Ace arsenal doc improvement (#6251) * Add a part of the stats documentation * Finish documenting stats It's barebone but it'll do. * Add EH list to ace arsenal framework doc * Remove I form in framework doc, capitalize default loadouts * Add section about importing BI VA loadouts --- docs/wiki/feature/arsenal.md | 9 ++ docs/wiki/framework/arsenal-framework.md | 122 +++++++++++++++++++++++ 2 files changed, 131 insertions(+) diff --git a/docs/wiki/feature/arsenal.md b/docs/wiki/feature/arsenal.md index 885b8e26e8..91b4341de0 100644 --- a/docs/wiki/feature/arsenal.md +++ b/docs/wiki/feature/arsenal.md @@ -55,6 +55,15 @@ The color coding for loadouts is as follows: - Grey: Some items in that loadout are not available in that box. - Red: Missing mods / class not defined, this takes precedence over grey if there is also unavailable items. +#### 1.2.1 Importing loadouts from Virtual Arsenal + +You can import loadouts from Virtual Arsenal into ACE Arsenal, face, voice, insignias, and items from mods that aren't loaded won't be ported. + +- Go in 3DEN +- Place down a player unit +- In the 3DEN top toolbar, click on the `TOOLS` tab +- Click on `Import BI VA Loadouts to Ace Arsenal` + ## 2. Shortcuts
diff --git a/docs/wiki/framework/arsenal-framework.md b/docs/wiki/framework/arsenal-framework.md index d716c05f51..eb30728169 100644 --- a/docs/wiki/framework/arsenal-framework.md +++ b/docs/wiki/framework/arsenal-framework.md @@ -117,5 +117,127 @@ Both of them are optional. ## 4. Default loadouts While in 3DEN you have the ability to save default loadouts in ACE Arsenal, doing so will make the saved loadouts available to all players (those loadouts are still subject to loadout verification). +To do so: +- Open ACE Arsenal in 3DEN by editing a unit's loadout. +- Click on the "Loadouts" tab. +- Click on the "Default Loadouts" tab. +- Enter a loadout name and save. This loadout list can be exported to the clipboard by using Shift. + LMB. on the export button, doing the same on the import button will import the list currently in the clipboard. + +## 5. Stats + +ACE Arsenal stats are customizable, this will show you how. + +### 5.1. Adding stats via config + +```cpp +class ace_arsenal_stats { + class statBase; + + class TAG_myStat: statBase { + scope = 2; // Only scope 2 show up in arsenal, scope 1 is used for base classes. + displayName= "Test entry title"; // Title of the stat. + priority = 0; // A higher value means the stat will be displayed higher on the page. + stats[] = {"mySuperStat"}; // Array of strings to pass to the statements, typically + showBar = 1; // 0 disabled; 1 enabled; + showText = 1; // 0 disabled; 1 enabled; + barStatement = "1"; // Statement evaluated to set the bar progress, needs to return a NUMBER. + textStatement = "test entry" // statement evaluated to set the text entry, can return anything. + condition = "true"; // Condition for the stats to be displayed, default is true if not defined, needs to return a BOOL. + tabs[] = { {0,1,2}, { } }; // Arrays of tabs, left array is left tabs, right array is right tabs. + }; +}; +``` + +The arguments passed to the bar, text and condition statements are: +- The stats array `` +- The config entry of the weapon `` + +### 5.2 Adding stats via a function + +To add a stat simply call `ace_arsenal_fnc_addStat` +```cpp +/* + * Author: Alganthe + * Add a stat to ACE Arsenal. + * + * Arguments: + * 0: Tabs to add the stat to (ARRAY of ARRAYS) + * 0.1: Left tab indexes (ARRAY of NUMBERS) + * 0.2 Right tab indexes (ARRAY of NUMBERS) + * 1: Stat class (STRING) (A unique string for each stat) + * 2: Config entries to pass (ARRAY of STRINGS) + * 3: Title (STRING) + * 4: Show bar / show text bools (ARRAY of BOOLS) + * 4.1 Show bar (BOOL) + * 4.2 Show text (BOOL) + * 5: Array of statements (ARRAY of ARRAYS) + * 5.1: Bar code (CODE) + * 5.2 Text code (CODE) + * 5.3 Condition code (CODE) + * 6: Priority (NUMBER) (Optional) + * + * Return Value: + * 0: Array of IDs (ARRAY of STRINGS) + * + * Example: + * [[[0,1,2], [7]], "scopeStat", ["scope"], "Scope", [false, true], [{}, { + params ["_statsArray", "_itemCfg"]; + getNumber (_itemCfg >> _statsArray select 0) + }, {true}]] call ACE_arsenal_fnc_addStat + * + * Public: Yes +*/ +``` + +### 5.3 Removing stats via a function + +Removing a stat is as simple as adding one, call `ace_arsenal_fnc_removeStat` + +Stats IDs are unique, IDs are generated as follows: + +`Class + side + tab` + +For example: `testClassL03` +- Class: `testClass` +- Side: `L` for the left panel +- Tab: `03` for the 3rd tab + +For config added stats the classname is used, for function added ones the string provided is used. + +```cpp +/* + * Author: Alganthe + * Remove a stat from ACE Arsenal. + * + * Arguments: + * 0: Array of IDs (ARRAY) + * + * Return Value: + * None + * + * Example: + * [["scopeStatL00","scopeStatL01","scopeStatL02","scopeStatR07"]] call ace_arsenal_fnc_removeStat; + * + * Public: Yes +*/ +``` + +#### 6.0 Eventhandlers + +All are local. + +| Name | Arguments | +| ------------- | ------------- | +| ace_arsenal_displayOpened | Arsenal display (DISPLAY) | +| ace_arsenal_displayClosed | None | +| ace_arsenal_leftPanelFilled | Arsenal display (DISPLAY), current left panel IDC (SCALAR), current right panel IDC (SCALAR) | +| ace_arsenal_rightPanelFilled | Arsenal display (DISPLAY), current left panel IDC (SCALAR), current right panel IDC (SCALAR) | +| ace_arsenal_onLoadoutSave | Loadout index (SCALAR), [loadout name (STRING), loadout data (ARRAY)] | +| ace_arsenal_onLoadoutLoad | loadout data (ARRAY), loadout name (STRING) | +| ace_arsenal_loadoutShared | Loadouts list listnBox control (CONTROL),, [loadout author (STRING), loadout name (STRING), loadout data (ARRAY)] | +| ace_arsenal_loadoutUnshared | Loadouts list listnBox control (CONTROL), loadout name (STRING) | +| ace_arsenal_cargoChanged | Arsenal display (DISPLAY), item (STRING), add or remove (BOOL), shiftState (BOOL) | +| ace_arsenal_loadoutImported | Arsenal display (DISPLAY), (import list (BOOL) | +| ace_arsenal_loadoutExported | Arsenal display (DISPLAY), export list (BOOL) | From e7710d719b1501d926f9ef6ac623bbaacd577389 Mon Sep 17 00:00:00 2001 From: Josuan Albin Date: Mon, 23 Apr 2018 18:47:41 +0200 Subject: [PATCH 105/235] Add ace hearing support to the tank DLC helmet (#6296) --- addons/hearing/CfgWeapons.hpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/addons/hearing/CfgWeapons.hpp b/addons/hearing/CfgWeapons.hpp index cba35e403e..6920e2691b 100644 --- a/addons/hearing/CfgWeapons.hpp +++ b/addons/hearing/CfgWeapons.hpp @@ -68,4 +68,8 @@ class CfgWeapons { HEARING_PROTECTION_PELTOR }; + class H_Tank_base_F; + class H_Tank_black_F: H_Tank_base_F { + HEARING_PROTECTION_VICCREW + }; }; From 87c3a7a334e471d62b7dd17d6df95e46323d5b5f Mon Sep 17 00:00:00 2001 From: mharis001 <34453221+mharis001@users.noreply.github.com> Date: Tue, 24 Apr 2018 13:46:59 -0400 Subject: [PATCH 106/235] Zeus - Improve Editable Objects module and Cleanup (#6294) * Improve Update Editable Objects ui and add icon * Cleanup and remove broken attribute position * Use QQGVAR --- addons/zeus/CfgVehicles.hpp | 1 + addons/zeus/XEH_PREP.hpp | 1 - addons/zeus/XEH_postInit.sqf | 2 +- .../functions/fnc_ui_attributePosition.sqf | 60 --------- .../zeus/functions/fnc_ui_attributeRadius.sqf | 10 +- addons/zeus/functions/fnc_ui_defendArea.sqf | 28 ++-- .../zeus/functions/fnc_ui_editableObjects.sqf | 40 +++--- addons/zeus/functions/fnc_ui_patrolArea.sqf | 28 ++-- addons/zeus/functions/fnc_ui_searchArea.sqf | 32 +++-- .../zeus/functions/fnc_ui_suicideBomber.sqf | 2 +- addons/zeus/stringtable.xml | 87 +++++-------- .../Icon_Module_Zeus_Editable_Objects_ca.paa | Bin 0 -> 5625 bytes addons/zeus/ui/RscAttributes.hpp | 120 +++++++----------- 13 files changed, 143 insertions(+), 268 deletions(-) delete mode 100644 addons/zeus/functions/fnc_ui_attributePosition.sqf create mode 100644 addons/zeus/ui/Icon_Module_Zeus_Editable_Objects_ca.paa diff --git a/addons/zeus/CfgVehicles.hpp b/addons/zeus/CfgVehicles.hpp index 63d221c1e3..74095cb4a2 100644 --- a/addons/zeus/CfgVehicles.hpp +++ b/addons/zeus/CfgVehicles.hpp @@ -159,6 +159,7 @@ class CfgVehicles { category = QGVAR(Utility); displayName = CSTRING(ModuleEditableObjects_DisplayName); curatorInfoType = QGVAR(RscEditableObjects); + icon = QPATHTOF(ui\Icon_Module_Zeus_Editable_Objects_ca.paa); }; class GVAR(moduleGlobalSetSkill): GVAR(moduleBase) { category = QGVAR(AI); diff --git a/addons/zeus/XEH_PREP.hpp b/addons/zeus/XEH_PREP.hpp index 4fa21ff340..910b0db4d1 100644 --- a/addons/zeus/XEH_PREP.hpp +++ b/addons/zeus/XEH_PREP.hpp @@ -41,7 +41,6 @@ PREP(moduleUnGarrison); PREP(moduleZeusSettings); PREP(showMessage); PREP(ui_attributeCargo); -//PREP(ui_attributePosition); PREP(ui_attributeRadius); PREP(ui_defendArea); PREP(ui_garrison); diff --git a/addons/zeus/XEH_postInit.sqf b/addons/zeus/XEH_postInit.sqf index adf3d75a9b..2294e3a454 100644 --- a/addons/zeus/XEH_postInit.sqf +++ b/addons/zeus/XEH_postInit.sqf @@ -20,6 +20,7 @@ QGVAR(GlobalSkillAI) addPublicVariableEventHandler FUNC(moduleGlobalSetSkill); // Editable object commands must be ran on server, this events are used in the respective module if (isServer) then { [QGVAR(equipFries), EFUNC(fastroping,equipFRIES)] call CBA_fnc_addEventHandler; + [QGVAR(addObjects), { params ["_objects", ["_curator", objNull]]; @@ -29,7 +30,6 @@ if (isServer) then { _x addCuratorEditableObjects [_objects, true]; } forEach allCurators; }] call CBA_fnc_addEventHandler; - [QGVAR(removeObjects), { params ["_objects", ["_curator", objNull]]; diff --git a/addons/zeus/functions/fnc_ui_attributePosition.sqf b/addons/zeus/functions/fnc_ui_attributePosition.sqf deleted file mode 100644 index 6143a7bf21..0000000000 --- a/addons/zeus/functions/fnc_ui_attributePosition.sqf +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Author: SilentSpike - * Initalises the `position` zeus module attribute - * - * Arguments: - * 0: position controls group - * - * Return Value: - * None - * - * Example: - * [CONTROL] call ace_zeus_fnc_ui_attributePosition - * - * Public: No - */ -#include "script_component.hpp" - -//Generic Init: -params ["_control"]; -private _display = ctrlParent _control; -private _logic = GETMVAR(BIS_fnc_initCuratorAttributes_target,objNull); - -_control ctrlRemoveAllEventHandlers "setFocus"; - -//Specific on-load stuff: -private _map = _control controlsGroupCtrl 26469; - -// Centre map on the logic initially -_map ctrlMapAnimAdd [0, ctrlMapScale _map, _logic]; -ctrlMapAnimCommit _map; - -private _fnc_onDraw = { - params ["_map"]; - - private _display = ctrlParent _map; - private _pos = GETVAR(_display,GVAR(position),[]); - private _radius = GETVAR(_display,GVAR(radius),0); - - if !(_pos isEqualTo []) then { - // Works alongside radius attribute - if (_radius == 0) then { - _map drawIcon ["\A3\ui_f\data\map\markers\military\dot_CA.paa", [0,0,0,1], _pos, 19, 19, 0, "", 0, 0]; - } else { - _map drawEllipse [_pos, _radius, _radius, 0, [0,0,0,1], ""]; - }; - }; -}; - -private _fnc_onMapClick = { - params ["_map","_button"]; - - if (_button == 0) then { - private _display = ctrlParent _map; - SETVAR(_display,GVAR(position),_pos); - }; -}; - -SETVAR(_display,GVAR(position),getPos _logic); -_map ctrlAddEventHandler ["draw",_fnc_onDraw]; -_map ctrlAddEventHandler ["mouseButtonDown",_fnc_onMapClick]; diff --git a/addons/zeus/functions/fnc_ui_attributeRadius.sqf b/addons/zeus/functions/fnc_ui_attributeRadius.sqf index 4a24a21349..3fccb19fab 100644 --- a/addons/zeus/functions/fnc_ui_attributeRadius.sqf +++ b/addons/zeus/functions/fnc_ui_attributeRadius.sqf @@ -1,6 +1,6 @@ /* * Author: SilentSpike - * Initalises the `radius` zeus module attribute + * Initializes the "Radius" Zeus module attribute. * * Arguments: * 0: radius controls group @@ -15,13 +15,13 @@ */ #include "script_component.hpp" -//Generic Init: +// Generic init params ["_control"]; private _display = ctrlParent _control; -_control ctrlRemoveAllEventHandlers "setFocus"; +_control ctrlRemoveAllEventHandlers "SetFocus"; -//Specific on-load stuff: +// Specific onLoad stuff private _edit = _control controlsGroupCtrl 26467; _edit ctrlSetText "100"; @@ -44,4 +44,4 @@ private _fnc_onKeyUp = { }; [_display] call _fnc_onKeyUp; -_display displayAddEventHandler ["keyUp", _fnc_onKeyUp]; +_display displayAddEventHandler ["KeyUp", _fnc_onKeyUp]; diff --git a/addons/zeus/functions/fnc_ui_defendArea.sqf b/addons/zeus/functions/fnc_ui_defendArea.sqf index e5fc26ef4e..cd3153d628 100644 --- a/addons/zeus/functions/fnc_ui_defendArea.sqf +++ b/addons/zeus/functions/fnc_ui_defendArea.sqf @@ -1,6 +1,6 @@ /* * Author: SilentSpike - * Initalises the `defend area` zeus module display + * Initializes the "Defend Area" Zeus module display. * * Arguments: * 0: dummy controls group @@ -15,14 +15,14 @@ */ #include "script_component.hpp" -//Generic Init: +// Generic init params ["_control"]; private _display = ctrlParent _control; private _logic = GETMVAR(BIS_fnc_initCuratorAttributes_target,objNull); -_control ctrlRemoveAllEventHandlers "setFocus"; +_control ctrlRemoveAllEventHandlers "SetFocus"; -//Validate the module target: +// Validate module target private _unit = effectiveCommander (attachedTo _logic); scopeName "Main"; @@ -47,30 +47,28 @@ switch (false) do { }; private _fnc_onUnload = { - private _logic = GETMVAR(BIS_fnc_initCuratorAttributes_target,objnull); + private _logic = GETMVAR(BIS_fnc_initCuratorAttributes_target,objNull); if (isNull _logic) exitWith {}; - if (_this select 1 == 2) then { - deleteVehicle _logic; - }; + deleteVehicle _logic; }; private _fnc_onConfirm = { params [["_ctrlButtonOK", controlNull, [controlNull]]]; - private _display = ctrlparent _ctrlButtonOK; + private _display = ctrlParent _ctrlButtonOK; if (isNull _display) exitWith {}; - private _logic = GETMVAR(BIS_fnc_initCuratorAttributes_target,objnull); + private _logic = GETMVAR(BIS_fnc_initCuratorAttributes_target,objNull); if (isNull _logic) exitWith {}; private _unit = effectiveCommander (attachedTo _logic); - private _radius = GETVAR(_display,GVAR(radius),50); - private _position = GETVAR(_display,GVAR(position),getPos _logic); + private _radius = GETVAR(_display,GVAR(radius),100); + private _position = getPos _logic; - [QGVAR(moduleDefendArea), [_unit,_position,_radius], _unit] call CBA_fnc_targetEvent; + [QGVAR(moduleDefendArea), [_unit, _position, _radius], _unit] call CBA_fnc_targetEvent; deleteVehicle _logic; }; -_display displayAddEventHandler ["unload", _fnc_onUnload]; -_control ctrlAddEventHandler ["buttonClick", _fnc_onConfirm]; +_display displayAddEventHandler ["Unload", _fnc_onUnload]; +_control ctrlAddEventHandler ["ButtonClick", _fnc_onConfirm]; diff --git a/addons/zeus/functions/fnc_ui_editableObjects.sqf b/addons/zeus/functions/fnc_ui_editableObjects.sqf index 6b1c30ad8c..7f817e6b90 100644 --- a/addons/zeus/functions/fnc_ui_editableObjects.sqf +++ b/addons/zeus/functions/fnc_ui_editableObjects.sqf @@ -1,6 +1,6 @@ /* - * Author: Fisher, SilentSpike - * Updated all/local curator with objects in the module radius. + * Author: Fisher, SilentSpike, mharis001 + * Initializes the "Editable Objects" Zeus module display. * * Arguments: * 0: editableObjects controls group @@ -17,24 +17,23 @@ params ["_control"]; -//Generic Init: +// Generic Init private _display = ctrlParent _control; private _ctrlButtonOK = _display displayCtrl 1; //IDC_OK private _logic = GETMVAR(BIS_fnc_initCuratorAttributes_target,objNull); -TRACE_1("logicObject",_logic); +TRACE_1("Logic Object",_logic); -_control ctrlRemoveAllEventHandlers "setFocus"; +_control ctrlRemoveAllEventHandlers "SetFocus"; -//Specific on-load stuff: -(_display displayCtrl 16188) cbSetChecked true; +// Specific onLoad stuff +(_display displayCtrl 19181) lbSetCurSel 1; +(_display displayCtrl 19182) lbSetCurSel 1; private _fnc_onUnload = { private _logic = GETMVAR(BIS_fnc_initCuratorAttributes_target,objNull); if (isNull _logic) exitWith {}; - if (_this select 1 == 2) then { - deleteVehicle _logic; - }; + deleteVehicle _logic; }; private _fnc_onConfirm = { @@ -46,22 +45,19 @@ private _fnc_onConfirm = { private _logic = GETMVAR(BIS_fnc_initCuratorAttributes_target,objNull); if (isNull _logic) exitWith {}; - private _radius = GETVAR(_display,GVAR(radius),50); - private _position = GETVAR(_display,GVAR(position),getPos _logic); - private _allCurators = cbChecked (_display displayCtrl 16188); - private _removeObjects = cbChecked (_display displayCtrl 16189); + private _radius = GETVAR(_display,GVAR(radius),100); + private _editingMode = lbCurSel (_display displayCtrl 19181) > 0; + private _allCurators = [getAssignedCuratorLogic player, objNull] select (lbCurSel (_display displayCtrl 19182)); + private _objects = nearestObjects [getPos _logic, ["All"], _radius]; - private _objects = nearestObjects [_position, ["All"], _radius]; - private _localCurator = [getAssignedCuratorLogic player, objNull] select _allCurators; - - if (_removeObjects) then { - [QGVAR(removeObjects), [_objects, _localCurator]] call CBA_fnc_serverEvent; + if (_editingMode) then { + [QGVAR(addObjects), [_objects, _allCurators]] call CBA_fnc_serverEvent; } else { - [QGVAR(addObjects), [_objects, _localCurator]] call CBA_fnc_serverEvent; + [QGVAR(removeObjects), [_objects, _allCurators]] call CBA_fnc_serverEvent; }; deleteVehicle _logic; }; -_display displayAddEventHandler ["unload", _fnc_onUnload]; -_ctrlButtonOK ctrlAddEventHandler ["buttonClick", _fnc_onConfirm]; +_display displayAddEventHandler ["Unload", _fnc_onUnload]; +_ctrlButtonOK ctrlAddEventHandler ["ButtonClick", _fnc_onConfirm]; diff --git a/addons/zeus/functions/fnc_ui_patrolArea.sqf b/addons/zeus/functions/fnc_ui_patrolArea.sqf index 1ce329047d..89947afb22 100644 --- a/addons/zeus/functions/fnc_ui_patrolArea.sqf +++ b/addons/zeus/functions/fnc_ui_patrolArea.sqf @@ -1,6 +1,6 @@ /* * Author: SilentSpike - * Initalises the `patrol area` zeus module display + * Initializes the "Patrol Area" Zeus module display. * * Arguments: * 0: dummy controls group @@ -15,14 +15,14 @@ */ #include "script_component.hpp" -//Generic Init: +// Generic init params ["_control"]; private _display = ctrlParent _control; private _logic = GETMVAR(BIS_fnc_initCuratorAttributes_target,objNull); -_control ctrlRemoveAllEventHandlers "setFocus"; +_control ctrlRemoveAllEventHandlers "SetFocus"; -//Validate the module target: +// Validate module target private _unit = effectiveCommander (attachedTo _logic); scopeName "Main"; @@ -47,30 +47,28 @@ switch (false) do { }; private _fnc_onUnload = { - private _logic = GETMVAR(BIS_fnc_initCuratorAttributes_target,objnull); + private _logic = GETMVAR(BIS_fnc_initCuratorAttributes_target,objNull); if (isNull _logic) exitWith {}; - if (_this select 1 == 2) then { - deleteVehicle _logic; - }; + deleteVehicle _logic; }; private _fnc_onConfirm = { params [["_ctrlButtonOK", controlNull, [controlNull]]]; - private _display = ctrlparent _ctrlButtonOK; + private _display = ctrlParent _ctrlButtonOK; if (isNull _display) exitWith {}; - private _logic = GETMVAR(BIS_fnc_initCuratorAttributes_target,objnull); + private _logic = GETMVAR(BIS_fnc_initCuratorAttributes_target,objNull); if (isNull _logic) exitWith {}; private _unit = effectiveCommander (attachedTo _logic); - private _radius = GETVAR(_display,GVAR(radius),50); - private _position = GETVAR(_display,GVAR(position),getPos _logic); + private _radius = GETVAR(_display,GVAR(radius),100); + private _position = getPos _logic; - [QGVAR(modulePatrolArea), [_unit,_position,_radius,5], _unit] call CBA_fnc_targetEvent; + [QGVAR(modulePatrolArea), [_unit, _position, _radius, 5], _unit] call CBA_fnc_targetEvent; deleteVehicle _logic; }; -_display displayAddEventHandler ["unload", _fnc_onUnload]; -_control ctrlAddEventHandler ["buttonClick", _fnc_onConfirm]; +_display displayAddEventHandler ["Unload", _fnc_onUnload]; +_control ctrlAddEventHandler ["ButtonClick", _fnc_onConfirm]; diff --git a/addons/zeus/functions/fnc_ui_searchArea.sqf b/addons/zeus/functions/fnc_ui_searchArea.sqf index 9745be7166..197f5c835f 100644 --- a/addons/zeus/functions/fnc_ui_searchArea.sqf +++ b/addons/zeus/functions/fnc_ui_searchArea.sqf @@ -1,6 +1,6 @@ /* * Author: SilentSpike - * Initalises the `search area` zeus module display + * Initializes the "Search Area" Zeus module display. * * Arguments: * 0: dummy controls group @@ -15,14 +15,14 @@ */ #include "script_component.hpp" -//Generic Init: +// Generic init params ["_control"]; private _display = ctrlParent _control; private _logic = GETMVAR(BIS_fnc_initCuratorAttributes_target,objNull); -_control ctrlRemoveAllEventHandlers "setFocus"; +_control ctrlRemoveAllEventHandlers "SetFocus"; -//Validate the module target: +// Validate module target private _unit = effectiveCommander (attachedTo _logic); scopeName "Main"; @@ -47,36 +47,34 @@ switch (false) do { }; private _fnc_onUnload = { - private _logic = GETMVAR(BIS_fnc_initCuratorAttributes_target,objnull); + private _logic = GETMVAR(BIS_fnc_initCuratorAttributes_target,objNull); if (isNull _logic) exitWith {}; - if (_this select 1 == 2) then { - deleteVehicle _logic; - }; + deleteVehicle _logic; }; private _fnc_onConfirm = { params [["_ctrlButtonOK", controlNull, [controlNull]]]; - private _display = ctrlparent _ctrlButtonOK; + private _display = ctrlParent _ctrlButtonOK; if (isNull _display) exitWith {}; - private _logic = GETMVAR(BIS_fnc_initCuratorAttributes_target,objnull); + private _logic = GETMVAR(BIS_fnc_initCuratorAttributes_target,objNull); if (isNull _logic) exitWith {}; private _unit = effectiveCommander (attachedTo _logic); - private _radius = GETVAR(_display,GVAR(radius),50); - private _position = GETVAR(_display,GVAR(position),getPos _logic); - private _marker = QGVAR(ModuleSearchArea) + str(_unit); + private _radius = GETVAR(_display,GVAR(radius),100); + private _position = getPos _logic; + private _marker = QGVAR(ModuleSearchArea) + str _unit; createMarker [_marker, _position]; _marker setMarkerAlpha 0; _marker setMarkerShape "ELLIPSE"; - _marker setMarkerSize [_radius,_radius]; + _marker setMarkerSize [_radius, _radius]; - [QGVAR(moduleSearchArea), [_unit,_marker], _unit] call CBA_fnc_targetEvent; + [QGVAR(moduleSearchArea), [_unit, _marker], _unit] call CBA_fnc_targetEvent; deleteVehicle _logic; }; -_display displayAddEventHandler ["unload", _fnc_onUnload]; -_control ctrlAddEventHandler ["buttonClick", _fnc_onConfirm]; +_display displayAddEventHandler ["Unload", _fnc_onUnload]; +_control ctrlAddEventHandler ["ButtonClick", _fnc_onConfirm]; diff --git a/addons/zeus/functions/fnc_ui_suicideBomber.sqf b/addons/zeus/functions/fnc_ui_suicideBomber.sqf index 13d61ddc63..6ee5c6b0d8 100644 --- a/addons/zeus/functions/fnc_ui_suicideBomber.sqf +++ b/addons/zeus/functions/fnc_ui_suicideBomber.sqf @@ -1,6 +1,6 @@ /* * Author: mharis001 - * Initalizes the "Suicide Bomber" Zeus module display. + * Initializes the "Suicide Bomber" Zeus module display. * * Arguments: * 0: suicideBomber controls group diff --git a/addons/zeus/stringtable.xml b/addons/zeus/stringtable.xml index d1daeab775..854d4fad83 100644 --- a/addons/zeus/stringtable.xml +++ b/addons/zeus/stringtable.xml @@ -273,29 +273,16 @@ 更新可编辑的物件 更新可編輯的物件 - - All Curators - Alle Zeus' - 全キュレーター - 모든 큐레이터 - Wszyscy kuratorzy - Tous curateurs - Tutti i Moderatori - 所有编辑者 - 所有編輯者 + + Editing Mode - - Apply changes to all curators - Änderungen bei allen Zeus' aktualisieren - 全キュレーターへ変更を適用 - 모든 큐레이터에 변화를 적용합니다 - Zatwierdź zmiany dla wszystkich kuratorów - Applique les changements à tous les curateurs - Applica i cambiamenti a tutti i moderatori - 确认变更给所有编辑者 - 確認變更給所有編輯者 + + Add or remove editable objects from Zeus - + + Add Objects + + Remove Objects Entferne Objekte オブジェクトの削除 @@ -306,16 +293,27 @@ 移除物件 移除物件 - - Remove existing instead of adding new - Entfernt Bestehendes, statt Neues hinzuzufügen - 新しく追加するために削除します - 물체를 삭제합니다 - Usuń istniejące zamiast dodawać nowe - Enlève les objets existants au lieu d'en ajouter de nouveaux - Rimuove gli esistenti e li sostituisce con i nuovi - 移除已存在的物件来新增新的物件 - 移除已存在的物件來新增新的物件 + + All Curators + Alle Zeus' + 全キュレーター + 모든 큐레이터 + Wszyscy kuratorzy + Tous curateurs + Tutti i Moderatori + 所有编辑者 + 所有編輯者 + + + Apply changes to all curators + Änderungen bei allen Zeus' aktualisieren + 全キュレーターへ変更を適用 + 모든 큐레이터에 변화를 적용합니다 + Zatwierdź zmiany dla wszystkich kuratorów + Applique les changements à tous les curateurs + Applica i cambiamenti a tutti i moderatori + 确认变更给所有编辑者 + 確認變更給所有編輯者 Global AI Skill @@ -963,31 +961,6 @@ 货物: 貨物: - - Task Position - Position de la tâche - Местоположение задания - Pozice úkolu - タスク位置 - Pozycja zadania - Position der Aufgabe - 작업 위치 - Posizione Incarico - 目标位置 - 目標位置 - - - Select a position to perform the task at - Sélectionne une position où accomplir la tâche - Выбрать местоположение для выполнения задания - 次の選択位置をタスクとして実行 - Wybierz pozycję na której wykonać zadanie - Wähle eine Position, an der die Aufgabe ausgeführt werden soll - 작업을 할 위치를 선택하십시요 - Seleziona una posizione per eseguire l'incarico - 选择要执行目标的位置 - 選擇要執行目標的位置 - Task Radius Rayon de la tâche @@ -1000,7 +973,7 @@ 目标半径 目標半徑 - + Radius to perform the task within Rayon dans lequel la tâche prend place Радиус выполнения задания diff --git a/addons/zeus/ui/Icon_Module_Zeus_Editable_Objects_ca.paa b/addons/zeus/ui/Icon_Module_Zeus_Editable_Objects_ca.paa new file mode 100644 index 0000000000000000000000000000000000000000..89828a42c5d6a29ebcd575116b65dab5cd4eebbe GIT binary patch literal 5625 zcmeHLUrbw77(e~9g0!@Zp+r~(M%9-g!I3eClcJ`;Cevhg;^M;CCOXHca~s)%q}RC( zjFWEYlsz<<_^|l2g7YrMVH-&pD(-~{Wkp#6i6(Aij0a@ga{SJ{J?FNUHna;PnepTn z?(d#+zTf%&o^$UCTv1W}>I)Uy%e4q0K@c{IxTd_CU<{4mit?9i1gqdj@HU(6Wh>ls z@M}p!s4WAbvkxOQ3ctjf6niaK4!W2<^!xaNK+972Bf9=debQ=d zjbA|sP<@}W;VC>T`zP53_P7wtr2WeIGLBDw1FAe`fs4vpxwomYG|V6Rcgm(ZXD^U$ z(I1dM?G_+eE{x1pqew>iUqNc3BjramP~?){m2t=bWVO-rKQjK6`iG`7d5`7vIfTAR z77rkn3%3{Gi2S(U80wEn@X7Is75Uf(^AH^jT1|Mg#r z`2WxQKhu*M@R(V>T@atk9RH8L$k&zfjyaldk8kK|9w`%QDNZt6ofK}#`$6n{j2{2m zP4koUO^x|fUe-a_+?>HqidCe(SIPUqa{Hg0&$MvS_0TFoab8LB{4-v`NwKQrk~zSq zM)6;C{q-O}{5+FhJL|%KIHsw*l=^R)N4#O@jb--#V)`rX@kH^rLBChXq3hQ&|3%kd z8Q&?J_&wQS=MDX9_*49kBS__~+C7vb%n&3o$Bs9;GKqnXSMn`}6V;!xQoglsc$!DB zaD_aNR{s{`H*Ringr9#>93VODJP7(no<9ue4&f$^$i{}Mi2g*eevQX@*X5k0@>bT9 zyE%6LRqq5S$op|x!6op2u$PXP^}9Fy<@waI(vyYq?@xd7IzGbwnp)HQ{%-j^YgUsQ({2G&K|mt*py^FM^PbX&H_+kB$@nH-6yx>CAcUCsK&@uK=5r@OzZ$8si&IHHRLOYrC;a~J3+|q$^6C$ZQeI)t1R#&jMutCHe$Jx`!r$7}NgX&m* zW;N^~Kg__#FQn<^-4?EZnV}a|sjq)@hNbDxq?&G3KZ$Yn7)fJ|&p6>T-tbYitv`1(^`A8KGjPr@0!{MqB;*9!^jNAVW}I~oRv8$hrs86_j2u(aj= zbnS2@%l52upWXa*?=BO@?n&aSuaV)<(?uOn{j$dh4VbNSyrAQ92&=SEQNf-^G7gQO NJMwuJT`dfS_AjLzx)%Td literal 0 HcmV?d00001 diff --git a/addons/zeus/ui/RscAttributes.hpp b/addons/zeus/ui/RscAttributes.hpp index 8345904ca9..8af743b897 100644 --- a/addons/zeus/ui/RscAttributes.hpp +++ b/addons/zeus/ui/RscAttributes.hpp @@ -29,67 +29,38 @@ class GVAR(AttributeRadius): RscControlsGroupNoScrollbars { x = 0; y = 0; w = W_PART(26); - h = H_PART(1.2); + h = H_PART(1.1); class controls { - class Title1: RscText { + class Label: RscText { idc = -1; text = CSTRING(AttributeRadius); - toolTip = CSTRING(AttributeRadius_desc); + tooltip = CSTRING(AttributeRadius_Tooltip); x = 0; y = H_PART(0.1); w = W_PART(10); h = H_PART(1); - colorBackground[] = {0,0,0,0.5}; + colorBackground[] = {0, 0, 0, 0.5}; }; class Radius: RscEdit { idc = 26467; x = W_PART(10.1); y = H_PART(0.1); - w = W_PART(15.8); + w = W_PART(15.9); h = H_PART(1); autocomplete = ""; }; }; }; -class GVAR(AttributePosition): RscControlsGroupNoScrollbars { - onSetFocus = QUOTE(_this call FUNC(ui_attributePosition)); - idc = 26468; - x = 0; - y = 0; - w = W_PART(26); - h = H_PART(26); - class controls { - class Title1: RscText { - idc = -1; - text = CSTRING(AttributePosition); - toolTip = CSTRING(AttributePosition_desc); - x = 0; - y = 0; - w = W_PART(26); - h = H_PART(1); - colorBackground[] = {0,0,0,0.5}; - }; - class Position: RscMapControl { - idc = 26469; - x = W_PART(0.5); - y = H_PART(1.1); - w = W_PART(25); - h = H_PART(24.8); - }; - }; -}; - class GVAR(RscDefendArea): RscDisplayAttributes { - onLoad = QUOTE([ARR_3('onLoad', _this, QUOTE(QGVAR(RscDefendArea)))] call FUNC(zeusAttributes)); - onUnload = QUOTE([ARR_3('onUnload', _this, QUOTE(QGVAR(RscDefendArea)))] call FUNC(zeusAttributes)); + onLoad = QUOTE([ARR_3('onLoad', _this, QQGVAR(RscDefendArea))] call FUNC(zeusAttributes)); + onUnload = QUOTE([ARR_3('onUnload', _this, QQGVAR(RscDefendArea))] call FUNC(zeusAttributes)); class Controls: Controls { class Background: Background {}; class Title: Title {}; class Content: Content { class Controls { class radius: GVAR(AttributeRadius) {}; - //class position: GVAR(AttributePosition) {}; }; }; class ButtonOK: ButtonOK { @@ -108,40 +79,43 @@ class GVAR(RscEditableObjects): RscDisplayAttributes { class Content: Content { class Controls { class radius: GVAR(AttributeRadius) {}; - //class position: GVAR(AttributePosition) {}; class editableObjects: RscControlsGroupNoScrollbars { onSetFocus = QUOTE(_this call FUNC(ui_editableObjects)); - idc = 26422; + idc = 19180; x = 0; y = 0; - w = W_PART(11.1); - h = H_PART(2.5); + w = W_PART(26); + h = H_PART(2.1); class controls { - class Label: RscText { + class EditingModeLabel: RscText { idc = -1; - text = CSTRING(ModuleEditableObjects_curators); - toolTip = CSTRING(ModuleEditableObjects_curators_desc); + text = CSTRING(ModuleEditableObjects_EditingMode); + tooltip = CSTRING(ModuleEditableObjects_EditingMode_Tooltip); x = 0; y = 0; w = W_PART(10); h = H_PART(1); - colorBackground[] = {0,0,0,0.5}; + colorBackground[] = {0, 0, 0, 0.5}; }; - class AllCurators: RscCheckBox { - idc = 16188; + class EditingMode: ctrlToolbox { + idc = 19181; x = W_PART(10.1); y = 0; - w = W_PART(1); + w = W_PART(15.9); h = H_PART(1); + rows = 1; + columns = 2; + strings[] = {CSTRING(ModuleEditableObjects_RemoveObjects), CSTRING(ModuleEditableObjects_AddObjects)}; }; - class Label2: Label { - text = CSTRING(ModuleEditableObjects_removal); - toolTip = CSTRING(ModuleEditableObjects_removal_desc); + class AllCuratorsLabel: EditingModeLabel { + text = CSTRING(ModuleEditableObjects_AllCurators); + tooltip = CSTRING(ModuleEditableObjects_AllCurators_Tooltip); y = H_PART(1.1); }; - class EditingMode: AllCurators { - idc = 16189; + class AllCurators: EditingMode { + idc = 19182; y = H_PART(1.1); + strings[] = {ECSTRING(common,No), ECSTRING(common,Yes)}; }; }; }; @@ -153,8 +127,8 @@ class GVAR(RscEditableObjects): RscDisplayAttributes { }; class GVAR(RscGlobalSetSkill): RscDisplayAttributes { - onLoad = QUOTE([ARR_3('onLoad', _this, QUOTE(QGVAR(RscGlobalSetSkill)))] call FUNC(zeusAttributes)); - onUnload = QUOTE([ARR_3('onUnload', _this, QUOTE(QGVAR(RscGlobalSetSkill)))] call FUNC(zeusAttributes)); + onLoad = QUOTE([ARR_3('onLoad', _this, QQGVAR(RscGlobalSetSkill))] call FUNC(zeusAttributes)); + onUnload = QUOTE([ARR_3('onUnload', _this, QQGVAR(RscGlobalSetSkill))] call FUNC(zeusAttributes)); class Controls: Controls { class Background: Background {}; class Title: Title {}; @@ -248,8 +222,8 @@ class GVAR(RscGlobalSetSkill): RscDisplayAttributes { }; class GVAR(RscGroupSide): RscDisplayAttributes { - onLoad = QUOTE([ARR_3('onLoad', _this, QUOTE(QGVAR(RscGroupSide)))] call FUNC(zeusAttributes)); - onUnload = QUOTE([ARR_3('onUnload', _this, QUOTE(QGVAR(RscGroupSide)))] call FUNC(zeusAttributes)); + onLoad = QUOTE([ARR_3('onLoad', _this, QQGVAR(RscGroupSide))] call FUNC(zeusAttributes)); + onUnload = QUOTE([ARR_3('onUnload', _this, QQGVAR(RscGroupSide))] call FUNC(zeusAttributes)); class Controls: Controls { class Background: Background {}; class Title: Title {}; @@ -326,15 +300,14 @@ class GVAR(RscGroupSide): RscDisplayAttributes { }; class GVAR(RscPatrolArea): RscDisplayAttributes { - onLoad = QUOTE([ARR_3('onLoad', _this, QUOTE(QGVAR(RscPatrolArea)))] call FUNC(zeusAttributes)); - onUnload = QUOTE([ARR_3('onUnload', _this, QUOTE(QGVAR(RscPatrolArea)))] call FUNC(zeusAttributes)); + onLoad = QUOTE([ARR_3('onLoad', _this, QQGVAR(RscPatrolArea))] call FUNC(zeusAttributes)); + onUnload = QUOTE([ARR_3('onUnload', _this, QQGVAR(RscPatrolArea))] call FUNC(zeusAttributes)); class Controls: Controls { class Background: Background {}; class Title: Title {}; class Content: Content { class Controls { class radius: GVAR(AttributeRadius) {}; - //class position: GVAR(AttributePosition) {}; }; }; class ButtonOK: ButtonOK { @@ -345,15 +318,14 @@ class GVAR(RscPatrolArea): RscDisplayAttributes { }; class GVAR(RscSearchArea): RscDisplayAttributes { - onLoad = QUOTE([ARR_3('onLoad', _this, QUOTE(QGVAR(RscSearchArea)))] call FUNC(zeusAttributes)); - onUnload = QUOTE([ARR_3('onUnload', _this, QUOTE(QGVAR(RscSearchArea)))] call FUNC(zeusAttributes)); + onLoad = QUOTE([ARR_3('onLoad', _this, QQGVAR(RscSearchArea))] call FUNC(zeusAttributes)); + onUnload = QUOTE([ARR_3('onUnload', _this, QQGVAR(RscSearchArea))] call FUNC(zeusAttributes)); class Controls: Controls { class Background: Background {}; class Title: Title {}; class Content: Content { class Controls { class radius: GVAR(AttributeRadius) {}; - //class position: GVAR(AttributePosition) {}; }; }; class ButtonOK: ButtonOK { @@ -364,8 +336,8 @@ class GVAR(RscSearchArea): RscDisplayAttributes { }; class GVAR(RscTeleportPlayers): RscDisplayAttributes { - onLoad = QUOTE([ARR_3('onLoad', _this, QUOTE(QGVAR(RscTeleportPlayers)))] call FUNC(zeusAttributes)); - onUnload = QUOTE([ARR_3('onUnload', _this, QUOTE(QGVAR(RscTeleportPlayers)))] call FUNC(zeusAttributes)); + onLoad = QUOTE([ARR_3('onLoad', _this, QQGVAR(RscTeleportPlayers))] call FUNC(zeusAttributes)); + onUnload = QUOTE([ARR_3('onUnload', _this, QQGVAR(RscTeleportPlayers))] call FUNC(zeusAttributes)); class Controls: Controls { class Background: Background {}; class Title: Title {}; @@ -501,8 +473,8 @@ class RscDisplayAttributesVehicleEmpty: RscDisplayAttributes { }; class GVAR(RscGarrison): RscDisplayAttributes { - onLoad = QUOTE([ARR_3('onLoad', _this, QUOTE(QGVAR(RscGarrison)))] call FUNC(zeusAttributes)); - onUnload = QUOTE([ARR_3('onUnload', _this, QUOTE(QGVAR(RscGarrison)))] call FUNC(zeusAttributes)); + onLoad = QUOTE([ARR_3('onLoad', _this, QQGVAR(RscGarrison))] call FUNC(zeusAttributes)); + onUnload = QUOTE([ARR_3('onUnload', _this, QQGVAR(RscGarrison))] call FUNC(zeusAttributes)); class Controls: Controls { class Background: Background {}; class Title: Title {}; @@ -576,8 +548,8 @@ class GVAR(RscGarrison): RscDisplayAttributes { }; class GVAR(RscToggleNvg): RscDisplayAttributes { - onLoad = QUOTE([ARR_3('onLoad', _this, QUOTE(QGVAR(RscToggleNvg)))] call FUNC(zeusAttributes)); - onUnload = QUOTE([ARR_3('onUnload', _this, QUOTE(QGVAR(RscToggleNvg)))] call FUNC(zeusAttributes)); + onLoad = QUOTE([ARR_3('onLoad', _this, QQGVAR(RscToggleNvg))] call FUNC(zeusAttributes)); + onUnload = QUOTE([ARR_3('onUnload', _this, QQGVAR(RscToggleNvg))] call FUNC(zeusAttributes)); class Controls: Controls { class Background: Background {}; class Title: Title {}; @@ -634,8 +606,8 @@ class GVAR(RscToggleNvg): RscDisplayAttributes { }; class GVAR(RscToggleFlashlight): RscDisplayAttributes { - onLoad = QUOTE([ARR_3('onLoad', _this, QUOTE(QGVAR(RscToggleFlashlight)))] call FUNC(zeusAttributes)); - onUnload = QUOTE([ARR_3('onUnload', _this, QUOTE(QGVAR(RscToggleFlashlight)))] call FUNC(zeusAttributes)); + onLoad = QUOTE([ARR_3('onLoad', _this, QQGVAR(RscToggleFlashlight))] call FUNC(zeusAttributes)); + onUnload = QUOTE([ARR_3('onUnload', _this, QQGVAR(RscToggleFlashlight))] call FUNC(zeusAttributes)); class Controls: Controls { class Background: Background {}; class Title: Title {}; @@ -700,8 +672,8 @@ class GVAR(RscToggleFlashlight): RscDisplayAttributes { }; class GVAR(RscSetEngineer): RscDisplayAttributes { - onLoad = QUOTE([ARR_3('onLoad', _this, QUOTE(QGVAR(RscSetEngineer)))] call FUNC(zeusAttributes)); - onUnload = QUOTE([ARR_3('onUnload', _this, QUOTE(QGVAR(RscSetEngineer)))] call FUNC(zeusAttributes)); + onLoad = QUOTE([ARR_3('onLoad', _this, QQGVAR(RscSetEngineer))] call FUNC(zeusAttributes)); + onUnload = QUOTE([ARR_3('onUnload', _this, QQGVAR(RscSetEngineer))] call FUNC(zeusAttributes)); class Controls: Controls { class Background: Background {}; class Title: Title {}; @@ -745,8 +717,8 @@ class GVAR(RscSetEngineer): RscDisplayAttributes { }; class GVAR(RscSuicideBomber): RscDisplayAttributes { - onLoad = QUOTE([ARR_3('onLoad', _this, QUOTE(QGVAR(RscSuicideBomber)))] call FUNC(zeusAttributes)); - onUnload = QUOTE([ARR_3('onUnload', _this, QUOTE(QGVAR(RscSuicideBomber)))] call FUNC(zeusAttributes)); + onLoad = QUOTE([ARR_3('onLoad', _this, QQGVAR(RscSuicideBomber))] call FUNC(zeusAttributes)); + onUnload = QUOTE([ARR_3('onUnload', _this, QQGVAR(RscSuicideBomber))] call FUNC(zeusAttributes)); class Controls: Controls { class Background: Background {}; class Title: Title {}; From 7b6b1eadcd80fc8e3c5036d62747578911186957 Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Thu, 26 Apr 2018 10:04:00 -0500 Subject: [PATCH 107/235] Update coding-guidelines.md (#6303) * Update coding-guidelines.md * Update coding-guidelines.md --- docs/wiki/development/coding-guidelines.md | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) diff --git a/docs/wiki/development/coding-guidelines.md b/docs/wiki/development/coding-guidelines.md index 3e83c631cf..23ad2317f9 100644 --- a/docs/wiki/development/coding-guidelines.md +++ b/docs/wiki/development/coding-guidelines.md @@ -780,17 +780,14 @@ while {true} do { ``` ### 8.9 `waitUntil` -The `waitUntil` command shall not be used. Instead, make use of a per-frame handler: - +The `waitUntil` command shall not be used. Instead, make use of CBA's `CBA_fnc_waitUntilAndExecute` ```js [{ - params ["_args", "_id"]; - _args params ["_unit"]; - - if (_unit getvariable [QGVAR(myVariable), false]) exitwith { - [_id] call CBA_fnc_removePerFrameHandler; - - // Execute any code - }; -}, [_unit], 0] call CBA_fnc_addPerFrameHandler; + params ["_unit"]; + _unit getVariable [QGVAR(myVariable), false] +}, +{ + params ["_unit"]; + // Execute any code +}, [_unit]] call CBA_fnc_waitUntilAndExecute; ``` From 6814de0f3c6802df619580c68ef918f309c5bd34 Mon Sep 17 00:00:00 2001 From: Thomas Kooi Date: Thu, 26 Apr 2018 20:14:12 +0200 Subject: [PATCH 108/235] Upgrade grunt versions used for building docs static assets --- docs/js/footer.min.js.map | 2 +- docs/src/package-lock.json | 614 ++++++++++++++++++------------------- docs/src/package.json | 7 +- 3 files changed, 311 insertions(+), 312 deletions(-) diff --git a/docs/js/footer.min.js.map b/docs/js/footer.min.js.map index a97698868a..ae13990616 100644 --- a/docs/js/footer.min.js.map +++ b/docs/js/footer.min.js.map @@ -1 +1 @@ -{"version":3,"sources":["../src/js/vendor/modernizr/modernizr.custom.18747.js","../src/js/vendor/picturefill/picturefill.js","../src/js/vendor/jquery/jquery.min.js","../src/js/vendor/foundation/foundation.js","../src/js/vendor/foundation/foundation.topbar.js","../src/js/vendor/foundation/foundation.clearing.js","../src/js/vendor/slick/slick.js","../src/js/vendor/jekyll-toc/jekyll-toc.js","../src/js/core/utils.js","../src/js/components/analytics.js","../src/js/components/storage.js","../src/js/components/contentSearch.js","../src/js/app.js"],"names":["window","Modernizr","a","b","c","u","j","cssText","w","k","r","t","d","e","f","g","documentElement","h","i","createElement","style","m","toString","p","q","slice","s","hasOwnProperty","call","constructor","prototype","Function","bind","this","TypeError","arguments","apply","concat","Object","z","toLowerCase","push","addTest","className","l","getElementsByTagName","innerHTML","insertBefore","lastChild","firstChild","elements","split","n","o","cache","cloneNode","test","createElem","canHaveChildren","tagUrn","frag","appendChild","createDocumentFragment","length","createFrag","shivMethods","join","replace","shivCSS","hasCSS","html5","childNodes","version","supportsUnknownElements","type","shivDocument","_version","document","shift","B","injectCss","injectJs","x","readyState","onload","onreadystatechange","removeChild","y","errorTimeout","data","src","width","height","onerror","splice","v","loader","load","A","setTimeout","createRange","compareNode","parentNode","opera","attachEvent","Array","isArray","timeout","pop","url","origUrl","prefixes","autoCallback","bypass","instead","noexec","forceCSS","forceJS","attrs","both","callback","complete","yep","nope","yepnope","addPrefix","addFilter","addEventListener","removeEventListener","executeStack","setAttribute","href","rel","ua","navigator","userAgent","HTMLPictureElement","match","RegExp","$1","timer","dummySrc","fixRespimg","img","source","sizes","picture","nodeName","toUpperCase","firstElementChild","_pfLastSize","offsetWidth","findPictureImgs","imgs","querySelectorAll","onResize","clearTimeout","mq","matchMedia","init","addListener","srcset","undefined","isSpace","detectTypeSupport","typeUri","image","Image","types","picturefill","updateMetrics","isVwDirty","DPR","devicePixelRatio","cssCache","sizeLengthCache","pf","units","Math","max","innerWidth","docElem","clientWidth","innerHeight","clientHeight","vw","vh","evalId","em","getEmValue","rem","chooseLowRes","lowerValue","higherValue","dprValue","isCached","bonusFactor","tooMuch","bonus","meanDensity","cfg","algorithm","pow","sqrt","applyBestCandidate","srcSetCandidates","matchingSet","getSet","evaluated","setRes","applySetCandidate","ns","evaled","ascendingSort","res","setSrcToCur","set","candidate","sets","getCandidateForSrc","makeUrl","curSrc","curCan","setResolution","candidates","parseSet","getAllSourceElements","len","sources","getAttribute","media","parseSrcset","input","collectCharacters","regEx","chars","exec","substring","pos","parseDescriptors","desc","lastChar","value","intVal","floatVal","pError","descriptors","parseInt","parseFloat","regexNonNegativeInteger","regexFloatingPoint","has1x","tokenize","regexLeadingSpaces","currentDescriptor","state","charAt","inputLength","regexLeadingCommasOrSpaces","regexLeadingNotSpaces","regexTrailingCommas","parseSizes","strValue","parseComponentValues","str","pushComponent","component","componentArray","pushComponentArray","listArray","chrctr","parenDepth","inComment","isValidNonNegativeSourceSizeValue","regexCssLengthWithUnits","regexCssCalc","unparsedSizesList","unparsedSizesListLength","unparsedSize","lastComponentValue","size","matchesMedia","warn","eminpx","alwaysCheckWDescriptor","isSupportTestReady","noop","getImgAttr","setImgAttr","removeImgAttr","removeAttribute","srcAttr","srcsetAttr","supportAbort","curSrcProp","regWDesc","regSize","setOptions","picturefillCFG","baseStyle","fsCss","px","in","anchor","alreadyRun","on","obj","evt","fn","capture","memoize","evalCSS","regLength","args","index","string","buildStr","css","parsedLength","sizesattr","cWidth","calcListLength","opt","plen","options","nodeType","context","qsa","reevaluate","reselect","sel","selShort","setupRun","fillImg","teardownRun","console","message","implementation","hasFeature","Date","getTime","substr","supSrcset","supSizes","supPicture","image2","width2","width1","setSize","matches","mMQ","calcLength","sourceSizeValue","supportsType","parseSize","sourceSizeStr","cands","body","div","originalHTMLCSS","originalBodyCSS","sourceSizeListStr","uT","winningLength","bestCandidate","candidateSrc","abortCurSrc","imageData","dpr","cached","sort","setSrc","origWidth","parseSets","element","parent","srcsetAttribute","imageSet","isWDescripor","srcsetParsed","hasPicture","pic","supported","parsed","extreme","isDomReady","regReady","run","timerId","fillImgs","debounce","func","wait","timestamp","later","last","lastClientWidth","_","name","module","exports","define","amd","Error","isWindow","isFunction","grep","filter","F","H","each","G","J","ready","M","expando","uid","R","Q","P","parseJSON","O","W","cur","cssNumber","T","unit","start","end","merge","aa","N","get","ca","ba","Y","$","_default","htmlPrefilter","textContent","createTextNode","inArray","contains","ownerDocument","Z","ga","ha","ia","activeElement","ja","off","guid","event","add","pa","qa","ra","na","sa","hasData","access","events","handle","extend","ta","X","checked","defaultValue","checkClone","ma","eq","html","map","clone","_evalUrl","globalEval","oa","va","cleanData","ya","appendTo","detach","za","xa","wa","contentDocument","write","close","Fa","Ca","getPropertyValue","pixelMarginRight","Ba","Aa","minWidth","maxWidth","Ga","Ma","La","Ka","Na","Oa","U","Pa","offsetHeight","msFullscreenElement","top","getClientRects","round","getBoundingClientRect","boxSizingReliable","Qa","display","V","Ra","Wa","Sa","now","Xa","opacity","Ya","_a","tweeners","Za","queue","_queueHooks","unqueued","empty","fire","always","overflow","overflowX","overflowY","Ua","isEmptyObject","hidden","show","done","hide","remove","$a","camelCase","cssHooks","expand","prefilters","Deferred","elem","startTime","duration","tweens","notifyWith","resolveWith","promise","props","opts","specialEasing","easing","originalProperties","originalOptions","createTween","Tween","stop","rejectWith","proxy","fx","anim","progress","fail","fb","vb","unshift","wb","dataTypes","sb","xb","ajaxSettings","flatOptions","yb","contents","mimeType","getResponseHeader","converters","zb","responseFields","dataFilter","dataType","error","Fb","Bb","Lb","defaultView","indexOf","jquery","selector","toArray","pushStack","prevObject","first","isPlainObject","random","isReady","isNumeric","eval","trim","text","head","makeArray","support","Symbol","iterator","fa","getElementById","id","getElementsByClassName","cacheLength","attrHandle","ka","sourceIndex","C","nextSibling","la","dir","uniqueID","relative","find","TAG","uniqueSort","D","E","I","K","L","S","ID","CLASS","ATTR","PSEUDO","CHILD","bool","needsContext","String","fromCharCode","da","ea","isXML","setDocument","attributes","createComment","getById","getElementsByName","getAttributeNode","matchesSelector","webkitMatchesSelector","mozMatchesSelector","oMatchesSelector","msMatchesSelector","disconnectedMatch","compareDocumentPosition","sortDetached","attr","specified","detectDuplicates","sortStable","getText","nodeValue","selectors","createPseudo",">"," ","+","~","preFilter","pseudos","setFilters","not","has","innerText","lang","target","location","hash","root","focus","hasFocus","tabIndex","enabled","disabled","selected","selectedIndex","header","button","even","odd","lt","gt","nth","radio","checkbox","file","password","submit","reset","filters","compile","select","expr","unique","isXMLDoc","is","parseHTML","children","next","prev","closest","prevAll","addBack","parents","parentsUntil","nextAll","nextUntil","prevUntil","siblings","reverse","Callbacks","once","stopOnFalse","memory","disable","lock","locked","fireWith","fired","then","notify","resolve","reject","pipe","when","readyWait","holdReady","triggerHandler","doScroll","register","defineProperty","writable","configurable","removeData","_data","_removeData","dequeue","clearQueue","option","thead","col","tr","td","optgroup","tbody","tfoot","colgroup","caption","th","noCloneChecked","global","handler","triggered","dispatch","special","delegateType","bindType","origType","namespace","delegateCount","setup","teardown","removeEvent","fix","delegateTarget","preDispatch","handlers","isPropagationStopped","currentTarget","isImmediatePropagationStopped","rnamespace","handleObj","result","preventDefault","stopPropagation","postDispatch","isNaN","fixHooks","keyHooks","which","charCode","keyCode","mouseHooks","pageX","clientX","scrollLeft","clientLeft","pageY","clientY","scrollTop","clientTop","Event","noBubble","trigger","blur","click","beforeunload","originalEvent","returnValue","isDefaultPrevented","defaultPrevented","timeStamp","stopImmediatePropagation","mouseenter","mouseleave","pointerenter","pointerleave","relatedTarget","one","domManip","append","prepend","before","after","replaceWith","replaceChild","prependTo","insertAfter","replaceAll","HTML","BODY","opener","getComputedStyle","Da","Ea","marginLeft","marginRight","backgroundClip","clearCloneStyle","pixelPosition","reliableMarginLeft","reliableMarginRight","Ha","Ia","position","visibility","Ja","letterSpacing","fontWeight","animationIterationCount","columnCount","fillOpacity","flexGrow","flexShrink","lineHeight","order","orphans","widows","zIndex","zoom","cssProps","float","isFinite","left","margin","padding","border","toggle","prop","propHooks","step","linear","swing","cos","PI","Ta","Va","Animation","*","tweener","prefilter","speed","speeds","old","fadeTo","animate","finish","timers","slideDown","slideUp","slideToggle","fadeIn","fadeOut","fadeToggle","tick","interval","setInterval","clearInterval","slow","fast","delay","checkOn","optSelected","optDisabled","radioValue","ab","bb","removeAttr","attrHooks","propFix","cb","db","removeProp","for","class","eb","addClass","removeClass","toggleClass","hasClass","gb","val","valHooks","hb","isTrigger","parentWindow","simulate","isSimulated","hover","focusin","ib","jb","kb","JSON","parse","parseXML","DOMParser","parseFromString","lb","mb","nb","ob","pb","qb","rb","tb","ub","active","lastModified","etag","isLocal","protocol","processData","async","contentType","accepts","xml","json","* text","text html","text json","text xml","ajaxSetup","ajaxPrefilter","ajaxTransport","ajax","ifModified","status","statusText","statusCode","getAllResponseHeaders","setRequestHeader","overrideMimeType","abort","success","method","crossDomain","host","param","traditional","hasContent","headers","beforeSend","send","getJSON","getScript","throws","wrapAll","wrapInner","wrap","unwrap","visible","Ab","Cb","Db","Eb","encodeURIComponent","serialize","serializeArray","xhr","XMLHttpRequest","Gb","0","1223","Hb","cors","open","username","xhrFields","onabort","responseType","responseText","binary","response","script","text script","charset","scriptCharset","Ib","Jb","jsonp","jsonpCallback","createHTMLDocument","Kb","animated","offset","setOffset","using","pageYOffset","pageXOffset","offsetParent","scrollTo","Height","Width","content","","unbind","delegate","undelegate","andSelf","Mb","jQuery","Nb","noConflict","removeQuotes","header_helpers","class_array","FastClick","attach","cont","attr_name","arr","add_namespace","parts","bindings","self","$this","should_bind_events","settings","data_options","scope","single_image_loaded","loaded","bindLoad","doc","refNode","fakeBody","background","raf","animating","requestAnimationFrame","jqueryFxAvailable","lastTime","vendors","cancelAnimationFrame","currTime","timeToCall","Foundation","media_queries","small","small-only","medium","medium-only","large","large-only","xlarge","xlarge-only","xxlarge","stylesheet","sheet","libraries","responses","rtl","set_namespace","libs","init_lib","lib","patch","defaults","utils","inherit","methods","methods_arr","throttle","immediate","callNow","el","data_attr_name","isNumber","ii","opts_arr","cached_options","register_media","media_class","add_custom_rule","rule","insertRule","cssRules","query","image_loaded","images","unloaded","random_str","fidx","prefix","is_small_up","is_medium_up","is_large_up","is_xlarge_up","is_xxlarge_up","is_small_only","is_medium_only","is_large_only","is_xlarge_only","is_xxlarge_only","foundation","topbar","sticky_class","custom_back_text","back_text","mobile_show_parent_link","is_hover","scrolltop","sticky_on","section","topbarContainer","is_sticky","sticky_topbar","outerHeight","assembled","assemble","sticky","smallMatch","medMatch","lrgMatch","toggleEl","breakpoint","right","update_sticky_positioning","bar","li","touch","$selectedLi","resize","$movedLi","$previousLevelUl","stickyOffset","stickyContainer","doToggle","$titleLi","$link","$dropdown","ul","total","klass","$window","distance","reflow","clearing","templates","viewing","close_selectors","open_selectors","skip_selector","touch_label","$scroll_container","current","is_open","update_paddles","nav","keydown","swipe_events","touches","start_page_x","start_page_y","start_time","delta_x","is_scrolling","scale","abs","direction","$li","$el","grid","grid_outerHTML","outerHTML","holder","wrapper","$image","startLoad","outerWidth","container","visible_image","fix_height","center_and_label","label","prev_index","NEXT_KEY","PREV_KEY","ESC_KEY","go","lis","marginTop","preload","new_img","new_a","$ul","skip_shift","old_index","dir_obj","up_count","unlock","li_width","floor","target_index","adjacent","current_index","factory","require","Slick","dataSettings","accessibility","adaptiveHeight","appendArrows","appendDots","arrows","asNavFor","prevArrow","nextArrow","autoplay","autoplaySpeed","centerMode","centerPadding","cssEase","customPaging","slider","dots","dotsClass","draggable","edgeFriction","fade","focusOnSelect","infinite","initialSlide","lazyLoad","mobileFirst","pauseOnHover","pauseOnFocus","pauseOnDotsHover","respondTo","responsive","rows","slide","slidesPerRow","slidesToShow","slidesToScroll","swipe","swipeToSlide","touchMove","touchThreshold","useCSS","useTransform","variableWidth","vertical","verticalSwiping","waitForAnimate","initials","dragging","autoPlayTimer","currentDirection","currentLeft","currentSlide","$dots","listWidth","listHeight","loadIndex","$nextArrow","$prevArrow","slideCount","slideWidth","$slideTrack","$slides","sliding","slideOffset","swipeLeft","$list","touchObject","transformsEnabled","unslicked","activeBreakpoint","animType","animProp","breakpoints","breakpointSettings","cssTransitions","focussed","interrupted","paused","positionProp","rowCount","shouldClick","$slider","$slidesCache","transformType","transitionType","visibilityChange","windowWidth","windowTimer","originalSettings","mozHidden","webkitHidden","autoPlay","autoPlayClear","autoPlayIterator","changeSlide","clickHandler","selectHandler","setPosition","swipeHandler","dragHandler","keyHandler","instanceUid","htmlExpr","registerBreakpoints","activateADA","aria-hidden","tabindex","addSlide","slickAdd","markup","addBefore","unload","reinit","animateHeight","targetHeight","animateSlide","targetLeft","animProps","animStart","ceil","applyTransition","disableTransition","getNavTarget","slick","slideHandler","transition","slideTo","buildArrows","aria-disabled","buildDots","dot","getDotCount","buildOut","setupInfinite","updateDots","setSlideClasses","buildRows","newSlides","numOfSlides","originalSlides","slidesPerSection","row","checkResponsive","initial","forceUpdate","targetBreakpoint","respondToWidth","triggerBreakpoint","sliderWidth","min","unslick","refresh","dontAnimate","indexOffset","unevenOffset","$target","checkNavigable","navigables","prevNavigable","getNavigableIndexes","cleanUpEvents","interrupt","cleanUpSlideEvents","orientationChange","cleanUpRows","destroy","fadeSlide","slideIndex","fadeSlideOut","filterSlides","slickFilter","focusHandler","$sf","getCurrent","slickCurrentSlide","breakPoint","counter","pagerQty","getLeft","verticalHeight","targetSlide","verticalOffset","offsetLeft","getOption","slickGetOption","indexes","getSlick","getSlideCount","slidesTraversed","swipedSlide","centerOffset","goTo","slickGoTo","creation","setProps","loadSlider","initializeEvents","updateArrows","initADA","role","aria-describedby","aria-selected","aria-controls","initArrowEvents","initDotEvents","initSlideEvents","action","initUI","tagName","loadImages","imagesScope","imageSource","imageToLoad","loadRange","cloneRange","rangeStart","rangeEnd","progressiveLazyLoad","slickNext","pause","slickPause","play","slickPlay","postSlide","slickPrev","tryCount","$imgsToLoad","initializing","lastVisibleIndex","currentBreakpoint","responsiveSettings","windowDelay","removeSlide","slickRemove","removeBefore","removeAll","setCSS","positionProps","setDimensions","setFade","setHeight","setOption","slickSetOption","item","bodyStyle","WebkitTransition","MozTransition","msTransition","OTransform","perspectiveProperty","webkitPerspective","MozTransform","MozPerspective","webkitTransform","msTransform","transform","allSlides","remainder","infiniteCount","targetElement","sync","animSlide","oldSlide","slideLeft","navTarget","swipeDirection","xDist","yDist","swipeAngle","startX","curX","startY","curY","atan2","swipeEnd","swipeLength","edgeHit","minSwipe","fingerCount","swipeStart","swipeMove","curLeft","positionOffset","unfilterSlides","slickUnfilter","fromBreakpoint","ret","toc","fixedEncodeURIComponent","charCodeAt","noBackToTopLinks","title","minimumHeaders","listType","showEffect","showSpeed","previousSiblingName","output","this_level","render","none","get_level","ele","highest_level","return_to_top","level","format","myString","regX","addHours","hours","getFullYear","getMonth","getDate","getHours","getMinutes","getSeconds","getMilliseconds","getQueryParam","regex","results","search","decodeURIComponent","countOccurrences","searchTerm","app","analytics","sendEvent","category","ex","storage","getItem","key","currentItem","sessionStorage","date","timeToInvalidateItem","setItem","itemToSave","stringify","contentSearch","updateSearchFieldFromQueryParams","$liveSearchField","handleLiveKeyDown","hideLiveResultList","$liveSearchButton","openSearchPage","$contentSearchField","handleContentKeyDown","findSearchTermInArray","maxEntries","multiplier","found","currentPage","occurrences","description","group","_searchTerm","_searchTermCombined","getSearchResults","searchJsonUrl","searchTermValid","_searchStartLength","_timeOutID","showLiveResultList","$liveSearchResultList","_maxDescriptionLengthLive","term","startLiveSearch","cachedSearchResults","storageKeyName","handleLiveSearchResult","_maxEntriesLive","searchTermParamName","startContentSearch","handleContentSearchResult","_maxEntriesContent","showContentResultList","_maxDescriptionLengthContent","origin","$contentSearchResultList","$liveSearch","$toc","$tables","$table"],"mappings":"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","file":"footer.min.js","sourceRoot":"../../dist/js/"} \ No newline at end of file +{"version":3,"sources":["../src/js/vendor/modernizr/modernizr.custom.18747.js","../src/js/vendor/picturefill/picturefill.js","../src/js/vendor/jquery/jquery.min.js","../src/js/vendor/foundation/foundation.js","../src/js/vendor/foundation/foundation.topbar.js","../src/js/vendor/foundation/foundation.clearing.js","../src/js/vendor/slick/slick.js","../src/js/vendor/jekyll-toc/jekyll-toc.js","../src/js/core/utils.js","../src/js/components/analytics.js","../src/js/components/storage.js","../src/js/components/contentSearch.js","../src/js/app.js"],"names":["window","Modernizr","a","b","c","u","j","cssText","w","r","t","e","g","documentElement","i","createElement","style","m","p","q","slice","s","hasOwnProperty","call","constructor","prototype","Function","bind","this","TypeError","d","arguments","f","apply","concat","Object","z","toLowerCase","push","addTest","className","l","getElementsByTagName","innerHTML","insertBefore","lastChild","firstChild","elements","split","n","h","o","k","cache","cloneNode","test","createElem","canHaveChildren","tagUrn","frag","appendChild","createDocumentFragment","length","createFrag","shivMethods","join","replace","shivCSS","hasCSS","html5","childNodes","version","supportsUnknownElements","type","shivDocument","_version","document","shift","B","injectCss","injectJs","x","readyState","onload","onreadystatechange","removeChild","y","errorTimeout","data","src","width","height","onerror","splice","v","loader","load","A","setTimeout","toString","createRange","compareNode","parentNode","opera","attachEvent","Array","isArray","timeout","pop","url","origUrl","prefixes","autoCallback","bypass","instead","noexec","forceCSS","forceJS","attrs","both","callback","complete","yep","nope","yepnope","addPrefix","addFilter","addEventListener","removeEventListener","executeStack","setAttribute","href","rel","ua","navigator","userAgent","HTMLPictureElement","match","RegExp","$1","timer","dummySrc","fixRespimg","img","source","sizes","picture","nodeName","toUpperCase","firstElementChild","_pfLastSize","offsetWidth","findPictureImgs","imgs","querySelectorAll","onResize","clearTimeout","mq","matchMedia","init","addListener","srcset","undefined","isSpace","updateMetrics","isVwDirty","DPR","devicePixelRatio","cssCache","sizeLengthCache","pf","units","Math","max","innerWidth","docElem","clientWidth","innerHeight","clientHeight","vw","vh","evalId","em","getEmValue","rem","chooseLowRes","lowerValue","higherValue","dprValue","isCached","bonusFactor","tooMuch","bonus","meanDensity","cfg","algorithm","pow","sqrt","applyBestCandidate","srcSetCandidates","matchingSet","getSet","evaluated","setRes","applySetCandidate","ns","evaled","ascendingSort","res","setSrcToCur","set","candidate","sets","getCandidateForSrc","makeUrl","curSrc","curCan","setResolution","candidates","parseSet","getAllSourceElements","len","sources","getAttribute","media","parseSrcset","input","collectCharacters","regEx","chars","exec","substring","pos","parseDescriptors","desc","lastChar","value","intVal","floatVal","pError","descriptors","parseInt","parseFloat","regexNonNegativeInteger","regexFloatingPoint","has1x","currentDescriptor","state","inputLength","regexLeadingCommasOrSpaces","regexLeadingNotSpaces","regexTrailingCommas","regexLeadingSpaces","charAt","parseSizes","strValue","unparsedSizesList","unparsedSizesListLength","unparsedSize","lastComponentValue","size","regexCssLengthWithUnits","regexCssCalc","str","pushComponent","component","componentArray","pushComponentArray","listArray","chrctr","parenDepth","inComment","matchesMedia","eminpx","alwaysCheckWDescriptor","isSupportTestReady","noop","image","getImgAttr","setImgAttr","removeImgAttr","removeAttribute","types","supportAbort","curSrcProp","regWDesc","regSize","setOptions","picturefillCFG","fsCss","px","in","anchor","alreadyRun","on","obj","evt","fn","capture","memoize","evalCSS","regLength","args","index","string","buildStr","css","parsedLength","sizesattr","cWidth","calcListLength","picturefill","opt","plen","options","nodeType","context","qsa","reevaluate","reselect","sel","selShort","setupRun","fillImg","teardownRun","console","warn","implementation","hasFeature","Date","getTime","substr","supSrcset","supSizes","supPicture","image2","width1","setSize","matches","mMQ","calcLength","sourceSizeValue","supportsType","parseSize","sourceSizeStr","cands","body","div","originalHTMLCSS","originalBodyCSS","sourceSizeListStr","uT","winningLength","bestCandidate","candidateSrc","abortCurSrc","imageData","dpr","cached","sort","setSrc","origWidth","parseSets","element","parent","srcsetAttribute","imageSet","isWDescripor","srcsetParsed","hasPicture","pic","supported","srcAttr","parsed","extreme","isDomReady","regReady","run","timerId","fillImgs","lastClientWidth","func","wait","timestamp","later","last","_","name","module","exports","define","amd","typeUri","Image","Error","isWindow","isFunction","grep","filter","F","H","each","G","J","ready","M","expando","uid","R","Q","P","parseJSON","O","W","cur","cssNumber","T","unit","start","end","merge","aa","N","get","ca","ba","Y","$","_default","htmlPrefilter","textContent","createTextNode","inArray","contains","ownerDocument","Z","ga","ha","ia","activeElement","ja","off","guid","event","add","pa","qa","ra","na","sa","hasData","access","events","handle","extend","ta","X","checked","defaultValue","checkClone","ma","eq","html","map","clone","_evalUrl","globalEval","oa","va","cleanData","ya","appendTo","detach","za","xa","wa","contentDocument","write","close","Fa","Ca","getPropertyValue","pixelMarginRight","Ba","Aa","minWidth","maxWidth","Ga","Ma","La","Ka","Na","Oa","U","Pa","offsetHeight","msFullscreenElement","top","getClientRects","round","getBoundingClientRect","boxSizingReliable","Qa","display","V","Ra","Wa","Sa","now","Xa","opacity","Ya","_a","tweeners","Za","queue","_queueHooks","unqueued","empty","fire","always","overflow","overflowX","overflowY","Ua","isEmptyObject","hidden","show","done","hide","remove","$a","camelCase","cssHooks","expand","prefilters","Deferred","elem","startTime","duration","tweens","notifyWith","resolveWith","promise","props","opts","specialEasing","easing","originalProperties","originalOptions","createTween","Tween","stop","rejectWith","proxy","fx","anim","progress","fail","fb","vb","unshift","wb","dataTypes","sb","xb","ajaxSettings","flatOptions","yb","contents","mimeType","getResponseHeader","converters","zb","responseFields","dataFilter","dataType","error","Fb","Bb","Lb","defaultView","indexOf","jquery","selector","toArray","pushStack","prevObject","first","isPlainObject","random","isReady","isNumeric","eval","trim","text","head","makeArray","support","Symbol","iterator","fa","getElementById","id","getElementsByClassName","cacheLength","attrHandle","ka","sourceIndex","C","nextSibling","dir","uniqueID","relative","find","TAG","uniqueSort","D","E","I","K","L","S","ID","CLASS","ATTR","PSEUDO","CHILD","bool","needsContext","String","fromCharCode","da","ea","isXML","setDocument","attributes","createComment","getById","getElementsByName","getAttributeNode","matchesSelector","webkitMatchesSelector","mozMatchesSelector","oMatchesSelector","msMatchesSelector","disconnectedMatch","compareDocumentPosition","sortDetached","attr","specified","detectDuplicates","sortStable","getText","nodeValue","selectors","createPseudo",">"," ","+","~","preFilter","pseudos","setFilters","not","has","innerText","lang","target","location","hash","root","focus","hasFocus","tabIndex","enabled","disabled","selected","selectedIndex","header","button","even","odd","lt","gt","nth","radio","checkbox","file","password","submit","reset","filters","tokenize","compile","select","expr","unique","isXMLDoc","is","parseHTML","children","next","prev","closest","prevAll","addBack","parents","parentsUntil","nextAll","nextUntil","prevUntil","siblings","reverse","Callbacks","once","stopOnFalse","memory","disable","lock","locked","fireWith","fired","then","notify","resolve","reject","pipe","when","readyWait","holdReady","triggerHandler","doScroll","register","defineProperty","writable","configurable","removeData","_data","_removeData","dequeue","clearQueue","option","thead","col","tr","td","optgroup","tbody","tfoot","colgroup","caption","th","noCloneChecked","global","handler","triggered","dispatch","special","delegateType","bindType","origType","namespace","delegateCount","setup","teardown","removeEvent","fix","delegateTarget","preDispatch","handlers","isPropagationStopped","currentTarget","isImmediatePropagationStopped","rnamespace","handleObj","result","preventDefault","stopPropagation","postDispatch","isNaN","fixHooks","keyHooks","which","charCode","keyCode","mouseHooks","pageX","clientX","scrollLeft","clientLeft","pageY","clientY","scrollTop","clientTop","Event","noBubble","trigger","blur","click","beforeunload","originalEvent","returnValue","isDefaultPrevented","defaultPrevented","timeStamp","stopImmediatePropagation","mouseenter","mouseleave","pointerenter","pointerleave","relatedTarget","one","la","domManip","append","prepend","before","after","replaceWith","replaceChild","prependTo","insertAfter","replaceAll","HTML","BODY","opener","getComputedStyle","Da","Ea","marginLeft","marginRight","backgroundClip","clearCloneStyle","pixelPosition","reliableMarginLeft","reliableMarginRight","Ha","Ia","position","visibility","Ja","letterSpacing","fontWeight","animationIterationCount","columnCount","fillOpacity","flexGrow","flexShrink","lineHeight","order","orphans","widows","zIndex","zoom","cssProps","float","isFinite","left","margin","padding","border","toggle","prop","propHooks","step","linear","swing","cos","PI","Ta","Va","Animation","*","tweener","prefilter","speed","speeds","old","fadeTo","animate","finish","timers","slideDown","slideUp","slideToggle","fadeIn","fadeOut","fadeToggle","tick","interval","setInterval","clearInterval","slow","fast","delay","checkOn","optSelected","optDisabled","radioValue","ab","bb","removeAttr","attrHooks","propFix","cb","db","removeProp","for","class","eb","addClass","removeClass","toggleClass","hasClass","gb","val","valHooks","hb","isTrigger","parentWindow","simulate","isSimulated","hover","focusin","ib","jb","kb","JSON","parse","parseXML","DOMParser","parseFromString","lb","mb","nb","ob","pb","qb","rb","tb","ub","active","lastModified","etag","isLocal","protocol","processData","async","contentType","accepts","xml","json","* text","text html","text json","text xml","ajaxSetup","ajaxPrefilter","ajaxTransport","ajax","ifModified","status","statusText","statusCode","getAllResponseHeaders","setRequestHeader","overrideMimeType","abort","success","method","crossDomain","host","param","traditional","hasContent","headers","beforeSend","send","getJSON","getScript","throws","wrapAll","wrapInner","wrap","unwrap","visible","Ab","Cb","Db","Eb","encodeURIComponent","serialize","serializeArray","xhr","XMLHttpRequest","Gb","0","1223","Hb","cors","open","username","xhrFields","onabort","responseType","responseText","binary","response","script","text script","charset","scriptCharset","Ib","Jb","jsonp","jsonpCallback","createHTMLDocument","Kb","animated","offset","setOffset","using","pageYOffset","pageXOffset","offsetParent","scrollTo","Height","Width","content","","unbind","delegate","undelegate","andSelf","Mb","jQuery","Nb","noConflict","removeQuotes","class_array","FastClick","attach","cont","attr_name","arr","add_namespace","parts","bindings","self","$this","should_bind_events","settings","data_options","scope","single_image_loaded","loaded","bindLoad","doc","refNode","fakeBody","background","raf","animating","requestAnimationFrame","jqueryFxAvailable","lastTime","vendors","cancelAnimationFrame","currTime","timeToCall","Foundation","media_queries","small","small-only","medium","medium-only","large","large-only","xlarge","xlarge-only","xxlarge","stylesheet","sheet","libraries","responses","rtl","set_namespace","libs","init_lib","lib","patch","defaults","utils","inherit","methods","methods_arr","throttle","debounce","immediate","callNow","el","data_attr_name","ii","opts_arr","cached_options","register_media","media_class","add_custom_rule","rule","insertRule","cssRules","image_loaded","images","unloaded","random_str","fidx","prefix","is_small_up","is_medium_up","is_large_up","is_xlarge_up","is_xxlarge_up","is_small_only","is_medium_only","is_large_only","is_xlarge_only","is_xxlarge_only","foundation","topbar","sticky_class","custom_back_text","back_text","mobile_show_parent_link","is_hover","scrolltop","sticky_on","section","topbarContainer","is_sticky","sticky_topbar","outerHeight","assembled","assemble","sticky","smallMatch","medMatch","lrgMatch","toggleEl","breakpoint","right","update_sticky_positioning","bar","li","touch","$selectedLi","resize","$movedLi","$previousLevelUl","stickyOffset","stickyContainer","doToggle","$titleLi","$link","$dropdown","ul","total","klass","$window","distance","reflow","clearing","templates","viewing","close_selectors","open_selectors","skip_selector","touch_label","$scroll_container","current","is_open","update_paddles","nav","keydown","swipe_events","touches","start_page_x","start_page_y","start_time","delta_x","is_scrolling","scale","abs","direction","$li","$el","grid","grid_outerHTML","outerHTML","holder","wrapper","$image","startLoad","outerWidth","container","visible_image","fix_height","center_and_label","label","prev_index","NEXT_KEY","PREV_KEY","go","lis","marginTop","preload","new_img","new_a","$ul","skip_shift","old_index","dir_obj","up_count","unlock","li_width","floor","target_index","adjacent","current_index","factory","require","Slick","dataSettings","accessibility","adaptiveHeight","appendArrows","appendDots","arrows","asNavFor","prevArrow","nextArrow","autoplay","autoplaySpeed","centerMode","centerPadding","cssEase","customPaging","slider","dots","dotsClass","draggable","edgeFriction","fade","focusOnSelect","infinite","initialSlide","lazyLoad","mobileFirst","pauseOnHover","pauseOnFocus","pauseOnDotsHover","respondTo","responsive","rows","slide","slidesPerRow","slidesToShow","slidesToScroll","swipe","swipeToSlide","touchMove","touchThreshold","useCSS","useTransform","variableWidth","vertical","verticalSwiping","waitForAnimate","initials","dragging","autoPlayTimer","currentDirection","currentLeft","currentSlide","$dots","listWidth","listHeight","loadIndex","$nextArrow","$prevArrow","slideCount","slideWidth","$slideTrack","$slides","sliding","slideOffset","swipeLeft","$list","touchObject","transformsEnabled","unslicked","activeBreakpoint","animType","animProp","breakpoints","breakpointSettings","cssTransitions","focussed","interrupted","paused","positionProp","rowCount","shouldClick","$slider","$slidesCache","transformType","transitionType","visibilityChange","windowWidth","windowTimer","originalSettings","mozHidden","webkitHidden","autoPlay","autoPlayClear","autoPlayIterator","changeSlide","clickHandler","selectHandler","setPosition","swipeHandler","dragHandler","keyHandler","instanceUid","htmlExpr","registerBreakpoints","activateADA","aria-hidden","tabindex","addSlide","slickAdd","markup","addBefore","unload","reinit","animateHeight","targetHeight","animateSlide","targetLeft","animProps","animStart","ceil","applyTransition","disableTransition","getNavTarget","slick","slideHandler","transition","slideTo","buildArrows","aria-disabled","buildDots","dot","getDotCount","buildOut","setupInfinite","updateDots","setSlideClasses","buildRows","newSlides","numOfSlides","originalSlides","slidesPerSection","row","checkResponsive","initial","forceUpdate","targetBreakpoint","respondToWidth","triggerBreakpoint","sliderWidth","min","unslick","refresh","dontAnimate","indexOffset","unevenOffset","$target","message","checkNavigable","navigables","prevNavigable","getNavigableIndexes","cleanUpEvents","interrupt","cleanUpSlideEvents","orientationChange","cleanUpRows","destroy","fadeSlide","slideIndex","fadeSlideOut","filterSlides","slickFilter","focusHandler","$sf","getCurrent","slickCurrentSlide","breakPoint","counter","pagerQty","getLeft","verticalHeight","targetSlide","verticalOffset","offsetLeft","getOption","slickGetOption","indexes","getSlick","getSlideCount","swipedSlide","centerOffset","goTo","slickGoTo","creation","setProps","loadSlider","initializeEvents","updateArrows","initADA","role","aria-describedby","aria-selected","aria-controls","initArrowEvents","initDotEvents","initSlideEvents","action","initUI","tagName","loadImages","imagesScope","imageSource","imageToLoad","loadRange","cloneRange","rangeStart","rangeEnd","progressiveLazyLoad","slickNext","pause","slickPause","play","slickPlay","postSlide","slickPrev","tryCount","$imgsToLoad","initializing","lastVisibleIndex","currentBreakpoint","responsiveSettings","windowDelay","removeSlide","slickRemove","removeBefore","removeAll","setCSS","positionProps","setDimensions","setFade","setHeight","setOption","slickSetOption","item","bodyStyle","WebkitTransition","MozTransition","msTransition","OTransform","perspectiveProperty","webkitPerspective","MozTransform","MozPerspective","webkitTransform","msTransform","transform","allSlides","remainder","infiniteCount","targetElement","sync","animSlide","oldSlide","slideLeft","navTarget","swipeDirection","xDist","yDist","swipeAngle","startX","curX","startY","curY","atan2","swipeEnd","swipeLength","edgeHit","minSwipe","fingerCount","swipeStart","swipeMove","curLeft","positionOffset","unfilterSlides","slickUnfilter","fromBreakpoint","ret","toc","fixedEncodeURIComponent","charCodeAt","noBackToTopLinks","title","minimumHeaders","listType","showEffect","showSpeed","previousSiblingName","output","this_level","render","none","get_level","ele","highest_level","level","format","myString","regX","addHours","hours","getFullYear","getMonth","getDate","getHours","getMinutes","getSeconds","getMilliseconds","getQueryParam","regex","results","search","decodeURIComponent","countOccurrences","searchTerm","app","analytics","sendEvent","category","ex","storage","getItem","key","currentItem","sessionStorage","date","timeToInvalidateItem","setItem","itemToSave","stringify","contentSearch","updateSearchFieldFromQueryParams","$liveSearchField","handleLiveKeyDown","hideLiveResultList","$liveSearchButton","openSearchPage","$contentSearchField","handleContentKeyDown","findSearchTermInArray","maxEntries","multiplier","found","currentPage","occurrences","description","group","_searchTerm","_searchTermCombined","getSearchResults","searchJsonUrl","searchTermValid","_searchStartLength","_timeOutID","showLiveResultList","$liveSearchResultList","_maxDescriptionLengthLive","term","startLiveSearch","cachedSearchResults","storageKeyName","handleLiveSearchResult","_maxEntriesLive","searchTermParamName","startContentSearch","handleContentSearchResult","_maxEntriesContent","showContentResultList","_maxDescriptionLengthContent","origin","$contentSearchResultList","$liveSearch","$toc"],"mappings":"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","file":"footer.min.js","sourceRoot":"../../dist/js/"} \ No newline at end of file diff --git a/docs/src/package-lock.json b/docs/src/package-lock.json index 7fbf90dc6c..a20abaa185 100644 --- a/docs/src/package-lock.json +++ b/docs/src/package-lock.json @@ -10,26 +10,6 @@ "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", "dev": true }, - "ajv": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.3.0.tgz", - "integrity": "sha1-RBT/dKUIecII7l/cgm4ywwNUnto=", - "dev": true, - "requires": { - "co": "4.6.0", - "fast-deep-equal": "1.0.0", - "fast-json-stable-stringify": "2.0.0", - "json-schema-traverse": "0.3.1" - }, - "dependencies": { - "co": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", - "dev": true - } - } - }, "align-text": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz", @@ -139,9 +119,9 @@ "dev": true }, "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz", + "integrity": "sha1-104bh+ev/A24qttwIfP+SBAasjQ=", "dev": true }, "async": { @@ -170,15 +150,15 @@ "dev": true }, "aws-sign2": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", - "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz", + "integrity": "sha1-FDQt0428yU0OW4fXY81jYSwOeU8=", "dev": true }, "aws4": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.6.0.tgz", - "integrity": "sha1-g+9cqGCysy5KDe7e6MdxudtXRx4=", + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.7.0.tgz", + "integrity": "sha512-32NDda82rhwD9/JBCCkB+MRYDp0oSvlo2IL6rQWA10PQi7tDUM3eqMSltXmY+Oyl/7N3P3qNtAlv7X0d9bI28w==", "dev": true }, "balanced-match": { @@ -303,13 +283,13 @@ "bytes": "2.2.0", "content-type": "1.0.4", "debug": "2.2.0", - "depd": "1.1.1", + "depd": "1.1.2", "http-errors": "1.3.1", "iconv-lite": "0.4.13", "on-finished": "2.3.0", "qs": "5.2.0", "raw-body": "2.1.7", - "type-is": "1.6.15" + "type-is": "1.6.16" }, "dependencies": { "iconv-lite": { @@ -327,12 +307,12 @@ } }, "boom": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/boom/-/boom-4.3.1.tgz", - "integrity": "sha1-T4owBctKfjiJ90kDD9JbluAdLjE=", + "version": "2.10.1", + "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz", + "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=", "dev": true, "requires": { - "hoek": "4.2.0" + "hoek": "2.16.3" } }, "brace-expansion": { @@ -418,9 +398,9 @@ "dev": true }, "caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.11.0.tgz", + "integrity": "sha1-cVuW6phBWTzDMGeSP17GDr2k99c=", "dev": true }, "caw": { @@ -521,10 +501,10 @@ "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", "dev": true }, - "coffee-script": { + "coffeescript": { "version": "1.10.0", - "resolved": "https://registry.npmjs.org/coffee-script/-/coffee-script-1.10.0.tgz", - "integrity": "sha1-EpOLz5vhlI+gBvkuDEyegXBRCMA=", + "resolved": "https://registry.npmjs.org/coffeescript/-/coffeescript-1.10.0.tgz", + "integrity": "sha1-56qDAZF+9iGzXYo580jc3R234z4=", "dev": true }, "colors": { @@ -534,9 +514,9 @@ "dev": true }, "combined-stream": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz", - "integrity": "sha1-k4NwpXtKUd6ix3wV1cX9+JUWQAk=", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.6.tgz", + "integrity": "sha1-cj599ugBrFYTETp+RFqbactjKBg=", "dev": true, "requires": { "delayed-stream": "1.0.0" @@ -608,33 +588,13 @@ "capture-stack-trace": "1.0.0" } }, - "cross-spawn": { - "version": "0.2.9", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-0.2.9.tgz", - "integrity": "sha1-vWf5bAfvtjA7f+lMHpefiEeOCjk=", - "dev": true, - "requires": { - "lru-cache": "2.7.3" - } - }, "cryptiles": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-3.1.2.tgz", - "integrity": "sha1-qJ+7Ig9c4l7FboxKqKT9e1sNKf4=", + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz", + "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=", "dev": true, "requires": { - "boom": "5.2.0" - }, - "dependencies": { - "boom": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/boom/-/boom-5.2.0.tgz", - "integrity": "sha512-Z5BTk6ZRe4tXXQlkqftmsAUANpXmuwlsF5Oov8ThoMbQRzdGTA1ngYRW160GexgOgjsFOKJz0LYhoNi+2AMBUw==", - "dev": true, - "requires": { - "hoek": "4.2.0" - } - } + "boom": "2.10.1" } }, "csso": { @@ -657,15 +617,6 @@ "array-find-index": "1.0.2" } }, - "dargs": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/dargs/-/dargs-4.1.0.tgz", - "integrity": "sha1-A6nbtLXC8Tm/FK5T8LiipqhvThc=", - "dev": true, - "requires": { - "number-is-nan": "1.0.1" - } - }, "dashdash": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", @@ -673,6 +624,14 @@ "dev": true, "requires": { "assert-plus": "1.0.0" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true + } } }, "dateformat": { @@ -888,9 +847,9 @@ "dev": true }, "depd": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.1.tgz", - "integrity": "sha1-V4O04cRZ8G+lyif5kfPQbnoxA1k=", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", "dev": true }, "download": { @@ -1103,18 +1062,6 @@ "time-stamp": "1.1.0" } }, - "fast-deep-equal": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.0.0.tgz", - "integrity": "sha1-liVqO8l1WV6zbYLpkp0GDYk0Of8=", - "dev": true - }, - "fast-json-stable-stringify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", - "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=", - "dev": true - }, "faye-websocket": { "version": "0.10.0", "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.10.0.tgz", @@ -1266,14 +1213,14 @@ "dev": true }, "form-data": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.1.tgz", - "integrity": "sha1-b7lPvXGIUwbXPRXMSX/kzE7NRL8=", + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.1.4.tgz", + "integrity": "sha1-M8GDrPGTJ27KqYFDpp6Uv+4XUNE=", "dev": true, "requires": { "asynckit": "0.4.0", - "combined-stream": "1.0.5", - "mime-types": "2.1.17" + "combined-stream": "1.0.6", + "mime-types": "2.1.18" } }, "fs.realpath": { @@ -1325,6 +1272,21 @@ "globule": "1.2.0" } }, + "generate-function": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/generate-function/-/generate-function-2.0.0.tgz", + "integrity": "sha1-aFj+fAlpt9TpCTM3ZHrHn2DfvnQ=", + "dev": true + }, + "generate-object-property": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/generate-object-property/-/generate-object-property-1.2.0.tgz", + "integrity": "sha1-nA4cQDCM6AT0eDYYuTf6iPmdUNA=", + "dev": true, + "requires": { + "is-property": "1.0.2" + } + }, "get-caller-file": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.2.tgz", @@ -1359,6 +1321,14 @@ "dev": true, "requires": { "assert-plus": "1.0.0" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true + } } }, "gifsicle": { @@ -1471,7 +1441,7 @@ "dev": true, "requires": { "glob": "7.1.2", - "lodash": "4.17.4", + "lodash": "4.17.10", "minimatch": "3.0.4" }, "dependencies": { @@ -1488,12 +1458,6 @@ "once": "1.4.0", "path-is-absolute": "1.0.1" } - }, - "lodash": { - "version": "4.17.4", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", - "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=", - "dev": true } } }, @@ -1542,12 +1506,12 @@ "dev": true }, "grunt": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/grunt/-/grunt-1.0.1.tgz", - "integrity": "sha1-6HeHZOlEsY8yuw8QuQeEdcnftWs=", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/grunt/-/grunt-1.0.2.tgz", + "integrity": "sha1-TmpeaVtwRy/VME9fqeNCNoNqc7w=", "dev": true, "requires": { - "coffee-script": "1.10.0", + "coffeescript": "1.10.0", "dateformat": "1.0.12", "eventemitter2": "0.4.14", "exit": "0.1.2", @@ -1555,9 +1519,9 @@ "glob": "7.0.6", "grunt-cli": "1.2.0", "grunt-known-options": "1.1.0", - "grunt-legacy-log": "1.0.0", + "grunt-legacy-log": "1.0.2", "grunt-legacy-util": "1.0.0", - "iconv-lite": "0.4.19", + "iconv-lite": "0.4.21", "js-yaml": "3.5.5", "minimatch": "3.0.4", "nopt": "3.0.6", @@ -1602,27 +1566,6 @@ "pretty-bytes": "3.0.1" } }, - "grunt-contrib-sass": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/grunt-contrib-sass/-/grunt-contrib-sass-1.0.0.tgz", - "integrity": "sha1-gGg4JRy8DhqU1k1RXN00z2dNcBs=", - "dev": true, - "requires": { - "async": "0.9.2", - "chalk": "1.1.3", - "cross-spawn": "0.2.9", - "dargs": "4.1.0", - "which": "1.2.14" - }, - "dependencies": { - "async": { - "version": "0.9.2", - "resolved": "https://registry.npmjs.org/async/-/async-0.9.2.tgz", - "integrity": "sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0=", - "dev": true - } - } - }, "grunt-contrib-uglify": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/grunt-contrib-uglify/-/grunt-contrib-uglify-2.3.0.tgz", @@ -1637,14 +1580,14 @@ } }, "grunt-contrib-watch": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/grunt-contrib-watch/-/grunt-contrib-watch-1.0.0.tgz", - "integrity": "sha1-hKGnodar0m7VaEE0lscxM+mQAY8=", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/grunt-contrib-watch/-/grunt-contrib-watch-1.0.1.tgz", + "integrity": "sha512-8Zka/svGl6+ZwF7d6z/CfXwsb4cDODnajmZsY4nUAs9Ob0kJEcsLiDf5qm2HdDoEcm3NHjWCrFiWx+PZ2y4D7A==", "dev": true, "requires": { "async": "1.5.2", "gaze": "1.1.2", - "lodash": "3.10.1", + "lodash": "4.17.10", "tiny-lr": "0.2.1" } }, @@ -1655,16 +1598,15 @@ "dev": true }, "grunt-legacy-log": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/grunt-legacy-log/-/grunt-legacy-log-1.0.0.tgz", - "integrity": "sha1-+4bxgJhHvAfcR4Q/ns1srLYt8tU=", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/grunt-legacy-log/-/grunt-legacy-log-1.0.2.tgz", + "integrity": "sha512-WdedTJ/6zCXnI/coaouzqvkI19uwqbcPkdsXiDRKJyB5rOUlOxnCnTVbpeUdEckKVir2uHF3rDBYppj2p6N3+g==", "dev": true, "requires": { "colors": "1.1.2", "grunt-legacy-log-utils": "1.0.0", "hooker": "0.2.3", - "lodash": "3.10.1", - "underscore.string": "3.2.3" + "lodash": "4.17.10" } }, "grunt-legacy-log-utils": { @@ -1709,13 +1651,13 @@ } }, "grunt-sass": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/grunt-sass/-/grunt-sass-2.0.0.tgz", - "integrity": "sha1-kHTPnXtFkuIPd4jKpye4+aoGtgo=", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/grunt-sass/-/grunt-sass-2.1.0.tgz", + "integrity": "sha512-XkexnQt/9rhReNd+Y7T0n/2g5FqYOQKfi2iSlpwDqvgs7EgEaGTxNhnWzHnbW5oNRvzL9AHopBG3AgRxL0d+DA==", "dev": true, "requires": { "each-async": "1.1.1", - "node-sass": "4.5.3", + "node-sass": "4.9.0", "object-assign": "4.1.1" } }, @@ -1842,20 +1784,24 @@ "concat-stream": "1.6.0" } }, - "har-schema": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", - "dev": true - }, "har-validator": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.0.3.tgz", - "integrity": "sha1-ukAsJmGU8VlW7xXg/PJCmT9qff0=", + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-2.0.6.tgz", + "integrity": "sha1-zcvAgYgmWtEZtqWnyKtw7s+10n0=", "dev": true, "requires": { - "ajv": "5.3.0", - "har-schema": "2.0.0" + "chalk": "1.1.3", + "commander": "2.15.1", + "is-my-json-valid": "2.17.2", + "pinkie-promise": "2.0.1" + }, + "dependencies": { + "commander": { + "version": "2.15.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.15.1.tgz", + "integrity": "sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag==", + "dev": true + } } }, "has-ansi": { @@ -1883,21 +1829,21 @@ "dev": true }, "hawk": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/hawk/-/hawk-6.0.2.tgz", - "integrity": "sha512-miowhl2+U7Qle4vdLqDdPt9m09K6yZhkLDTWGoUiUzrQCn+mHHSmfJgAyGaLRZbPmTqfFFjRV1QWCW0VWUJBbQ==", + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz", + "integrity": "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=", "dev": true, "requires": { - "boom": "4.3.1", - "cryptiles": "3.1.2", - "hoek": "4.2.0", - "sntp": "2.1.0" + "boom": "2.10.1", + "cryptiles": "2.0.5", + "hoek": "2.16.3", + "sntp": "1.0.9" } }, "hoek": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/hoek/-/hoek-4.2.0.tgz", - "integrity": "sha512-v0XCLxICi9nPfYrS9RL8HbYnXi9obYAeLbSP00BmnZwCK9+Ih9WOjoZ8YoHCoav2csqn4FOz4Orldsy2dmDwmQ==", + "version": "2.16.3", + "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz", + "integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0=", "dev": true }, "hooker": { @@ -1919,31 +1865,34 @@ "dev": true, "requires": { "inherits": "2.0.3", - "statuses": "1.4.0" + "statuses": "1.5.0" } }, "http-parser-js": { - "version": "0.4.9", - "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.4.9.tgz", - "integrity": "sha1-6hoE+2St/wJC6ZdPKX3Uw8rSceE=", + "version": "0.4.12", + "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.4.12.tgz", + "integrity": "sha1-uc+/Sizybw/DSxDKFImid3HjR08=", "dev": true }, "http-signature": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz", + "integrity": "sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8=", "dev": true, "requires": { - "assert-plus": "1.0.0", + "assert-plus": "0.2.0", "jsprim": "1.4.1", - "sshpk": "1.13.1" + "sshpk": "1.14.1" } }, "iconv-lite": { - "version": "0.4.19", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.19.tgz", - "integrity": "sha512-oTZqweIP51xaGPI4uPa56/Pri/480R+mo7SeU+YETByQNhDG55ycFyNLIgta9vXhILrxXDmF7ZGhqZIcuN0gJQ==", - "dev": true + "version": "0.4.21", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.21.tgz", + "integrity": "sha512-En5V9za5mBt2oUA03WGD3TwDv0MKAruqsuxstbMUZaj9W9k/m1CV/9py3l0L5kw9Bln8fdHQmzHSYtvpvTLpKw==", + "dev": true, + "requires": { + "safer-buffer": "2.1.2" + } }, "imagemin": { "version": "4.0.0", @@ -2198,6 +2147,25 @@ "dev": true, "optional": true }, + "is-my-ip-valid": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-my-ip-valid/-/is-my-ip-valid-1.0.0.tgz", + "integrity": "sha512-gmh/eWXROncUzRnIa1Ubrt5b8ep/MGSnfAUI3aRp+sqTCs1tv1Isl8d8F6JmkN3dXKc3ehZMrtiPN9eL03NuaQ==", + "dev": true + }, + "is-my-json-valid": { + "version": "2.17.2", + "resolved": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.17.2.tgz", + "integrity": "sha512-IBhBslgngMQN8DDSppmgDv7RNrlFotuuDsKcrCP3+HbFaVivIBU7u9oiiErw8sH4ynx3+gOGQ3q2otkgiSi6kg==", + "dev": true, + "requires": { + "generate-function": "2.0.0", + "generate-object-property": "1.2.0", + "is-my-ip-valid": "1.0.0", + "jsonpointer": "4.0.1", + "xtend": "4.0.1" + } + }, "is-natural-number": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-natural-number/-/is-natural-number-2.1.1.tgz", @@ -2238,6 +2206,12 @@ "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU=", "dev": true }, + "is-property": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz", + "integrity": "sha1-V/4cTkhHTt1lsJkR8msc1Ald2oQ=", + "dev": true + }, "is-redirect": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-redirect/-/is-redirect-1.0.0.tgz", @@ -2345,9 +2319,9 @@ } }, "js-base64": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.3.2.tgz", - "integrity": "sha512-Y2/+DnfJJXT1/FCwUebUhLWb3QihxiSC42+ctHLGogmW2jPY6LCapMdFZXRvVP2z6qyKW7s6qncE/9gSqZiArw==", + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.4.3.tgz", + "integrity": "sha512-H7ErYLM34CvDMto3GbD6xD0JLUGYXR3QTcH6B/tr4Hi/QpSThnCsIp+Sy5FRTw3B0d6py4HcNkW7nO/wdtGWEw==", "dev": true }, "js-yaml": { @@ -2373,12 +2347,6 @@ "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", "dev": true }, - "json-schema-traverse": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz", - "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=", - "dev": true - }, "json-stable-stringify": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz", @@ -2400,6 +2368,12 @@ "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=", "dev": true }, + "jsonpointer": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-4.0.1.tgz", + "integrity": "sha1-T9kss04OnbPInIYi7PUfm5eMbLk=", + "dev": true + }, "jsprim": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", @@ -2410,6 +2384,14 @@ "extsprintf": "1.3.0", "json-schema": "0.2.3", "verror": "1.10.0" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true + } } }, "kind-of": { @@ -2453,9 +2435,9 @@ } }, "livereload-js": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/livereload-js/-/livereload-js-2.2.2.tgz", - "integrity": "sha1-bIclfmSKtHW8JOoldFftzB+NC8I=", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/livereload-js/-/livereload-js-2.3.0.tgz", + "integrity": "sha512-j1R0/FeGa64Y+NmqfZhyoVRzcFlOZ8sNlKzHjh4VvLULFACZhn68XrX5DFg2FhMvSMJmROuFxRSa560ECWKBMg==", "dev": true }, "load-json-file": { @@ -2472,9 +2454,9 @@ } }, "lodash": { - "version": "3.10.1", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz", - "integrity": "sha1-W/Rejkm6QYnhfUgnid/RW9FAt7Y=", + "version": "4.17.10", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.10.tgz", + "integrity": "sha512-UejweD1pDoXu+AD825lWwp4ZGtSwgnpZxb3JDViD7StjQz+Nb/6l093lx4OQ0foGWNRoc19mWy7BzL+UAK2iVg==", "dev": true }, "lodash._basecopy": { @@ -2582,9 +2564,9 @@ } }, "lodash.mergewith": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/lodash.mergewith/-/lodash.mergewith-4.6.0.tgz", - "integrity": "sha1-FQzwoWeR9ZA7iJHqsVRgknS96lU=", + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/lodash.mergewith/-/lodash.mergewith-4.6.1.tgz", + "integrity": "sha512-eWw5r+PYICtEBgrBE5hhlT6aAa75f411bgDz/ZL2KZqYV03USvucsxcHUIlGTDTECs1eunpI7HOV7U+WLDvNdQ==", "dev": true }, "lodash.restparam": { @@ -2666,12 +2648,6 @@ "meow": "3.7.0" } }, - "lru-cache": { - "version": "2.7.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.7.3.tgz", - "integrity": "sha1-bUUk6LlV+V1PW1iFHOId1y+06VI=", - "dev": true - }, "map-obj": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", @@ -2774,18 +2750,18 @@ } }, "mime-db": { - "version": "1.30.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.30.0.tgz", - "integrity": "sha1-dMZD2i3Z1qRTmZY0ZbJtXKfXHwE=", + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.33.0.tgz", + "integrity": "sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ==", "dev": true }, "mime-types": { - "version": "2.1.17", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.17.tgz", - "integrity": "sha1-Cdejk/A+mVp5+K+Fe3Cp4KsWVXo=", + "version": "2.1.18", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.18.tgz", + "integrity": "sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==", "dev": true, "requires": { - "mime-db": "1.30.0" + "mime-db": "1.33.0" } }, "minimatch": { @@ -2871,9 +2847,9 @@ } }, "nan": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.7.0.tgz", - "integrity": "sha1-2Vv3IeyHfgjbJ27T/G63j5CDrUY=", + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.10.0.tgz", + "integrity": "sha512-bAdJv7fBLhWC+/Bls0Oza+mvTaNQtP+1RyhhhvD95pgUJz6XM5IzgmxOkItJ9tkoCiplvAnXI1tNmmUD/eScyA==", "dev": true }, "node-gyp": { @@ -2889,8 +2865,8 @@ "mkdirp": "0.5.1", "nopt": "3.0.6", "npmlog": "4.1.2", - "osenv": "0.1.4", - "request": "2.83.0", + "osenv": "0.1.5", + "request": "2.79.0", "rimraf": "2.2.8", "semver": "5.3.0", "tar": "2.2.1", @@ -2906,9 +2882,9 @@ } }, "node-sass": { - "version": "4.5.3", - "resolved": "https://registry.npmjs.org/node-sass/-/node-sass-4.5.3.tgz", - "integrity": "sha1-0JydEXlkEjnRuX/8YjH9zsU+FWg=", + "version": "4.9.0", + "resolved": "https://registry.npmjs.org/node-sass/-/node-sass-4.9.0.tgz", + "integrity": "sha512-QFHfrZl6lqRU3csypwviz2XLgGNOoWQbo2GOvtsfQqOfL4cy1BtWnhx/XUeAO9LT3ahBzSRXcEO6DdvAH9DzSg==", "dev": true, "requires": { "async-foreach": "0.1.3", @@ -2920,15 +2896,16 @@ "in-publish": "2.0.0", "lodash.assign": "4.2.0", "lodash.clonedeep": "4.5.0", - "lodash.mergewith": "4.6.0", + "lodash.mergewith": "4.6.1", "meow": "3.7.0", "mkdirp": "0.5.1", - "nan": "2.7.0", + "nan": "2.10.0", "node-gyp": "3.6.2", "npmlog": "4.1.2", - "request": "2.83.0", + "request": "2.79.0", "sass-graph": "2.2.4", - "stdout-stream": "1.4.0" + "stdout-stream": "1.4.0", + "true-case-path": "1.0.2" }, "dependencies": { "cross-spawn": { @@ -2937,14 +2914,14 @@ "integrity": "sha1-ElYDfsufDF9549bvE14wdwGEuYI=", "dev": true, "requires": { - "lru-cache": "4.1.1", + "lru-cache": "4.1.2", "which": "1.2.14" } }, "lru-cache": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.1.tgz", - "integrity": "sha512-q4spe4KTfsAS1SUHLO0wz8Qiyf1+vMIAgpRYioFYDMNqKfHQbg+AVDH3i4fvpl71/P1L0dBl+fQi+P37UYf0ew==", + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.2.tgz", + "integrity": "sha512-wgeVXhrDwAWnIF/yZARsFnMBtdFXOg1b8RIrhilp+0iDYN4mdQcNZElDZ0e4B64BhaxeQ5zN7PMyvu7we1kPeQ==", "dev": true, "requires": { "pseudomap": "1.0.2", @@ -3127,9 +3104,9 @@ "dev": true }, "osenv": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.4.tgz", - "integrity": "sha1-Qv5tWVPfBsgGS+bxdsPQWqqjRkQ=", + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", + "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", "dev": true, "requires": { "os-homedir": "1.0.2", @@ -3224,12 +3201,6 @@ "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=", "dev": true }, - "performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", - "dev": true - }, "pify": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", @@ -3480,54 +3451,43 @@ "dev": true }, "request": { - "version": "2.83.0", - "resolved": "https://registry.npmjs.org/request/-/request-2.83.0.tgz", - "integrity": "sha512-lR3gD69osqm6EYLk9wB/G1W/laGWjzH90t1vEa2xuxHD5KUrSzp9pUSfTm+YC5Nxt2T8nMPEvKlhbQayU7bgFw==", + "version": "2.79.0", + "resolved": "https://registry.npmjs.org/request/-/request-2.79.0.tgz", + "integrity": "sha1-Tf5b9r6LjNw3/Pk+BLZVd3InEN4=", "dev": true, "requires": { - "aws-sign2": "0.7.0", - "aws4": "1.6.0", - "caseless": "0.12.0", - "combined-stream": "1.0.5", + "aws-sign2": "0.6.0", + "aws4": "1.7.0", + "caseless": "0.11.0", + "combined-stream": "1.0.6", "extend": "3.0.1", "forever-agent": "0.6.1", - "form-data": "2.3.1", - "har-validator": "5.0.3", - "hawk": "6.0.2", - "http-signature": "1.2.0", + "form-data": "2.1.4", + "har-validator": "2.0.6", + "hawk": "3.1.3", + "http-signature": "1.1.1", "is-typedarray": "1.0.0", "isstream": "0.1.2", "json-stringify-safe": "5.0.1", - "mime-types": "2.1.17", + "mime-types": "2.1.18", "oauth-sign": "0.8.2", - "performance-now": "2.1.0", - "qs": "6.5.1", - "safe-buffer": "5.1.1", + "qs": "6.3.2", "stringstream": "0.0.5", - "tough-cookie": "2.3.3", - "tunnel-agent": "0.6.0", - "uuid": "3.1.0" + "tough-cookie": "2.3.4", + "tunnel-agent": "0.4.3", + "uuid": "3.2.1" }, "dependencies": { "qs": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.1.tgz", - "integrity": "sha512-eRzhrN1WSINYCDCbrz796z37LOe3m5tmW7RQf6oBntukAG1nmovJvhnwHHRMAfeoItc1m2Hk02WER2aQ/iqs+A==", + "version": "6.3.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.3.2.tgz", + "integrity": "sha1-51vV9uJoEioqDgvaYwslUMFmUCw=", "dev": true }, - "tunnel-agent": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", - "dev": true, - "requires": { - "safe-buffer": "5.1.1" - } - }, "uuid": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.1.0.tgz", - "integrity": "sha512-DIWtzUkw04M4k3bf1IcpS2tngXEL26YUD2M0tMDUpnUrz2hgzUBlD55a4FjdLGPvfHxS6uluGWvaVEqgBcVa+g==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.2.1.tgz", + "integrity": "sha512-jZnMwlb9Iku/O3smGWvZhauCf6cvvpKi4BKRiliS3cxnI+Gz9j5MEpTz2UFuXiKPJocb7gnsLHwiS05ige5BEA==", "dev": true } } @@ -3571,6 +3531,12 @@ "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==", "dev": true }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true + }, "sass-graph": { "version": "2.2.4", "resolved": "https://registry.npmjs.org/sass-graph/-/sass-graph-2.2.4.tgz", @@ -3578,7 +3544,7 @@ "dev": true, "requires": { "glob": "7.0.6", - "lodash": "4.17.4", + "lodash": "4.17.10", "scss-tokenizer": "0.2.3", "yargs": "7.1.0" }, @@ -3600,12 +3566,6 @@ "wrap-ansi": "2.1.0" } }, - "lodash": { - "version": "4.17.4", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", - "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=", - "dev": true - }, "yargs": { "version": "7.1.0", "resolved": "https://registry.npmjs.org/yargs/-/yargs-7.1.0.tgz", @@ -3642,7 +3602,7 @@ "integrity": "sha1-jrBtualyMzOCTT9VMGQRSYR85dE=", "dev": true, "requires": { - "js-base64": "2.3.2", + "js-base64": "2.4.3", "source-map": "0.4.4" }, "dependencies": { @@ -3708,12 +3668,12 @@ "dev": true }, "sntp": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/sntp/-/sntp-2.1.0.tgz", - "integrity": "sha512-FL1b58BDrqS3A11lJ0zEdnJ3UOKqVxawAkF3k7F0CVN7VQ34aZrV+G8BZ1WC9ZL7NyrwsW0oviwsWDgRuVYtJg==", + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz", + "integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=", "dev": true, "requires": { - "hoek": "4.2.0" + "hoek": "2.16.3" } }, "source-map": { @@ -3768,9 +3728,9 @@ } }, "sshpk": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.13.1.tgz", - "integrity": "sha1-US322mKHFEMW3EwY/hzx2UBzm+M=", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.14.1.tgz", + "integrity": "sha1-Ew9Zde3a2WPx1W+SuaxsUfqfg+s=", "dev": true, "requires": { "asn1": "0.2.3", @@ -3781,6 +3741,14 @@ "getpass": "0.1.7", "jsbn": "0.1.1", "tweetnacl": "0.14.5" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true + } } }, "stat-mode": { @@ -3790,9 +3758,9 @@ "dev": true }, "statuses": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz", - "integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew==", + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", "dev": true }, "stdout-stream": { @@ -3820,15 +3788,6 @@ "integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=", "dev": true }, - "string_decoder": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", - "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", - "dev": true, - "requires": { - "safe-buffer": "5.1.1" - } - }, "string-width": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", @@ -3840,6 +3799,15 @@ "strip-ansi": "3.0.1" } }, + "string_decoder": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", + "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", + "dev": true, + "requires": { + "safe-buffer": "5.1.1" + } + }, "stringstream": { "version": "0.0.5", "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz", @@ -4068,7 +4036,7 @@ "body-parser": "1.14.2", "debug": "2.2.0", "faye-websocket": "0.10.0", - "livereload-js": "2.2.2", + "livereload-js": "2.3.0", "parseurl": "1.3.2", "qs": "5.1.0" } @@ -4083,9 +4051,9 @@ } }, "tough-cookie": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.3.tgz", - "integrity": "sha1-C2GKVWW23qkL80JdBNVe3EdadWE=", + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.4.tgz", + "integrity": "sha512-TZ6TTfI5NtZnuyy/Kecv+CnoROnyXn2DN97LontgQpCwsX2XyLYCC0ENhYkehSOwAp8rTQKc/NUIF7BkQ5rKLA==", "dev": true, "requires": { "punycode": "1.4.1" @@ -4106,6 +4074,30 @@ "escape-string-regexp": "1.0.5" } }, + "true-case-path": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/true-case-path/-/true-case-path-1.0.2.tgz", + "integrity": "sha1-fskRMJJHZsf1c74wIMNPj9/QDWI=", + "dev": true, + "requires": { + "glob": "6.0.4" + }, + "dependencies": { + "glob": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/glob/-/glob-6.0.4.tgz", + "integrity": "sha1-DwiGD2oVUSey+t1PnOJLGqtuTSI=", + "dev": true, + "requires": { + "inflight": "1.0.6", + "inherits": "2.0.3", + "minimatch": "3.0.4", + "once": "1.4.0", + "path-is-absolute": "1.0.1" + } + } + } + }, "tunnel-agent": { "version": "0.4.3", "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.3.tgz", @@ -4120,13 +4112,13 @@ "optional": true }, "type-is": { - "version": "1.6.15", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.15.tgz", - "integrity": "sha1-yrEPtJCeRByChC6v4a1kbIGARBA=", + "version": "1.6.16", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.16.tgz", + "integrity": "sha512-HRkVv/5qY2G6I8iab9cI7v1bOIdhm94dVjQCPFElW9W+3GeDOSHmy2EBYe4VTApuzolPcmgFTN3ftVJRKR2J9Q==", "dev": true, "requires": { "media-typer": "0.3.0", - "mime-types": "2.1.17" + "mime-types": "2.1.18" } }, "typedarray": { @@ -4243,6 +4235,14 @@ "assert-plus": "1.0.0", "core-util-is": "1.0.2", "extsprintf": "1.3.0" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true + } } }, "vinyl": { @@ -4318,14 +4318,14 @@ "integrity": "sha1-DK+dLXVdk67gSdS90NP+LMoqJOs=", "dev": true, "requires": { - "http-parser-js": "0.4.9", - "websocket-extensions": "0.1.2" + "http-parser-js": "0.4.12", + "websocket-extensions": "0.1.3" } }, "websocket-extensions": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.2.tgz", - "integrity": "sha1-Dhh4HeYpoYMIzhSBZQ9n/6JpOl0=", + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.3.tgz", + "integrity": "sha512-nqHUnMXmBzT0w570r2JpJxfiSD1IzoI+HGVdd3aZ0yNi3ngvQ4jv1dtHt5VGxfI2yj5yqImPhOK4vmIh2xMbGg==", "dev": true }, "whet.extend": { diff --git a/docs/src/package.json b/docs/src/package.json index 09d1f6a78b..f1a4c361a0 100644 --- a/docs/src/package.json +++ b/docs/src/package.json @@ -2,12 +2,11 @@ "name": "ACE3", "version": "0.1.0", "devDependencies": { - "grunt": "^1.0.1", + "grunt": "^1.0.2", "grunt-contrib-concat": "^1.0.1", "grunt-contrib-imagemin": "^1.0.1", - "grunt-contrib-sass": "^1.0.0", "grunt-contrib-uglify": "^2.0.0", - "grunt-contrib-watch": "^1.0.0", - "grunt-sass": "^2.0.0" + "grunt-contrib-watch": "^1.0.1", + "grunt-sass": "^2.1.0" } } From 265bc6225993ad5e442c48c8afc6112800f7c21e Mon Sep 17 00:00:00 2001 From: Cuel Date: Fri, 27 Apr 2018 17:30:03 +0200 Subject: [PATCH 109/235] (repair) - isRepairVehicle handling values according to wiki (#6278) * handle boolean and integer * check if value is 1 or true --- addons/repair/functions/fnc_isRepairVehicle.sqf | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/addons/repair/functions/fnc_isRepairVehicle.sqf b/addons/repair/functions/fnc_isRepairVehicle.sqf index f18ff0cd3e..ff3ac7ed1c 100644 --- a/addons/repair/functions/fnc_isRepairVehicle.sqf +++ b/addons/repair/functions/fnc_isRepairVehicle.sqf @@ -20,4 +20,6 @@ TRACE_1("params",_vehicle); if (_vehicle isKindOf "CAManBase") exitWith {false}; -((_vehicle getVariable ["ACE_isRepairVehicle", getNumber (configFile >> "CfgVehicles" >> typeOf _vehicle >> QGVAR(canRepair))]) > 0); +// Value can be integer or boolean +private _value = _vehicle getVariable ["ACE_isRepairVehicle", getNumber (configFile >> "CfgVehicles" >> typeOf _vehicle >> QGVAR(canRepair))]; +_value in [1, true] // return From 2454ade07b5a3c6e250fccf0f1640e1f97d273fa Mon Sep 17 00:00:00 2001 From: Dystopian Date: Sat, 28 Apr 2018 22:34:52 +0300 Subject: [PATCH 110/235] Quick Mount - Fix mount from water (#6310) --- addons/quickmount/functions/fnc_getInNearest.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/quickmount/functions/fnc_getInNearest.sqf b/addons/quickmount/functions/fnc_getInNearest.sqf index 4b5debc2aa..49f1f3521c 100644 --- a/addons/quickmount/functions/fnc_getInNearest.sqf +++ b/addons/quickmount/functions/fnc_getInNearest.sqf @@ -37,7 +37,7 @@ TRACE_1("",_target); if (!isNull _target && {alive _target} && {{_target isKindOf _x} count ["Air","LandVehicle","Ship","StaticMortar"] > 0} && - {([ACE_player, _target] call EFUNC(common,canInteractWith))} && + {([ACE_player, _target, ["isNotSwimming"]] call EFUNC(common,canInteractWith))} && {speed _target <= GVAR(speed)} ) then { From e9af0864541bf4e7343daa2e4b62305a3d7daa7b Mon Sep 17 00:00:00 2001 From: mharis001 <34453221+mharis001@users.noreply.github.com> Date: Sat, 28 Apr 2018 18:23:44 -0400 Subject: [PATCH 111/235] Interaction Menu - Add ability to change selector color (#6292) * Add selector color changing * Setup colors once at init --- addons/interact_menu/XEH_clientInit.sqf | 17 ++++++++--------- addons/interact_menu/XEH_preInit.sqf | 2 ++ addons/interact_menu/functions/fnc_render.sqf | 2 +- .../functions/fnc_renderSelector.sqf | 4 ++-- addons/interact_menu/initSettings.sqf | 9 +++++++++ addons/interact_menu/stringtable.xml | 3 +++ 6 files changed, 25 insertions(+), 12 deletions(-) create mode 100644 addons/interact_menu/initSettings.sqf diff --git a/addons/interact_menu/XEH_clientInit.sqf b/addons/interact_menu/XEH_clientInit.sqf index dbe9d548cd..d6d5cd065c 100644 --- a/addons/interact_menu/XEH_clientInit.sqf +++ b/addons/interact_menu/XEH_clientInit.sqf @@ -1,4 +1,3 @@ -//XEH_clientInit.sqf #include "script_component.hpp" if (!hasInterface) exitWith {}; @@ -10,16 +9,16 @@ GVAR(cachedBuildingActionPairs) = []; GVAR(ParsedTextCached) = []; -["ace_settingChanged", { - params ["_name"]; - if (({_x == _name} count [QGVAR(colorTextMax), QGVAR(colorTextMin), QGVAR(colorShadowMax), QGVAR(colorShadowMin), QGVAR(textSize), QGVAR(shadowSetting)]) == 1) then { - [] call FUNC(setupTextColors); - }; -}] call CBA_fnc_addEventHandler; - ["ace_settingsInitialized", { - //Setup text/shadow/size/color settings matrix + // Setup text/shadow/size/color settings matrix [] call FUNC(setupTextColors); + // Setting changed added here so color setup happens once at init + ["ace_settingChanged", { + params ["_name"]; + if (_name in [QGVAR(colorTextMax), QGVAR(colorTextMin), QGVAR(colorShadowMax), QGVAR(colorShadowMin), QGVAR(textSize), QGVAR(shadowSetting)]) then { + [] call FUNC(setupTextColors); + }; + }] call CBA_fnc_addEventHandler; // Install the render EH on the main display addMissionEventHandler ["Draw3D", {call FUNC(render)}]; }] call CBA_fnc_addEventHandler; diff --git a/addons/interact_menu/XEH_preInit.sqf b/addons/interact_menu/XEH_preInit.sqf index 817693c93c..a05eac1bb5 100644 --- a/addons/interact_menu/XEH_preInit.sqf +++ b/addons/interact_menu/XEH_preInit.sqf @@ -6,6 +6,8 @@ PREP_RECOMPILE_START; #include "XEH_PREP.hpp" PREP_RECOMPILE_END; +#include "initSettings.sqf" + GVAR(ActNamespace) = [] call CBA_fnc_createNamespace; GVAR(ActSelfNamespace) = [] call CBA_fnc_createNamespace; diff --git a/addons/interact_menu/functions/fnc_render.sqf b/addons/interact_menu/functions/fnc_render.sqf index 1c3ed50c92..47ddcf938d 100644 --- a/addons/interact_menu/functions/fnc_render.sqf +++ b/addons/interact_menu/functions/fnc_render.sqf @@ -28,7 +28,7 @@ if (GVAR(openedMenuType) >= 0) then { // Render all available nearby interactions call FUNC(renderActionPoints); - // Draw the red selector only when there's no cursor + // Draw the selector only when there's no cursor if !(uiNamespace getVariable [QGVAR(cursorMenuOpened),false]) then { [[0.5,0.5], "\a3\ui_f\data\IGUI\Cfg\Cursors\selected_ca.paa"] call FUNC(renderSelector); }; diff --git a/addons/interact_menu/functions/fnc_renderSelector.sqf b/addons/interact_menu/functions/fnc_renderSelector.sqf index c2fe5f932c..2acc66c8eb 100644 --- a/addons/interact_menu/functions/fnc_renderSelector.sqf +++ b/addons/interact_menu/functions/fnc_renderSelector.sqf @@ -30,10 +30,10 @@ if(GVAR(iconCount) > (count GVAR(iconCtrls))-1) then { private _ctrl = GVAR(iconCtrls) select GVAR(iconCount); private _pos = if (GVAR(UseListMenu)) then { - [_ctrl, GVAR(iconCount), format ["", _icon]] call FUNC(ctrlSetParsedTextCached); + [_ctrl, GVAR(iconCount), format ["", _icon, GVAR(selectorColorHex)]] call FUNC(ctrlSetParsedTextCached); [(_sPos select 0)-(0.014*SafeZoneW), (_sPos select 1)-(0.014*SafeZoneW), 0.05*SafeZoneW, 0.035*SafeZoneW] } else { - [_ctrl, GVAR(iconCount), format ["", _icon]] call FUNC(ctrlSetParsedTextCached); + [_ctrl, GVAR(iconCount), format ["", _icon, GVAR(selectorColorHex)]] call FUNC(ctrlSetParsedTextCached); [(_sPos select 0)-(0.050*SafeZoneW), (_sPos select 1)-(0.014*SafeZoneW), 0.1*SafeZoneW, 0.035*SafeZoneW] }; diff --git a/addons/interact_menu/initSettings.sqf b/addons/interact_menu/initSettings.sqf new file mode 100644 index 0000000000..45c9fdbd3b --- /dev/null +++ b/addons/interact_menu/initSettings.sqf @@ -0,0 +1,9 @@ +[ + QGVAR(selectorColor), + "COLOR", + localize LSTRING(SelectorColor), + format ["ACE %1", localize LSTRING(Category_InteractionMenu)], + [1, 0, 0], + false, + {GVAR(selectorColorHex) = _this call BIS_fnc_colorRGBtoHTML} // Stored in Hex to avoid constant conversion +] call CBA_settings_fnc_init; diff --git a/addons/interact_menu/stringtable.xml b/addons/interact_menu/stringtable.xml index a05dcee3e4..ed961e4ead 100644 --- a/addons/interact_menu/stringtable.xml +++ b/addons/interact_menu/stringtable.xml @@ -446,5 +446,8 @@ 使選單的動畫速度更快,並減少子選項顯現出來的時間 상호 작용을 표시하기 위해 메뉴 애니메이션을 빠르게 만들고 마우스를 가져 오는 데 필요한 시간을 줄입니다. + + Selector Color + From ab23f4e4dc6aa5f2d3b1f3f780aec679ce3ca1cb Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Sat, 28 Apr 2018 17:23:59 -0500 Subject: [PATCH 112/235] Map - Fix ambient light effect flicking (#6313) * Map - Fix ambient light effect flicking * Remove format * formating --- addons/map/functions/fnc_determineMapLight.sqf | 2 +- addons/map/functions/fnc_simulateMapLight.sqf | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/addons/map/functions/fnc_determineMapLight.sqf b/addons/map/functions/fnc_determineMapLight.sqf index 3eaa39c6d8..55ca51fbd8 100644 --- a/addons/map/functions/fnc_determineMapLight.sqf +++ b/addons/map/functions/fnc_determineMapLight.sqf @@ -10,7 +10,7 @@ * 1: Color of the overlay * * Example: - * call ACE_map_fnc_determineMapLight + * [player] call ACE_map_fnc_determineMapLight * * Public: No */ diff --git a/addons/map/functions/fnc_simulateMapLight.sqf b/addons/map/functions/fnc_simulateMapLight.sqf index 94c0853b23..05eb15ba3e 100644 --- a/addons/map/functions/fnc_simulateMapLight.sqf +++ b/addons/map/functions/fnc_simulateMapLight.sqf @@ -47,7 +47,7 @@ _colourList sort false; private _maxColour = _colourList select 0; //ambient colour fill -_mapCtrl drawIcon [format["#(rgb,8,8,3)color(%1,%2,%3,1)", _r / _maxColour, _g / _maxColour, _b / _maxColour], [1,1,1,_colourAlpha], _mapCentre, _screenSize, _screenSize, 0, "", 0]; +_mapCtrl drawIcon ["#(rgb,8,8,3)color(1,1,1,1)", [_r / _maxColour, _g / _maxColour, _b / _maxColour, _colourAlpha], _mapCentre, _screenSize, _screenSize, 0, "", 0]; if (_flashlight == "") then { //ambient shade fill From 898c01587aaa49dfb3d428f8cc5c63a852634903 Mon Sep 17 00:00:00 2001 From: commy2 Date: Fri, 4 May 2018 17:35:28 +0200 Subject: [PATCH 113/235] Optimize suicide bomber zeus module (#6314) - decrease check frequency from each frame to 1 per second - simplify some math - remove some very redundant parenthesis - re-formated if control structure for readability - use more appropriate skillFinal - macro to change check delay, set to 0 in debug mode for debug line drawing --- .../zeus/functions/fnc_moduleSuicideBomber.sqf | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/addons/zeus/functions/fnc_moduleSuicideBomber.sqf b/addons/zeus/functions/fnc_moduleSuicideBomber.sqf index 778ca5c47c..10217c53dd 100644 --- a/addons/zeus/functions/fnc_moduleSuicideBomber.sqf +++ b/addons/zeus/functions/fnc_moduleSuicideBomber.sqf @@ -23,6 +23,11 @@ #define DISTANCE_FAR 15 #define DISTANCE_CLOSE 2 #define MOVE_TIME 10 +#define SCANNING_PERIOD 1 + +#ifdef DEBUG_MODE_FULL + #define SCANNING_PERIOD 0 +#endif TRACE_1("params",_this); @@ -66,8 +71,8 @@ if (_autoSeek) then { private _memory = _unit getVariable [QGVAR(suicideBomber_memory), [nil, CBA_missionTime]]; _memory params ["_lastMove", "_lastTime"]; - private _range = 100 max (200 * (_unit skill "spotDistance")); // 100-200 - private _nearestObjects = (nearestObjects [_unit, [], _range]) select {side _x == _activationSide && {_x != _unit} && {alive _x}}; + private _range = 100 + 100 * (_unit skillFinal "spotDistance"); // 100-200 + private _nearestObjects = nearestObjects [_unit, [], _range] select {side _x == _activationSide && {_x != _unit} && {alive _x}}; #ifdef DEBUG_MODE_FULL if !(isNil "_lastMove") then { @@ -92,11 +97,12 @@ if (_autoSeek) then { private _moveToPos = (_nearestObjects select 0) getPos [1, random 360]; if (isNil "_lastMove" || // No move given yet - {(_lastMove distance _moveToPos) > DISTANCE_FAR} || // New target is too far from last move - {(_lastMove distance _unit) < DISTANCE_CLOSE} || // Unit has reached last move - {CBA_missionTime >= _lastTime}) then { // Too much time passed between last move (also acts as a fail-safe if unit gets stuck) + {_lastMove distance _moveToPos > DISTANCE_FAR} || // New target is too far from last move + {_lastMove distance _unit < DISTANCE_CLOSE} || // Unit has reached last move + {CBA_missionTime >= _lastTime} // Too much time passed between last move (also acts as a fail-safe if unit gets stuck) + ) then { [QEGVAR(ai,doMove), [[[_unit, _moveToPos]]], _unit] call CBA_fnc_targetEvent; _unit setVariable [QGVAR(suicideBomber_memory), [_moveToPos, CBA_missionTime + MOVE_TIME]]; TRACE_2("Moving unit",_moveToPos,CBA_missionTime); }; -}, 0, _this] call CBA_fnc_addPerFrameHandler; +}, SCANNING_PERIOD, _this] call CBA_fnc_addPerFrameHandler; From 5f67e81355554752b759fb08d1354cddf87b50a6 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Fri, 4 May 2018 17:36:08 +0200 Subject: [PATCH 114/235] Fix suicide bomber explosion position (#6323) --- addons/zeus/functions/fnc_moduleSuicideBomber.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/zeus/functions/fnc_moduleSuicideBomber.sqf b/addons/zeus/functions/fnc_moduleSuicideBomber.sqf index 10217c53dd..a5ddbab566 100644 --- a/addons/zeus/functions/fnc_moduleSuicideBomber.sqf +++ b/addons/zeus/functions/fnc_moduleSuicideBomber.sqf @@ -60,7 +60,7 @@ if (_autoSeek) then { // Detonation private _nearObjects = (_unit nearObjects _activationRadius) select {side _x == _activationSide && {_x != _unit} && {alive _x}}; if !(_nearObjects isEqualTo []) then { - createVehicle [EXPLOSIVES select _explosionSize, getPos _unit, [], 0, "CAN_COLLIDE"]; + createVehicle [EXPLOSIVES select _explosionSize, _unit, [], 0, "CAN_COLLIDE"]; [_pfhID] call CBA_fnc_removePerFrameHandler; LOG("Explosion created, PFH removed"); }; From 2668bdc665939b2f03aafb68a14cb05d15afde3e Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Fri, 4 May 2018 18:57:38 +0200 Subject: [PATCH 115/235] Check if suicide bomber isAwake (#6324) Zeus - Don't trigger suicide bomber if unconsicous --- addons/zeus/functions/fnc_moduleSuicideBomber.sqf | 2 ++ 1 file changed, 2 insertions(+) diff --git a/addons/zeus/functions/fnc_moduleSuicideBomber.sqf b/addons/zeus/functions/fnc_moduleSuicideBomber.sqf index a5ddbab566..5364692ded 100644 --- a/addons/zeus/functions/fnc_moduleSuicideBomber.sqf +++ b/addons/zeus/functions/fnc_moduleSuicideBomber.sqf @@ -57,6 +57,8 @@ if (_autoSeek) then { LOG("Unit deleted or killed, PFH removed"); }; + if (!([_unit] call EFUNC(common,isAwake))) exitWith {}; + // Detonation private _nearObjects = (_unit nearObjects _activationRadius) select {side _x == _activationSide && {_x != _unit} && {alive _x}}; if !(_nearObjects isEqualTo []) then { From d68f67a1ef7b764327fd3d0ebb92845d33878642 Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Fri, 4 May 2018 16:13:42 -0500 Subject: [PATCH 116/235] Arsenal - Fix weight stat for NVGs (#6325) Fix #6320 --- addons/arsenal/functions/fnc_statTextStatement_mass.sqf | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/addons/arsenal/functions/fnc_statTextStatement_mass.sqf b/addons/arsenal/functions/fnc_statTextStatement_mass.sqf index 9be8c1c7d1..eeda9d7203 100644 --- a/addons/arsenal/functions/fnc_statTextStatement_mass.sqf +++ b/addons/arsenal/functions/fnc_statTextStatement_mass.sqf @@ -17,12 +17,12 @@ params ["", "_config"]; private _mass = getNumber (_config >> "mass"); -if (_mass == 0 && {isClass (_config >> "WeaponSlotsInfo")}) then { - _mass = getNumber (_config >> "WeaponSlotsInfo" >> "mass"); -}; - if (_mass == 0 && {isClass (_config >> "itemInfo")}) then { _mass = getNumber (_config >> "itemInfo" >> "mass"); }; +if (_mass == 0 && {isClass (_config >> "WeaponSlotsInfo")}) then { + _mass = getNumber (_config >> "WeaponSlotsInfo" >> "mass"); +}; + format ["%1kg (%2lb)",((_mass * 0.1 * (1/2.2046) * 100) / 100) ToFixed 2, ((_mass * 0.1 * 100) / 100) ToFixed 2] From c35a53ba79efa911078c71a856a3227cb2586439 Mon Sep 17 00:00:00 2001 From: Dystopian Date: Sat, 5 May 2018 21:54:13 +0300 Subject: [PATCH 117/235] Clean up deprecated in 3.13 --- addons/common/XEH_PREP.hpp | 1 - addons/common/functions/fnc_isUnderwater.sqf | 32 ------------------- addons/refuel/XEH_postInit.sqf | 5 --- .../spectator/functions/fnc_updateUnits.sqf | 11 +------ 4 files changed, 1 insertion(+), 48 deletions(-) delete mode 100644 addons/common/functions/fnc_isUnderwater.sqf diff --git a/addons/common/XEH_PREP.hpp b/addons/common/XEH_PREP.hpp index 8a33997f57..e0c44a90ac 100644 --- a/addons/common/XEH_PREP.hpp +++ b/addons/common/XEH_PREP.hpp @@ -113,7 +113,6 @@ PREP(isMedic); PREP(isModLoaded); PREP(isPlayer); PREP(isSwimming); -PREP(isUnderwater); PREP(lightIntensityFromObject); PREP(loadPerson); PREP(loadPersonLocal); diff --git a/addons/common/functions/fnc_isUnderwater.sqf b/addons/common/functions/fnc_isUnderwater.sqf deleted file mode 100644 index 0d7d1e50a1..0000000000 --- a/addons/common/functions/fnc_isUnderwater.sqf +++ /dev/null @@ -1,32 +0,0 @@ -/* - * Author: Glowbal - * Check if unit's head is underwater - * - * Arguments: - * 0: Unit - * - * Return Value: - * If unit's head is underwater - * - * Example: - * [bob] call ace_common_fnc_isUnderwater - * - * Public: Yes - */ -#include "script_component.hpp" - -ACE_DEPRECATED(QFUNC(isUnderwater),"3.13.0","underwater OBJECT"); - -params [["_unit", objNull, [objNull]]]; - -private _return = false; - -if (surfaceIsWater getPosASL _unit) then { - private _pos = _unit modelToWorldVisual (_unit selectionPosition "head"); - - if (_pos select 2 < 0) then { - _return = true; - }; -}; - -_return diff --git a/addons/refuel/XEH_postInit.sqf b/addons/refuel/XEH_postInit.sqf index b2d55e1f7f..92726bb61e 100644 --- a/addons/refuel/XEH_postInit.sqf +++ b/addons/refuel/XEH_postInit.sqf @@ -67,11 +67,6 @@ private _sourceClasses = []; private _fuelCargo = getNumber (_x >> QGVAR(fuelCargo)); if (_fuelCargo > 0 || {_fuelCargo == REFUEL_INFINITE_FUEL}) then { private _sourceClass = configName _x; - if (isClass (_x >> "ACE_Actions" >> "ACE_MainActions" >> QGVAR(Refuel))) exitWith { - if (!isClass (inheritsFrom _x >> "ACE_Actions" >> "ACE_MainActions" >> QGVAR(Refuel))) then { - ACE_DEPRECATED(FORMAT_1(QUOTE(GVAR(Refuel) interaction menu in %1),_sourceClass),"3.13.0",QUOTE(GVAR(fuelCargo) config value)); - }; - }; // check if we can use actions with inheritance if ( !isText (_x >> "EventHandlers" >> "CBA_Extended_EventHandlers" >> "init") // addActionToClass relies on XEH init diff --git a/addons/spectator/functions/fnc_updateUnits.sqf b/addons/spectator/functions/fnc_updateUnits.sqf index 6df7cad8ad..85ad1739ff 100644 --- a/addons/spectator/functions/fnc_updateUnits.sqf +++ b/addons/spectator/functions/fnc_updateUnits.sqf @@ -20,16 +20,7 @@ // Function only matters on player clients if (!hasInterface) exitWith {}; -params [["_addUnits",[],[[]]], ["_removeUnits",[],[[], true]]]; - -// Deprecated parameter (remember to remove bool from params when removed) -if (_removeUnits isEqualType true) then { - ACE_DEPRECATED("Boolean parameter","3.12.0","array (see function header or doc)"); - if (_removeUnits) then { - _removeUnits = _addUnits; - _addUnits = []; - }; -}; +params [["_addUnits",[],[[]]], ["_removeUnits",[],[[]]]]; // Add to the whitelist and prevent list overlap GVAR(unitBlacklist) = GVAR(unitBlacklist) - _addUnits; From fa983164240301c8f16fe8e507b89b8a213e4262 Mon Sep 17 00:00:00 2001 From: mharis001 <34453221+mharis001@users.noreply.github.com> Date: Mon, 7 May 2018 17:44:15 -0400 Subject: [PATCH 118/235] Correct arsenal openBox center check (#6329) --- addons/arsenal/functions/fnc_openBox.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/arsenal/functions/fnc_openBox.sqf b/addons/arsenal/functions/fnc_openBox.sqf index a4d45edac7..af23d9f990 100644 --- a/addons/arsenal/functions/fnc_openBox.sqf +++ b/addons/arsenal/functions/fnc_openBox.sqf @@ -22,7 +22,7 @@ params [["_object", objNull, [objNull]], ["_center", objNull, [objNull]], ["_mod if ( isNull _object || {isNull _center} || - {!(_center isKindOf "Man")} || + {!(_center isKindOf "CAManBase")} || {!(isNull objectParent _center) && {!is3DEN}} ) exitWith {}; From b1526ccb86d9de477cc23e8aea544fe6459b4a12 Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Wed, 9 May 2018 10:08:26 -0500 Subject: [PATCH 119/235] Spall - Don't throw script errors in doSpall if input is bad (#6322) - Fix #5614 - Don't run tracking siumlation on small calibre ammo that won't ever spall --- addons/frag/functions/fnc_doSpall.sqf | 13 +++++++++---- addons/frag/functions/fnc_fired.sqf | 23 +++++++++-------------- addons/frag/functions/fnc_spallHP.sqf | 2 +- addons/frag/functions/fnc_spallTrack.sqf | 2 +- 4 files changed, 20 insertions(+), 20 deletions(-) diff --git a/addons/frag/functions/fnc_doSpall.sqf b/addons/frag/functions/fnc_doSpall.sqf index 65b9327d5a..03a2df121b 100644 --- a/addons/frag/functions/fnc_doSpall.sqf +++ b/addons/frag/functions/fnc_doSpall.sqf @@ -22,7 +22,10 @@ private _initialData = GVAR(spallHPData) select (_hitData select 0); _initialData params ["_hpId", "_object", "_roundType", "_round", "_curPos", "_velocity"]; private _hpData = (_hitData select 1) select _hitPartDataIndex; -(_hpData select 0) removeEventHandler ["hitPart", _hpId]; +private _objectHit = _hpData param [0, objNull]; +TRACE_1("",_objectHit); +if ((isNil "_objectHit") || {isNull _objectHit}) exitWith {WARNING_1("Problem with hitPart data - bad object [%1]",_objectHit);}; +_objectHit removeEventHandler ["hitPart", _hpId]; private _caliber = getNumber (configFile >> "CfgAmmo" >> _roundType >> "caliber"); private _explosive = getNumber (configFile >> "CfgAmmo" >> _roundType >> "explosive"); @@ -54,6 +57,7 @@ if (_exit) exitWith {}; private _unitDir = vectorNormalized _velocity; private _pos = _hpData select 3; private _spallPos = []; +if ((isNil "_pos") || {!(_pos isEqualTypeArray [0,0,0])}) exitWith {WARNING_1("Problem with hitPart data - bad pos [%1]",_pos);}; for "_i" from 0 to 100 do { private _pos1 = _pos vectorAdd (_unitDir vectorMultiply (0.01 * _i)); private _pos2 = _pos vectorAdd (_unitDir vectorMultiply (0.01 * (_i + 1))); @@ -80,9 +84,9 @@ if (_explosive > 0) then { private _gC = getNumber (configFile >> "CfgAmmo" >> _roundType >> QGVAR(GURNEY_C)); if (_gC == 0) then {_gC = 2440; _warn = true;}; - if (_warn) then { - WARNING_1("Ammo class %1 lacks proper explosive properties definitions for frag!",_roundType); //TODO: turn this off when we get closer to release - }; + // if (_warn) then { + // WARNING_1("Ammo class %1 lacks proper explosive properties definitions for frag!",_roundType); //TODO: turn this off when we get closer to release + // }; private _fragPower = (((_m / _c) + _k) ^ - (1 / 2)) * _gC; _spallPolar set [0, _fragPower * 0.66]; @@ -91,6 +95,7 @@ if (_explosive > 0) then { // diag_log text format ["SPALL POWER: %1", _spallPolar select 0]; private _spread = 15 + (random 25); private _spallCount = 5 + (random 10); +TRACE_1("",_spallCount); for "_i" from 1 to _spallCount do { private _elev = ((_spallPolar select 2) - _spread) + (random (_spread * 2)); private _dir = ((_spallPolar select 1) - _spread) + (random (_spread * 2)); diff --git a/addons/frag/functions/fnc_fired.sqf b/addons/frag/functions/fnc_fired.sqf index a9d13cde08..8dc9be4307 100644 --- a/addons/frag/functions/fnc_fired.sqf +++ b/addons/frag/functions/fnc_fired.sqf @@ -24,19 +24,6 @@ private _shouldAdd = GVAR(cacheRoundsTypesToTrack) getVariable _ammo; if (isNil "_shouldAdd") then { TRACE_1("no cache for round",_ammo); - if (!EGVAR(common,settingsInitFinished)) exitWith { - //Just incase fired event happens before settings init, don't want to set cache wrong if spall setting changes - TRACE_1("Settings not init yet - exit without setting cache",_ammo); - _shouldAdd = false; - }; - - if (GVAR(spallEnabled)) exitWith { - //Always want to run whenever spall is enabled? - _shouldAdd = true; - TRACE_2("SettingCache[spallEnabled]",_ammo,_shouldAdd); - GVAR(cacheRoundsTypesToTrack) setVariable [_ammo, _shouldAdd]; - }; - //Read configs and test if it would actually cause a frag, using same logic as FUNC(pfhRound) private _skip = getNumber (configFile >> "CfgAmmo" >> _ammo >> QGVAR(skip)); private _explosive = getNumber (configFile >> "CfgAmmo" >> _ammo >> "explosive"); @@ -45,7 +32,15 @@ if (isNil "_shouldAdd") then { private _fragPower = getNumber (configFile >> "CfgAmmo" >> _ammo >> "indirecthit") * (sqrt (getNumber (configFile >> "CfgAmmo" >> _ammo >> "indirectHitRange"))); _shouldAdd = (_skip == 0) && {(_force == 1) || {_explosive > 0.5 && {_indirectRange >= 4.5} && {_fragPower >= 35}}}; - TRACE_6("SettingCache[willFrag?]",_skip,_explosive,_indirectRange,_force,_fragPower,_shouldAdd); + + if (GVAR(spallEnabled) && {!_shouldAdd}) then { + private _caliber = getNumber (configFile >> "CfgAmmo" >> _ammo >> "caliber"); + if !(_caliber >= 2.5 || {(_explosive > 0 && {_indirectRange >= 1})}) exitWith {}; // from check in doSpall: line 34 + TRACE_1("Won't frag, but will spall",_caliber); + _shouldAdd = true; + }; + + TRACE_6("Setting Cache",_skip,_explosive,_indirectRange,_force,_fragPower,_shouldAdd); GVAR(cacheRoundsTypesToTrack) setVariable [_ammo, _shouldAdd]; }; diff --git a/addons/frag/functions/fnc_spallHP.sqf b/addons/frag/functions/fnc_spallHP.sqf index 643f5aefe4..bc38c5c0fa 100644 --- a/addons/frag/functions/fnc_spallHP.sqf +++ b/addons/frag/functions/fnc_spallHP.sqf @@ -1,6 +1,6 @@ /* * Author: ACE-Team - * + * Handles the HitPart event * * Arguments: * None diff --git a/addons/frag/functions/fnc_spallTrack.sqf b/addons/frag/functions/fnc_spallTrack.sqf index ee928b35c0..ef1d7f77a8 100644 --- a/addons/frag/functions/fnc_spallTrack.sqf +++ b/addons/frag/functions/fnc_spallTrack.sqf @@ -1,6 +1,6 @@ /* * Author: ACE-Team - * + * Add HitPart EventHandler to objects in the projectile's path * * Arguments: * None From a4b803e2c14836b5a18fc73ac5e081c67dc0024a Mon Sep 17 00:00:00 2001 From: Dystopian Date: Wed, 9 May 2018 18:09:34 +0300 Subject: [PATCH 120/235] Interaction - Allow RHIB push (#6302) --- addons/interaction/CfgVehicles.hpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/addons/interaction/CfgVehicles.hpp b/addons/interaction/CfgVehicles.hpp index 13f84bd5d0..c438eb2104 100644 --- a/addons/interaction/CfgVehicles.hpp +++ b/addons/interaction/CfgVehicles.hpp @@ -565,6 +565,11 @@ class CfgVehicles { }; }; + class Boat_F; + class Boat_Transport_02_base_F: Boat_F { + GVAR(canPush) = 1; + }; + class StaticWeapon: LandVehicle { class ACE_Actions { class ACE_MainActions { From 4df3cfe8a096a777d226baf5738227f452c307b7 Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Wed, 9 May 2018 10:32:44 -0500 Subject: [PATCH 121/235] Clean up ace_main requiredAddons list (#6332) Close #6331 --- addons/main/config.cpp | 872 ----------------------------------------- 1 file changed, 872 deletions(-) diff --git a/addons/main/config.cpp b/addons/main/config.cpp index 9550b29a78..1d02625747 100644 --- a/addons/main/config.cpp +++ b/addons/main/config.cpp @@ -7,879 +7,7 @@ class CfgPatches { weapons[] = {}; requiredVersion = REQUIRED_VERSION; requiredAddons[] = { - "A3_Data_F_Loadorder", - "A3_Data_F_Curator_Loadorder", - "A3_Data_F_Kart_Loadorder", - "A3_Data_F_Bootcamp_Loadorder", - "A3_Data_F_Heli_Loadorder", - "A3_Data_F_Mark_Loadorder", - "A3_Data_F_Exp_A_Loadorder", - "A3_Data_F_Exp_B_Loadorder", - "A3_Data_F_Exp_Loadorder", - "A3_Data_F_Jets_Loadorder", - "A3_Data_F_Argo_Loadorder", - "A3_Data_F_Patrol_Loadorder", - "A3_Data_F_Orange_Loadorder", "A3_Data_F_Tank_Loadorder", - - // Vanilla - "a3_3den", - "a3_3den_language", - "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", - "a3_air_f_epb_heli_light_03", - "a3_air_f_epc", - "a3_air_f_epc_plane_cas_01", - "a3_air_f_epc_plane_cas_02", - "a3_air_f_epc_plane_fighter_03", - "a3_air_f_exp", - "a3_air_f_exp_heli_light_01", - "a3_air_f_exp_heli_transport_01", - "a3_air_f_exp_plane_civil_01", - "a3_air_f_exp_uav_03", - "a3_air_f_exp_uav_04", - "a3_air_f_exp_vtol_01", - "a3_air_f_exp_vtol_02", - "a3_air_f_gamma", - "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_beta", - "a3_animals_f_beta_chicken", - "a3_animals_f_beta_dog", - "a3_animals_f_beta_goat", - "a3_animals_f_beta_sheep", - "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_bootcamp", - "a3_anims_f_config_sdr", - "a3_anims_f_config_sdr_weaponswitching", - "a3_anims_f_data", - "a3_anims_f_epa", - "a3_anims_f_epc", - "a3_anims_f_exp", - "a3_anims_f_exp_a", - "a3_anims_f_exp_revive", - "a3_anims_f_heli", - "a3_anims_f_kart", - "a3_anims_f_mark", - "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_01", - "a3_armor_f_beta_apc_tracked_02", - "a3_armor_f_beta_apc_wheeled_01", - "a3_armor_f_beta_apc_wheeled_02", - "a3_armor_f_epb", - "a3_armor_f_epb_apc_tracked_03", - "a3_armor_f_epb_mbt_03", - "a3_armor_f_epc", - "a3_armor_f_epc_mbt_01", - "a3_armor_f_exp", - "a3_armor_f_exp_apc_tracked_02", - "a3_armor_f_exp_apc_wheeled_02", - "a3_armor_f_exp_mbt_02", - "a3_armor_f_gamma", - "a3_armor_f_gamma_apc_wheeled_03", - "a3_armor_f_gamma_mbt_01", - "a3_armor_f_gamma_mbt_02", - "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", - "a3_boat_f_beta_boat_armed_01", - "a3_boat_f_beta_boat_transport_01", - "a3_boat_f_beta_sdv_01", - "a3_boat_f_boat_armed_01", - "a3_boat_f_boat_transport_01", - "a3_boat_f_civilian_boat", - "a3_boat_f_epc", - "a3_boat_f_epc_submarine_01", - "a3_boat_f_epc_submarine_01_f", - "a3_boat_f_exp", - "a3_boat_f_exp_boat_transport_01", - "a3_boat_f_exp_boat_transport_02", - "a3_boat_f_exp_scooter_transport_01", - "a3_boat_f_gamma", - "a3_boat_f_gamma_boat_civil_01", - "a3_boat_f_gamma_boat_civil_04", - "a3_boat_f_gamma_boat_transport_01", - "a3_boat_f_heli", - "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_exp", - "a3_cargoposes_f_heli", - "a3_characters_f", - "a3_characters_f_beta", - "a3_characters_f_beta_indep", - "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_exp", - "a3_characters_f_exp_civil", - "a3_characters_f_exp_headgear", - "a3_characters_f_exp_vests", - "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", - "a3_data_f_exp_a", - "a3_data_f_exp_a_virtual", - "a3_data_f_exp_b", - "a3_data_f_exp_particleeffects", - "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_drones_f", - "a3_drones_f_air_f_gamma_uav_01", - "a3_drones_f_air_f_gamma_uav_02", - "a3_drones_f_characters_f_gamma", - "a3_drones_f_soft_f_gamma_ugv_01", - "a3_drones_f_weapons_f_gamma_ammoboxes", - "a3_drones_f_weapons_f_gamma_items", - "a3_dubbing_f", - "a3_dubbing_f_beta", - "a3_dubbing_f_bootcamp", - "a3_dubbing_f_epa", - "a3_dubbing_f_epb", - "a3_dubbing_f_epc", - "a3_dubbing_f_exp", - "a3_dubbing_f_gamma", - "a3_dubbing_f_heli", - "a3_dubbing_f_mark", - "a3_dubbing_f_mp_mark", - "a3_dubbing_radio_f", - "a3_dubbing_radio_f_data_eng", - "a3_dubbing_radio_f_data_engb", - "a3_dubbing_radio_f_data_gre", - "a3_dubbing_radio_f_data_per", - "a3_dubbing_radio_f_data_vr", - "a3_dubbing_radio_f_exp", - "a3_dubbing_radio_f_exp_data_chi", - "a3_dubbing_radio_f_exp_data_engfre", - "a3_dubbing_radio_f_exp_data_fre", - "a3_editor_f", - "a3_editorpreviews_f", - "a3_editorpreviews_f_exp", - "a3_functions_f", - "a3_functions_f_bootcamp", - "a3_functions_f_curator", - "a3_functions_f_epa", - "a3_functions_f_epc", - "a3_functions_f_exp", - "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", - "a3_language_f_exp_a", - "a3_language_f_exp_b", - "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_bootcamp", - "a3_languagemissions_f_epa", - "a3_languagemissions_f_epb", - "a3_languagemissions_f_epc", - "a3_languagemissions_f_exp", - "a3_languagemissions_f_exp_a", - "a3_languagemissions_f_gamma", - "a3_languagemissions_f_heli", - "a3_languagemissions_f_kart", - "a3_languagemissions_f_mark", - "a3_languagemissions_f_mp_mark", - "a3_map_altis", - "a3_map_altis_data", - "a3_map_altis_data_layers", - "a3_map_altis_scenes", - "a3_map_altis_scenes_f", - "a3_map_data", - "a3_map_stratis", - "a3_map_stratis_data", - "a3_map_stratis_data_layers", - "a3_map_stratis_scenes", - "a3_map_stratis_scenes_f", - "a3_map_vr", - "a3_map_vr_scenes", - "a3_map_vr_scenes_f", - "a3_misc_f", - "a3_misc_f_helpers", - "a3_missions_f", - "a3_missions_f_beta", - "a3_missions_f_beta_data", - "a3_missions_f_beta_video", - "a3_missions_f_bootcamp", - "a3_missions_f_bootcamp_data", - "a3_missions_f_bootcamp_video", - "a3_missions_f_curator", - "a3_missions_f_data", - "a3_missions_f_epa", - "a3_missions_f_epa_data", - "a3_missions_f_epa_video", - "a3_missions_f_epb", - "a3_missions_f_epc", - "a3_missions_f_exp", - "a3_missions_f_exp_a", - "a3_missions_f_exp_a_data", - "a3_missions_f_exp_data", - "a3_missions_f_exp_video", - "a3_missions_f_gamma", - "a3_missions_f_gamma_data", - "a3_missions_f_gamma_video", - "a3_missions_f_heli", - "a3_missions_f_heli_data", - "a3_missions_f_heli_video", - "a3_missions_f_kart", - "a3_missions_f_kart_data", - "a3_missions_f_mark", - "a3_missions_f_mark_data", - "a3_missions_f_mark_video", - "a3_missions_f_mp_mark", - "a3_missions_f_mp_mark_data", - "a3_missions_f_video", - "a3_modules_f", - "a3_modules_f_beta", - "a3_modules_f_beta_data", - "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_data", - "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", - "a3_modules_f_exp_a", - "a3_modules_f_groupmodifiers", - "a3_modules_f_hc", - "a3_modules_f_heli", - "a3_modules_f_heli_misc", - "a3_modules_f_heli_spawnai", - "a3_modules_f_intel", - "a3_modules_f_kart", - "a3_modules_f_kart_data", - "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_mp_mark_objectives", - "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_bootcamp_music", - "a3_music_f_epa", - "a3_music_f_epa_music", - "a3_music_f_epb", - "a3_music_f_epb_music", - "a3_music_f_epc", - "a3_music_f_epc_music", - "a3_music_f_exp", - "a3_music_f_exp_music", - "a3_music_f_heli", - "a3_music_f_heli_music", - "a3_music_f_mark", - "a3_music_f_mark_music", - "a3_music_f_music", - "a3_plants_f", - "a3_plants_f_bush", - "a3_props_f_exp", - "a3_props_f_exp_a", - "a3_props_f_exp_a_military", - "a3_props_f_exp_a_military_equipment", - "a3_props_f_exp_civilian", - "a3_props_f_exp_civilian_garbage", - "a3_props_f_exp_commercial", - "a3_props_f_exp_commercial_market", - "a3_props_f_exp_industrial", - "a3_props_f_exp_industrial_heavyequipment", - "a3_props_f_exp_infrastructure", - "a3_props_f_exp_infrastructure_railways", - "a3_props_f_exp_infrastructure_traffic", - "a3_props_f_exp_military", - "a3_props_f_exp_military_camps", - "a3_props_f_exp_military_oldplanewrecks", - "a3_props_f_exp_naval", - "a3_props_f_exp_naval_boats", - "a3_roads_f", - "a3_rocks_f", - "a3_rocks_f_blunt", - "a3_rocks_f_sharp", - "a3_rocks_f_water", - "a3_signs_f", - "a3_signs_f_ad", - "a3_signs_f_signs_ad", - "a3_soft_f", - "a3_soft_f_beta", - "a3_soft_f_beta_mrap_03", - "a3_soft_f_beta_quadbike", - "a3_soft_f_beta_quadbike_01", - "a3_soft_f_beta_truck_01", - "a3_soft_f_beta_truck_02", - "a3_soft_f_bootcamp", - "a3_soft_f_bootcamp_offroad_01", - "a3_soft_f_bootcamp_quadbike", - "a3_soft_f_bootcamp_quadbike_01", - "a3_soft_f_bootcamp_truck", - "a3_soft_f_bootcamp_van_01", - "a3_soft_f_car", - "a3_soft_f_crusher_ugv", - "a3_soft_f_epc", - "a3_soft_f_epc_truck_03", - "a3_soft_f_exp", - "a3_soft_f_exp_lsv_01", - "a3_soft_f_exp_lsv_02", - "a3_soft_f_exp_mrap_02", - "a3_soft_f_exp_offroad_01", - "a3_soft_f_exp_offroad_02", - "a3_soft_f_exp_quadbike_01", - "a3_soft_f_exp_truck_03", - "a3_soft_f_exp_ugv_01", - "a3_soft_f_exp_van_01", - "a3_soft_f_gamma", - "a3_soft_f_gamma_hatchback_01", - "a3_soft_f_gamma_hemtt", - "a3_soft_f_gamma_offroad", - "a3_soft_f_gamma_offroad_01", - "a3_soft_f_gamma_quadbike", - "a3_soft_f_gamma_quadbike_01", - "a3_soft_f_gamma_suv_01", - "a3_soft_f_gamma_truck_01", - "a3_soft_f_gamma_truck_02", - "a3_soft_f_gamma_truckheavy", - "a3_soft_f_gamma_van_01", - "a3_soft_f_heli", - "a3_soft_f_heli_car", - "a3_soft_f_heli_crusher_ugv", - "a3_soft_f_heli_hatchback_01", - "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_quadbike_01", - "a3_soft_f_heli_suv", - "a3_soft_f_heli_suv_01", - "a3_soft_f_heli_truck", - "a3_soft_f_heli_ugv_01", - "a3_soft_f_heli_van_01", - "a3_soft_f_hemtt", - "a3_soft_f_kart", - "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_quadbike_01", - "a3_soft_f_suv", - "a3_soft_f_truck", - "a3_soft_f_truckheavy", - "a3_sounds_f", - "a3_sounds_f_arsenal", - "a3_sounds_f_bootcamp", - "a3_sounds_f_characters", - "a3_sounds_f_environment", - "a3_sounds_f_epb", - "a3_sounds_f_epc", - "a3_sounds_f_exp", - "a3_sounds_f_exp_a", - "a3_sounds_f_heli", - "a3_sounds_f_kart", - "a3_sounds_f_mark", - "a3_sounds_f_sfx", - "a3_sounds_f_vehicles", - "a3_static_f", - "a3_static_f_aa_01", - "a3_static_f_at_01", - "a3_static_f_beta", - "a3_static_f_beta_mortar_01", - "a3_static_f_exp", - "a3_static_f_gamma", - "a3_static_f_gamma_aa", - "a3_static_f_gamma_at", - "a3_static_f_gamma_mortar_01", - "a3_static_f_mark", - "a3_static_f_mark_designator_01", - "a3_static_f_mark_designator_02", - "a3_static_f_mortar_01", - "a3_structures_f", - "a3_structures_f_bootcamp", - "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_data", - "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", - "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", - "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", - "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", - "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_food", - "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", - "a3_structures_f_kart_civ_sportsgrounds", - "a3_structures_f_kart_mil_flags", - "a3_structures_f_kart_signs_companies", - "a3_structures_f_mark", - "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_exp", - "a3_supplies_f_exp_ammoboxes", - "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_data", - "a3_ui_f_exp", - "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_longrangerifles_ebr", - "a3_weapons_f_beta_longrangerifles_gm6", - "a3_weapons_f_beta_longrangerifles_m320", - "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_gm6_camo", - "a3_weapons_f_bootcamp_longrangerifles_m320", - "a3_weapons_f_bootcamp_longrangerifles_m320_camo", - "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_gm6", - "a3_weapons_f_epb_longrangerifles_m320", - "a3_weapons_f_epb_rifles_mx_black", - "a3_weapons_f_epc", - "a3_weapons_f_exp", - "a3_weapons_f_exp_launchers_rpg32", - "a3_weapons_f_exp_launchers_rpg7", - "a3_weapons_f_exp_launchers_titan", - "a3_weapons_f_exp_longrangerifles_dmr_07", - "a3_weapons_f_exp_machineguns_lmg_03", - "a3_weapons_f_exp_pistols_pistol_01", - "a3_weapons_f_exp_rifles_ak12", - "a3_weapons_f_exp_rifles_akm", - "a3_weapons_f_exp_rifles_aks", - "a3_weapons_f_exp_rifles_arx", - "a3_weapons_f_exp_rifles_ctar", - "a3_weapons_f_exp_rifles_ctars", - "a3_weapons_f_exp_rifles_spar_01", - "a3_weapons_f_exp_rifles_spar_02", - "a3_weapons_f_exp_rifles_spar_03", - "a3_weapons_f_exp_smgs_smg_05", - "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_gamma_longrangerifles_ebr", - "a3_weapons_f_gamma_rifles_mx", - "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_rpg32", - "a3_weapons_f_launchers_titan", - "a3_weapons_f_longrangerifles_dmr_01", - "a3_weapons_f_longrangerifles_ebr", - "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_ebr", - "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_mx_black", - "a3_weapons_f_rifles_sdar", - "a3_weapons_f_rifles_smg_02", - "a3_weapons_f_rifles_trg20", - "a3_weapons_f_rifles_vector", - "a3_weapons_f_smgs_pdw2000", - "a3_weapons_f_smgs_smg_01", - "a3_weapons_f_smgs_smg_02", - "a3_weapons_f_uniforms", - "a3_weapons_f_vests", - "curatoronly_air_f_beta_heli_attack_01", - "curatoronly_air_f_beta_heli_attack_02", - "curatoronly_air_f_gamma_uav_01", - "curatoronly_armor_f_amv", - "curatoronly_armor_f_beta_apc_tracked_02", - "curatoronly_armor_f_marid", - "curatoronly_armor_f_panther", - "curatoronly_armor_f_slammer", - "curatoronly_armor_f_t100k", - "curatoronly_boat_f_boat_armed_01", - "curatoronly_characters_f_blufor", - "curatoronly_characters_f_common", - "curatoronly_characters_f_opfor", - "curatoronly_modules_f_curator_animals", - "curatoronly_modules_f_curator_chemlights", - "curatoronly_modules_f_curator_effects", - "curatoronly_modules_f_curator_environment", - "curatoronly_modules_f_curator_flares", - "curatoronly_modules_f_curator_lightning", - "curatoronly_modules_f_curator_mines", - "curatoronly_modules_f_curator_objectives", - "curatoronly_modules_f_curator_ordnance", - "curatoronly_modules_f_curator_smokeshells", - "curatoronly_signs_f", - "curatoronly_soft_f_crusher_ugv", - "curatoronly_soft_f_mrap_01", - "curatoronly_soft_f_mrap_02", - "curatoronly_soft_f_quadbike", - "curatoronly_static_f_gamma", - "curatoronly_static_f_mortar_01", - "curatoronly_structures_f_civ_ancient", - "curatoronly_structures_f_civ_camping", - "curatoronly_structures_f_civ_garbage", - "curatoronly_structures_f_epa_civ_constructions", - "curatoronly_structures_f_epb_civ_dead", - "curatoronly_structures_f_ind_cargo", - "curatoronly_structures_f_ind_crane", - "curatoronly_structures_f_ind_reservoirtank", - "curatoronly_structures_f_ind_transmitter_tower", - "curatoronly_structures_f_items_vessels", - "curatoronly_structures_f_mil_bagbunker", - "curatoronly_structures_f_mil_bagfence", - "curatoronly_structures_f_mil_cargo", - "curatoronly_structures_f_mil_fortification", - "curatoronly_structures_f_mil_radar", - "curatoronly_structures_f_mil_shelters", - "curatoronly_structures_f_research", - "curatoronly_structures_f_walls", - "curatoronly_structures_f_wrecks", - "a3data", - "3den", - "map_vr", - // CBA "cba_ui", "cba_xeh", From 2cd4615d5deae9b489287766a522492d9d3d9ec2 Mon Sep 17 00:00:00 2001 From: classic Date: Fri, 11 May 2018 22:39:32 +0900 Subject: [PATCH 122/235] Update Japanese translations (#6340) * Update Japanese translation * Update Japanese translation * Update Japanese translation * Update Japanese translation * Update Japanese translation * Update Japanese translation * Update Japanese translation * Update Japanese translation * Update Japanese translation * Update japanese translation * Update Japanese translation * Update Japanese translation * Update Japanese translation * Update Japanese translation * Update Japanese translation * Update Japanese translation * Update Japanese translation * Update Japanese translation * Update Japanese translation * Update Japanese translation * Update Japanese translation * Update Japanese translation * Update Japanese translation * Update Japanese translation * Update Japanese translation * Update Japanese translation * Update Japanese translation * Update Japanese translation * Update Japanese translation * Update Japanese translation * Update Japanese translation * Update Japanese translation * Update Japanese translation * Update Japanese translation * Update Japanese translation * Update Japanese translation * Update Japanese translation * Update Japanese translation * Update Japanese translation * Update Japanese translation * Update Japanese translation * Update Japanese translation * Update Japanese translation * Update Japanese translation --- addons/advanced_ballistics/stringtable.xml | 6 +- addons/advanced_fatigue/stringtable.xml | 4 +- addons/arsenal/stringtable.xml | 20 ++++-- addons/attach/stringtable.xml | 18 +++--- addons/ballistics/stringtable.xml | 5 ++ addons/captives/stringtable.xml | 2 +- addons/cargo/stringtable.xml | 12 ++-- addons/common/stringtable.xml | 2 + addons/cookoff/stringtable.xml | 2 +- addons/dogtags/stringtable.xml | 2 +- addons/dragging/stringtable.xml | 2 +- addons/explosives/stringtable.xml | 7 +- addons/fcs/stringtable.xml | 2 +- addons/finger/stringtable.xml | 4 +- addons/flashlights/stringtable.xml | 1 + addons/gestures/stringtable.xml | 2 +- addons/gforces/stringtable.xml | 1 + addons/hearing/stringtable.xml | 18 ++++-- addons/interact_menu/stringtable.xml | 9 +-- addons/interaction/stringtable.xml | 15 +++-- addons/logistics_wirecutter/stringtable.xml | 2 +- addons/magazinerepack/stringtable.xml | 8 +-- addons/maptools/stringtable.xml | 2 +- addons/maverick/stringtable.xml | 3 + addons/medical/stringtable.xml | 72 +++++++++++---------- addons/medical_ai/stringtable.xml | 2 + addons/medical_menu/stringtable.xml | 32 ++++----- addons/minedetector/stringtable.xml | 4 +- addons/movement/stringtable.xml | 2 +- addons/nametags/stringtable.xml | 3 +- addons/nightvision/stringtable.xml | 10 ++- addons/overheating/stringtable.xml | 12 ++-- addons/overpressure/stringtable.xml | 2 + addons/parachute/stringtable.xml | 2 +- addons/quickmount/stringtable.xml | 8 +-- addons/rearm/stringtable.xml | 25 +++---- addons/refuel/stringtable.xml | 26 ++++---- addons/repair/stringtable.xml | 28 ++++---- addons/respawn/stringtable.xml | 8 +-- addons/safemode/stringtable.xml | 4 +- addons/sandbag/stringtable.xml | 6 +- addons/scopes/stringtable.xml | 2 + addons/spectator/stringtable.xml | 2 +- addons/zeus/stringtable.xml | 18 ++++-- 44 files changed, 236 insertions(+), 181 deletions(-) diff --git a/addons/advanced_ballistics/stringtable.xml b/addons/advanced_ballistics/stringtable.xml index 0d52797b19..b3fb2015d8 100644 --- a/addons/advanced_ballistics/stringtable.xml +++ b/addons/advanced_ballistics/stringtable.xml @@ -76,7 +76,7 @@ Engedélyezi a fejlett ballisztikát Включает продвинутую баллистику Abilita Balistica Avanzata - アドバンスド バリスティックス + アドバンスド バリスティックスを有効化 고급 탄도학을 적용합니다 啟用先進彈道系統 启用先进弹道系统 @@ -94,7 +94,7 @@ Simulates slight variations in muzzle velocity between each shot Simuliert leichte Variationen der Mündungsgeschwindigkeit zwischen jedem Schuss. - 発射毎に僅かな銃口初速の変化をシミュレートします。 + 発射毎に銃口初速の僅かな変化をシミュレートします Simula lievi variazioni della velocità della volata tra un colpo e l'altro 각 사격 사이에 총구속도 변화를 시뮬레이션 합니다. 模擬每發子彈的槍口初速都略有不同 @@ -272,7 +272,7 @@ Этот модуль включает симуляцию продвинутой баллистики - при этом на траекторию полета снаряда влияют различные параметры, такие как температура воздуха, атмосферное давление, влажность, гравитация, тип боеприпаса и оружия, из которого произвели выстрел. Este módulo permite la simulación balística avanzada - es decir, la trayectoria de los proyectiles está influenciada por variables como la temperatura del aire, la presión atmosférica, la humedad, la gravedad, el tipo de municiones y el arma desde el que fue disparada. Questo modulo abilita la simulazione della Balistica Avanzata - cioè la traiettoria dei proiettili è influenzata da variabili come la temperatura dell'aria, pressione atmosferica, umidità, gravità, il tipo di munizione e l'arma da cui è sparata - このモジュールはアドバンスド バリスティックスを有効化します。弾道は気温や気圧、湿度、重力、弾薬の種類、発射する武器から影響を受けるようになります。 + アドバンスド バリスティックスを有効化します。弾道は気温や気圧、湿度、重力、弾薬の種類、発射する武器から影響を受けるようになります。 이 모듈은 고급 탄도학을 적용시킵니다 - 이는 발사체의 궤적이 기온, 대기압, 습도, 중력, 탄환의 종류와 어느 무기에서 발사되는지에 따라 영향을 받습니다. 該模塊實現先進的彈道仿真 - 這意味著子彈的軌跡是由空氣溫度、大氣壓力、濕度、重力、彈藥類型以及射擊的武器所影響 该模块实现先进的弹道仿真 - 这意味着子弹的轨迹是由空气温度、大气压力、湿度、重力、弹药类型以及射击的武器所影响 diff --git a/addons/advanced_fatigue/stringtable.xml b/addons/advanced_fatigue/stringtable.xml index 95b30d3c57..db1fb25c79 100644 --- a/addons/advanced_fatigue/stringtable.xml +++ b/addons/advanced_fatigue/stringtable.xml @@ -35,7 +35,7 @@ Influences the overall performance of this unit. Higher means better. Beinflusst die Leistungsfähigkeit dieser Einheit. Ein höherer Wert bedeutet bessere Leistung. - このユニットの全体的な動作に影響させます。高いほど良い効果があります。 + ユニットの全体的な動作に影響させます。高いほど良い効果があります。 Wpływa na ogólną wydolność tej jednostki. Więcej znaczy lepiej. 모든 성능이 이 단위로 영향을 받습니다. 값이 클수록 더 나은 성능을 발휘합니다 Influence les performances générales de cette unité. Une valeur plus élevée implique de meilleures performances. @@ -101,7 +101,7 @@ Sets how much steep terrain increases stamina loss. Higher means higher stamina loss. Beeinflusst, wie stark Steigungen den Ausdauerverbrauch erhöhen. Ein höherer Wert erhöht den Ausdauerverbrauch. - 地形によって影響する体力の消費量を決定します。高数値ではより体力を消費します。 + 地形によって体力の消費量を決定します。高数値ではより体力を消費します。 Wpływa na to w jakim stopniu stromy teren wpływa na utratę wytrzymałości. Więcej oznacza szybszą utratę wytrzymałości. 경사도에 따라 얼마나 피로해지는지를 정합니다. 값이 클수록 더 많은 피로를 유발합니다. Configure l'influence de l'inclinaison du terrain sur la perte d'endurance. Une valeur plus élevée implique une perte d'endurance plus importante. diff --git a/addons/arsenal/stringtable.xml b/addons/arsenal/stringtable.xml index 3f4ce4e5a2..24e6968cb5 100644 --- a/addons/arsenal/stringtable.xml +++ b/addons/arsenal/stringtable.xml @@ -116,7 +116,7 @@ Renomme l'équipement sélectionné Ausgewählte Ausrüstung umbenennen Zmień nazwę wybranego zestawu - 現在選択中の装備を改名します + 選択中の装備を改名します Rinomina l'equipaggiamento selezionato 선택한 로드아웃의 이름 바꾸기 重新命名當前選擇的裝備 @@ -138,7 +138,7 @@ Charger l'équipement sélectionné Ausgewählte Ausrüstung laden Wczytaj wybrany zestaw - 現在選択中の装備を読み込みます + 選択中の装備を読み込みます Carica l'equipaggiamento selezionato 선택한 로드아웃 불러오기 載入當前選擇的裝備 @@ -160,7 +160,7 @@ Supprimer l'équipement sélectionné Ausgewählte Ausrüstung entfernen Skasuj wybrany zestaw - 現在選択中の装備を削除します + 選択中の装備を削除します Elimina l'equipaggiamento selezionato 선택한 로드아웃 삭제하기 刪除當前選擇的裝備 @@ -182,7 +182,7 @@ Équipements enregistrés dans votre profil Ausrüstungen, die in deinem Profil gespeichert sind Zestawy zapisane w Twoim profilu - 自プロフィールに保存された装備です + プロフィールに保存された装備です Gli equipaggiamenti salvati nel tuo profilo 프로필에 저장된 로드아웃 裝備已保存到你的設定檔中 @@ -618,7 +618,7 @@ No player unit available! Place a unit and mark it as "Player". Aucune unité joueur disponible ! Placez une unité et marquez la en tant que "joueur". Keine Spielereinheit verfügbar. Setze eine Einheit und markiere sie als "Spieler". - プレイヤー ユニットがありません!ユニットを設置しそれを"Player"と名付けてください。 + プレイヤー ユニットがありません!ユニットを設置し"Player"と名付けてください。 플레이어 유닛을 사용할 수 없습니다! 유닛을 놓고 "플레이어"라고 표시하십시오. 沒有可用的玩家單位!請擺放一個單位並設定成"玩家"。 没有可用的玩家单位!请摆放一个单位并设定成"玩家"。 @@ -669,22 +669,26 @@ Affiche la page des équipements 開啟裝備選單 开启装备选单 + 装備画面を開く Export current / default loadouts Exporte l'équipement actuel ou la liste d'équipements de base 匯出當前/預設的裝備 汇出当前/预设的装备 + 現在 / 標準装備を出力 Import current / default loadouts Importer l'équipement actuel ou la liste d'équipements de base 匯入當前/預設的裝備 汇入当前/预设的装备 + 現在 / 標準装備を取込 Potassium levels Taux de potassium + カリウム レベル Magnification @@ -699,24 +703,28 @@ Aumentox 배율 放大倍数 - 拡大 + 拡大倍率 Büyütme Page Page + ページ Enable the faces / voices / insignias tabs Activer les onglets faces / voix / insignes + 顔 / 声 / 記章タブを有効化 Empty the selected container Vider le conteneur selectionné + 選択されたコンテナは空です Exported class name to clipboard Nom de classe exporté dans le presse papier + クリップボードへクラスネームを出力 diff --git a/addons/attach/stringtable.xml b/addons/attach/stringtable.xml index a8e8c23cdf..04a93d53a6 100644 --- a/addons/attach/stringtable.xml +++ b/addons/attach/stringtable.xml @@ -60,7 +60,7 @@ Strobo IR attaccata Infravörös jeladó hozzácsatolva ИК-маяк прикреплён - 赤外線ストロボを取り付ける + 赤外線ストロボを取り付けました 적외선 스트로브 부착됨 已附掛紅外線頻閃器 已附挂红外线频闪器 @@ -76,7 +76,7 @@ Strobo IR staccata Infravörös jeladó lecsatolva ИК-маяк отсоединён - 赤外線ストロボを外す + 赤外線ストロボを外しました 적외선 스트로브 분리됨 已取下紅外線頻閃器 已取下红外线频闪器 @@ -92,7 +92,7 @@ Granata IR attaccata Infravörös gránát hozzácsatolva ИК-граната прикреплена - 赤外線グレネードを取り付ける + 赤外線グレネードを取り付けました 적외선 수류탄 부착됨 已附掛紅外線手榴彈 已附挂红外线手榴弹 @@ -108,7 +108,7 @@ Granata IR staccata Infravörös gránát lecsatolva ИК-граната отсоединена - 赤外線グレネードを外す + 赤外線グレネードを外しました 적외선 수류탄 분리됨 已取下紅外線手榴彈 已取下红外线手榴弹 @@ -124,7 +124,7 @@ Chemlight attaccata Chemlight hozzácsatolva Химсвет прикреплён - ケミライトを取り付け + ケミライトを取り付けました 켐라이트 부착됨 已附掛螢光棒 已附挂萤光棒 @@ -140,7 +140,7 @@ Chemlight staccata Chemlight hozzácsatolva Химсвет отсоединён - ケミライトを外す + ケミライトを外しました 켐라이트 분리됨 已取下螢光棒 已取下萤光棒 @@ -236,7 +236,7 @@ Przyczepianie nie powiodło się Hozzácsatolás sikertelen Non si attacca - 取り付けに失敗した + 取り付けに失敗しました 부착 실패 附掛失敗 附挂失败 @@ -252,7 +252,7 @@ %1<br/>attaccata %1<br/>hozzácsatolva %1<br/>присоединен(-а) - %1<br/>を取り付けた + %1<br/>を取り付けました %1<br/>부착됨 %1<br/>已附掛 %1<br/>已附挂 @@ -268,7 +268,7 @@ %1<br/>staccata %1<br/>lecsatolva %1<br/>отсоединен(-а) - %1<br/>を外した + %1<br/>を外しました %1<br/>분리됨 %1<br/>已取下 %1<br/>已取下 diff --git a/addons/ballistics/stringtable.xml b/addons/ballistics/stringtable.xml index b23273ac23..7205ec8de0 100644 --- a/addons/ballistics/stringtable.xml +++ b/addons/ballistics/stringtable.xml @@ -2283,22 +2283,27 @@ Barrel twist + 銃身の転度 Barrel length Longueur du canon + 銃身長 Ballistic coefficient Coefficient ballistique + 弾道係数 Bullet mass Masse d'une balle + 弾丸重量 Muzzle velocity Vitesse à la bouche + 銃口初速 diff --git a/addons/captives/stringtable.xml b/addons/captives/stringtable.xml index bf08c2a848..64c2c20dd4 100644 --- a/addons/captives/stringtable.xml +++ b/addons/captives/stringtable.xml @@ -85,7 +85,7 @@ Você deve tomá-lo como prisioneiro primeiro! Először foglyul kell ejtened őt! Вы должны сначала взять его в плен! - あなたは先に捕虜を取る必要があります。 + 捕虜を取っている必要があります! 먼저 포로로 만들어야합니다! 你必須先逮捕他! 你必须先逮捕他! diff --git a/addons/cargo/stringtable.xml b/addons/cargo/stringtable.xml index 0d42954b7f..673e8be5c0 100644 --- a/addons/cargo/stringtable.xml +++ b/addons/cargo/stringtable.xml @@ -147,7 +147,7 @@ %1<br/>caricato su<br/>%2 %1<br/>berakodva ide:<br/>%2 %1<br/>загружен в<br/>%2 - %1<br/>は<br/>%2へ積み込まれた + %1<br/>は<br/>%2へ積み込まれました %1<br/>는<br/>%2 에 실림 %1<br/>裝載至<br/>%2 %1<br/>装载至<br/>%2 @@ -163,7 +163,7 @@ Hai scaricato<br/>%1 da<br/>%2 1%<br/>kirakodva ebből:<br/>%2 %1<br/>разгружен из<br/>%2 - <br/>%1が<br/>%2から降ろされた + <br/>%1が<br/>%2から降ろされました %1<br/>는<br/>%2 에서 내려짐 從<br/>%2卸載<br/>%1 从<br/>%2卸载<br/>%1 @@ -178,7 +178,7 @@ Caricando Cargando Chargement de la cargaison - カーゴへ積み込んでいる + カーゴへ積み込んでいます 화물 싣기 裝載貨物中 装载货物中 @@ -193,7 +193,7 @@ Scaricando Descargando Déchargement de la cargaison - カーゴから降ろしている + カーゴから降ろしています 화물 내리기 卸載貨物中 卸载货物中 @@ -208,7 +208,7 @@ %1<br/>non può essere caricato %1<br/>no pudo ser cargado %1<br /> n'a pas pu être chargé - %1<br/>は積み込めなかった + %1<br/>は積み込めませんでした %1<br/>이 실릴 수가 없습니다 %1<br/>無法被裝載 %1<br/>无法被装载 @@ -223,7 +223,7 @@ %1<br/>non può essere scaricato %1<br/>no pudo ser descargado %1<br /> n'a pas pu être déchargé - %1<br/>は降ろせなかった + %1<br/>は降ろせませんでした %1<br/>이 내려질 수가 없습니다 %1<br/>無法被卸載 %1<br/>无法被卸载 diff --git a/addons/common/stringtable.xml b/addons/common/stringtable.xml index 94e7f4cb89..acbf73d2e7 100644 --- a/addons/common/stringtable.xml +++ b/addons/common/stringtable.xml @@ -1169,6 +1169,7 @@ 음악 끄기 허용 允許調低音樂音量 允许调低音乐音量 + 音楽の音量低下を許可 Allow ACE scripts to turn down the music. @@ -1176,6 +1177,7 @@ ACE 스크립트가 음악을 끌 수 있습니다. 允許ACE腳本去控制音樂的音量。 允许ACE脚本去控制音乐的音量。 + ACE スプリントへ音量低下を許可します。 diff --git a/addons/cookoff/stringtable.xml b/addons/cookoff/stringtable.xml index 01ee1c04b6..3989ffab82 100644 --- a/addons/cookoff/stringtable.xml +++ b/addons/cookoff/stringtable.xml @@ -112,7 +112,7 @@ Faktor für die Munitionsdurchzündungsdauer [0 zum Deaktivieren] Multiplicateur de la durée du cook-off des munitions [Une valeur de 0 désactive l'effet] Mnożnik decydujący jak długo ma trwać samozapłon amunicji [Ustawienie na 0 spowoduje wyłącznie samozapłonu] - 誘爆の持続時間を乗数で設定。[0 に設定で誘爆を無効化] + 誘爆の持続時間を乗数で設定します。[0 に設定で誘爆を無効化] Moltiplicatore della durata dell'esplosione [Impostare 0 disabiliterà l'esplosione delle munizioni] 設定彈藥殉爆效果會持續多久時間 [輸入0來關閉殉爆效果] 设定弹药殉爆效果会持续多久时间 [输入0来关闭殉爆效果] diff --git a/addons/dogtags/stringtable.xml b/addons/dogtags/stringtable.xml index a60f325652..3b712bc9eb 100644 --- a/addons/dogtags/stringtable.xml +++ b/addons/dogtags/stringtable.xml @@ -71,7 +71,7 @@ Ktoś już zabrał ten nieśmiertelnik... Кто-то уже забрал жетон... Někdo jiný už vzal identifikační známku... - すでに誰かがドッグ タグを取っていったようだ・・・ + すでにドッグ タグは取られています・・・ Jemand anderes hat bereits die Hundemarke genommen ... 누군가 이미 군번줄을 회수해갔습니다... Quelqu'un d'autre a déjâ pris les plaques d'identification... diff --git a/addons/dragging/stringtable.xml b/addons/dragging/stringtable.xml index 767ae3fd73..95a17c60b0 100644 --- a/addons/dragging/stringtable.xml +++ b/addons/dragging/stringtable.xml @@ -60,7 +60,7 @@ Предмет слишком тяжёлый Předmět je moc těžký Az objektum túl nehéz - アイテムが重すぎる + アイテムが重すぎます 물체가 너무 무겁습니다 此物品過重 此物品过重 diff --git a/addons/explosives/stringtable.xml b/addons/explosives/stringtable.xml index 3882733567..320614a9db 100644 --- a/addons/explosives/stringtable.xml +++ b/addons/explosives/stringtable.xml @@ -122,7 +122,7 @@ Bloccato Blockiert Bloqué - 取り付けできない + 取り付け不可 막힘 断开 斷開 @@ -698,7 +698,7 @@ Usado para detonar remotamente o explosivo quando solto. Используется для дистанционного подрыва, после смерти оператора. Usato per attivare a distanza esplosivi al momento del rilascio - 点火装置を離すと遠隔で起爆したいときに使います。 + 点火装置を遠隔から離すと起爆したいときに使います。 압력이 해제될때 원격으로 폭발시킵니다. 当放开按钮时, 将会引爆炸弹. 當放開按鈕時, 將會引爆炸彈. @@ -842,7 +842,7 @@ Этот модуль управляет настройками, связанными со взрывными устройствами Este módulo ajusta las configuraciones relacionadas con explosivos. Questo modulo cambia le impostazioni relative agli esplosivi - このモジュールを調節し爆発物に設定を反映させます。 + モジュールを調節し爆発物に設定を反映させます。 이 모듈은 폭발물에 관한 설정을 수정할 수 있게합니다. 此模块用来调整炸药的相关设定 此模塊用來調整炸藥的相關設定 @@ -1022,6 +1022,7 @@ Explosive range Portée du détonateur + 爆発範囲 diff --git a/addons/fcs/stringtable.xml b/addons/fcs/stringtable.xml index 5c0b77d75b..93d8121058 100644 --- a/addons/fcs/stringtable.xml +++ b/addons/fcs/stringtable.xml @@ -92,7 +92,7 @@ FCS reiniciado. L'FCS è stato azzerato СУО обнулен. - FCS は初期化された + FCS は初期化されました 사통장치 초기화됨 火控系统已被重置 火控系統已被重置 diff --git a/addons/finger/stringtable.xml b/addons/finger/stringtable.xml index de566acb49..901509dc5b 100644 --- a/addons/finger/stringtable.xml +++ b/addons/finger/stringtable.xml @@ -37,7 +37,7 @@ Muestra el indicador para el jugador que apunta. Esta opción no afecta si los otros jugadores verían el indicador Zobrazit infikátor, když ukážete prstem. Tato volba nemá vliv, zda ostatní hráči uvidí indikátor nebo ne. Mostra puntatore per il giocatore indicato. Questa opzione non influisce la possibilità che gli altri giocatori vedano il puntatore - プレイヤーへの指差し表記を描画します。このオプションは他のプレイヤーの表記に影響しません。 + プレイヤーへ指差し表記を描画します。これは他のプレイヤーの表記に影響しません。 대상이 가리키는곳을 보이게 합니다. 显示指向指示器给玩家自己。此选项设定并不影响其他玩家能否看到指示器 顯示指向指示器給玩家自己。此選項設定並不影響其他玩家能否看到指示器 @@ -101,7 +101,7 @@ Señala y muestra un marcador virtual donde ustás apuntando para las unidades cercanas. Puede ser mantenido. Ukazuje virtuální značku kruhu ve směru, kterým se díváte pro všechny blízké jednotky. Punta e mostra un marker virtuale di dove stai guardando alle unità vicine. Può essere tenuto premuto. - 指差しが出すマーカー表記は自ユニットの近くにいると表記されます。これは押しっぱなしにできます。 + 指差し表記は自ユニットの近くにいる人のみに表記されます。また押しっぱなしにできます。 당신이 보는것을 가상의 마커로 표시함으로서 다른 인원이 볼 수 있게 합니다. 누른채로 유지할 수 있습니다. 当按下此按键后,你附近的单位即可看见一个虚拟图示,标明你正在指向的位置。此按键可以被按住来持续显示。 當按下此按鍵後,你附近的單位即可看見一個虛擬圖示,標明你正在指向的位置。此按鍵可以被按住來持續顯示。 diff --git a/addons/flashlights/stringtable.xml b/addons/flashlights/stringtable.xml index a4749ef27d..0544baefa7 100644 --- a/addons/flashlights/stringtable.xml +++ b/addons/flashlights/stringtable.xml @@ -94,6 +94,7 @@ Map light color Couleur de la lampe sur carte + 光の色 diff --git a/addons/gestures/stringtable.xml b/addons/gestures/stringtable.xml index fce2270cbb..0677b435e1 100644 --- a/addons/gestures/stringtable.xml +++ b/addons/gestures/stringtable.xml @@ -276,7 +276,7 @@ Afficher les gestes dans le menu d'interaction. Mostrar gestos no menu de interação Показать жесты в меню взаимодействия - インタラクション メニュー上でジェスチャーを表示する + インタラクション メニュー上でジェスチャー表示 수신호를 상호작용 메뉴에서 보여줍니다 显示手势互动选单 顯示手勢互動選單 diff --git a/addons/gforces/stringtable.xml b/addons/gforces/stringtable.xml index d0ae62de3d..c8251f1532 100644 --- a/addons/gforces/stringtable.xml +++ b/addons/gforces/stringtable.xml @@ -34,6 +34,7 @@ G-force reduction Reduction des Gs + 耐 G 性 diff --git a/addons/hearing/stringtable.xml b/addons/hearing/stringtable.xml index ef074b12cc..88863f7e0f 100644 --- a/addons/hearing/stringtable.xml +++ b/addons/hearing/stringtable.xml @@ -76,7 +76,7 @@ Füldugó berakva Protetores colocados Indossa i tappi auricolari - 耳栓を着けた + 耳栓を着けました 귀마개 착용 耳塞已塞入 耳塞已塞入 @@ -92,7 +92,7 @@ Füldugó kivéve Protetores retirados Levati i tappi auricolari - 耳栓を外した + 耳栓を外しました 귀마개 뺌 耳塞已取出 耳塞已取出 @@ -124,7 +124,7 @@ Não há espaço no inventário Nincs több hely Нет места в инвентаре - インベントリに空きがありません。 + インベントリに空きがありません 넣을 공간이 없습니다 无可用空间 無可用空間 @@ -154,7 +154,7 @@ Quando il giocatore riceve danni all'udito, non fa sentire i fischi nelle orecchie Remove o efeito de zunido quando o jogador recebe dano na audição Убирает эффект звона в ушах, когда игрок получает повреждение слуха - プレイヤーの聴覚が損傷をしたら耳鳴りの効果を削除します + プレイヤーの聴覚が損傷したら耳鳴りの効果を削除します 플레이어가 청력손실을 입을때 생기는 이명현상을 제거합니다. 关闭耳鸣效果时,就算玩家受到相当程度的听力伤害, 也不会造成耳鸣效果 關閉耳鳴效果時,就算玩家受到相當程度的聽力傷害, 也不會造成耳鳴效果 @@ -217,7 +217,7 @@ Ce module active / désactivé la surdité au combat. Si active, des joueurs peuvent devenir sourds sans protection d'oreille, si une arme est utilisée ou une explosion a lieu à proximité Controles de sordera de combate y zumbido en los oídos. Al activarlo, los jugadores pueden ser ensordecidos cuando un arma se dispara cerca o una explosión tiene lugar sin protección auditiva Controlla la sordità da combattimento e fischio alle orecchie. Quando attivato, i giocatori possono essere assordati quando un'arma spara vicino o avviene un'esplosione senza protezione uditiva - 戦闘による難聴や、耳鳴りを設定します。有効になった場合、聴覚を保護していないと近傍の銃声や爆発音により、難聴になります。 + 戦闘による難聴や、耳鳴りを設定します。有効では聴覚を保護していないと近傍の銃声や爆発音により、難聴になります。 전투 난청과 이명현상을 조작합니다. 작동시 플레이어가 화기나 폭발의 주변에 있을경우 청력보호장치가 없을때 청력손실을 입습니다. 设定战斗性耳聋和耳鸣。当启用后,玩家会在有武器在旁边射击或爆炸产生时造成耳鸣效果 設定戰鬥性耳聾和耳鳴。當啟用後,玩家會在有武器在旁邊射擊或爆炸產生時造成耳鳴效果 @@ -277,7 +277,7 @@ Aggiungi l'oggetto 'ACE_EarPlugs' a tutte le unità che hanno armi rumorose. Può essere disabilitato se vengono usati loadout personalizzati. Agregar el item `ACE_EarPlugs` a todas las unidades equipadas con armas muy ruidosas. Desactivar si quieren utilizarse equipamientos personalizados. Ajoute l'objet "Ace_EarPlugs" à toutes les unités ayant des armes bruyantes. Peut être désactivé par des loadouts personalisés. - 全ユニットへ`ACE_EarPlugs`アイテムをもたせます。これは変更された武装で無効化できます。 + 全ユニットへ`ACE_EarPlugs`アイテムを持たせます。これは変更された武装で無効化できます。 무기를 가지고 있는 모든 인원에게 'ACE_EarPlugs'를 지급합니다. 임의의 장비를 사용시 비활성화 할 수 있습니다. 增加`ACE_EarPlugs`物品给拥有巨大噪音武器的单位。当你想自定装备时,此功能可被关闭。 增加`ACE_EarPlugs`物品給擁有巨大噪音武器的單位。當你想自定裝備時,此功能可被關閉。 @@ -285,22 +285,28 @@ Hearing protection Protection auditive + 聴覚保護 Volume muffling Étouffement des sons + 音量低下 Earplugs Volume + 耳栓時の音量 Volume when using earplugs. + 耳栓使用時の音量を決定します。 Unconscious Volume + 気絶時の音量 Volume when unconscious. + 気絶時の音量を決定します。 diff --git a/addons/interact_menu/stringtable.xml b/addons/interact_menu/stringtable.xml index ed961e4ead..b14dac6006 100644 --- a/addons/interact_menu/stringtable.xml +++ b/addons/interact_menu/stringtable.xml @@ -44,7 +44,7 @@ Interaktionsmenü in Listen anzeigen Cselekvő menük listaként való megjelenítése Mostrar menu de interação como listas - 表示されるインタラクション メニューを一覧表示 + インタラクション メニューを一覧表示 상호작용메뉴를 리스트화 해서 보이기 以列表方式显示互动表单 以列表方式顯示互動表單 @@ -236,7 +236,7 @@ Execute a ação quando soltar a tecla de menu Cselekvés végrehajtása a menügomb elengedésekor Esegui l'azione quando rilasci il tasto menu - メニュー キーを離したときに動作を実行します。 + メニュー キーを離した時に動作を実行 메뉴키를 놓을때 행동하기 当放开选单键后就执行动作 當放開選單鍵後就執行動作 @@ -396,7 +396,7 @@ Adiciona ações de interações para abrir portas e montar escadas em edifícios. (Nota: Existe um custo de performance quando aberto o menu de interação, especialmente em cidades) Добавляет действия открывания дверей и залезания на лестницы для зданий. (Примечание: возможно падение производительности при открытии меню взаимодействия, особенно в городах) Aggiunge azioni interattive per l'apertura delle porte e piazzamento scale su edifici. (Nota: C'è un costo in performance quando si apre il Menù Interazioni, soprattutto in città) - 建物にあるドアの開閉やラダーの昇降といった動作をインタラクションへ追加します。(街などでインタラクション メニューを開くとパフォーマンスが低下します) + 建物にある扉の開閉やはしごの昇降といった動作をインタラクションへ追加します。(街などでインタラクション メニューを開くと動作が低下します) 건물의 문을 열거나 사다리에 오르는 상호작용 행동을 추가합니다. (주의: 상호작용 메뉴를 열경우 성능하락이 있을 수 있음, 특히 마을 내부에서) 增加互动选单的功能在可开启的门与建筑物的梯子上。(注意: 此功能有可能会降低系统效能,特别是在城镇区更明显) 增加互動選單的功能在可開啟的門與建築物的梯子上。(注意: 此功能有可能會降低系統效能,特別是在城鎮區更明顯) @@ -441,13 +441,14 @@ Rende le animazioni Menù più veloci e diminuisce il tempo richiesto per mostrare sotto-azioni Hace la animación del menú más rápida, reduciendo el tiempo necesario para abrir sub-acciones. Rend les animations de menu plus rapide et réduit le temps nécessaire à l'affichage des sous menus d'action - サブ動作が表示されるホバーをした時に、表示されるメニューのアニメーション速度を早くしたり遅くしたりできます + ホバーで子アクションを表示した時に出るメニューのアニメーション速度を早くしたり遅くしたりできます 使选单的动画速度更快,并减少子选项显现出来的时间 使選單的動畫速度更快,並減少子選項顯現出來的時間 상호 작용을 표시하기 위해 메뉴 애니메이션을 빠르게 만들고 마우스를 가져 오는 데 필요한 시간을 줄입니다. Selector Color + セレクターの色 diff --git a/addons/interaction/stringtable.xml b/addons/interaction/stringtable.xml index 50c086a8fa..0d37a023ac 100644 --- a/addons/interaction/stringtable.xml +++ b/addons/interaction/stringtable.xml @@ -229,7 +229,7 @@ Zárt ajtó Zablokowano drzwi Zamčené dveře - ドアの鍵をしめた + ドアの鍵をしめました 잠긴 문 门已上锁 門已上鎖 @@ -245,7 +245,7 @@ Nyitott ajtó Odblokowano drzwi Odemčené dveře - ドアの鍵をあけた + ドアの鍵をあけました 열린 문 门未上锁 門未上鎖 @@ -389,7 +389,7 @@ Вас похлопали по ПРАВОМУ плечу Você foi tocado no ombro Ti è stato dato un colpetto sulla spalla destra - 右肩を叩かれた + 右肩を叩かれました 누군가 오른쪽 어깨를 쳤다 你的右肩膀被轻拍了一下 你的右肩膀被輕拍了一下 @@ -405,7 +405,7 @@ Вас похлопали по ЛЕВОМУ плечу Você foi tocado no ombro. Ti è stato dato un colpetto sulla spalla sinistra - 左肩を叩かれた + 左肩を叩かれました 누군가 왼쪽 어깨를 쳤다 你的左肩膀被轻拍了一下 你的左肩膀被輕拍了一下 @@ -707,7 +707,7 @@ Você uniu-se à Equipe %1 Sei entrato nel team %1 Csatlakoztál a %1 csapathoz - チーム %1 に入った + チーム %1 に入りました 당신은 %1팀에 참여했습니다 你已加入%1组 你已加入%1組 @@ -739,7 +739,7 @@ Você deixou a Equipe Hai lasciato il team Elhagytad a csapatot - チームを抜けた + チームを抜けました 팀을 나갔습니다 你已离开小队 你已離開小隊 @@ -843,6 +843,7 @@ Flip Перевернуть + ひっくり返す Interact @@ -952,7 +953,7 @@ Should players receive negative rating? When enabled players are only receiving positive ratings which prevents friendly AI fire when destroying friendly equipment or killing team members. Sollen Spieler negative Bewertungen erhalten dürfen? Wenn diese Option aktiviert ist, erhalten Spieler nur positive Bewertungen, was Freundbeschuss durch KI verhindert, wenn befreundete Ausrüstung zerstört oder befreundete Einheiten von Spielern des selben Teams getötet werden. - 否定評価を受けますか?有効化した場合プレイヤーは肯定評価のみを受け、友軍の装備を壊したり殺害をしてもAIからの攻撃を防ぎます。 + 否定評価を受けますか?有効化した場合プレイヤーは肯定評価のみを受け、友軍の装備を壊したり殺害をしても AI からの攻撃を防ぎます。 I giocatori dovrebbero ricevere delle valutazioni negative ? Quando è abilitato i giocatori ricevono esclusivamente valutazioni positive che prevengono il fuoco delle AI alleate quando distruggono equipaggiamenti o uccidono membri della squadra. 玩家是否會收到負面評價? 當本功能開啟時玩家只會接收到正面評價,所以當玩家做出擊殺友軍AI、毀壞友軍裝備或殺害小隊夥伴都不會收到負面評價。 玩家是否会收到负面评价? 当本功能开启时玩家只会接收到正面评价,所以当玩家做出击杀友军AI、毁坏友军装备或杀害小队伙伴都不会收到负面评价。 diff --git a/addons/logistics_wirecutter/stringtable.xml b/addons/logistics_wirecutter/stringtable.xml index 62b7ef77d2..dd4ce0dd2e 100644 --- a/addons/logistics_wirecutter/stringtable.xml +++ b/addons/logistics_wirecutter/stringtable.xml @@ -76,7 +76,7 @@ Fatto! Drótkerítés átvágva Забор разрезан - フェンスを切断した + フェンスを切断しました 절단됨 护栏已被剪断 護欄已被剪斷 diff --git a/addons/magazinerepack/stringtable.xml b/addons/magazinerepack/stringtable.xml index 2ae06d02e1..74bd413b49 100644 --- a/addons/magazinerepack/stringtable.xml +++ b/addons/magazinerepack/stringtable.xml @@ -63,7 +63,7 @@ Reorganizando Carregadores... Újratárazás... Перепаковка магазинов... - 弾倉を詰め替え中・・・ + 弾倉を詰め替えしています・・・ 다시 채우는중... 重新整理弹匣中 ... 重新整理彈匣中 ... @@ -79,7 +79,7 @@ %1 carregador(es) cheio(s) e %2 disparo(s) a mais %1 teljes tár és %2 extra lőszer %1 полных магазина(ов) и %2 патрона(ов) - %1 個の満杯な弾倉とあふれた %2 発の弾薬 + %1 個の満杯の弾倉とあふれた %2 発の弾薬 %1개의 꽉찬 탄창과 %2발의 총알이 남았다 %1个满的弹匣与%2发额外子弹 %1個滿的彈匣與%2發額外子彈 @@ -95,7 +95,7 @@ Újratárazás befejezve Caricatori Riempiti Reorganização Terminada - 詰め替えが完了 + 詰め替えが完了しました 탄창 채우기 끝남 重整完成 重整完成 @@ -111,7 +111,7 @@ Újratárazás megszakítva Riempimento Interrotto Reorganização Interrompida - 詰め替えを中断した + 詰め替えを中断しました 탄창 채우기 방해받음 重整被中断 重整被中斷 diff --git a/addons/maptools/stringtable.xml b/addons/maptools/stringtable.xml index c467da5f2a..75ec9be96b 100644 --- a/addons/maptools/stringtable.xml +++ b/addons/maptools/stringtable.xml @@ -214,7 +214,7 @@ Draw on the edge of maptools to draw straight lines. Note: Must hover at midpoint to delete. - マップ ツールの端から直線を書きます。メモ:線の中央ホバーすると削除します。 + マップ ツールの端から直線を書きます。メモ: 線の中央ホバーすると削除します。 Zeichne gerade Linien am Rand des Kartenwerkzeugs. Hinweis: zum Löschen über den Mittelpunkt der Linie fahren 독도용 도구 가장자리에 직선을 그립니다. 주의: 삭제하기 위해선 선의 중앙에 가져다 대십시요 Przeciągnij po krawędzi narzędzi nawigacyjnych by narysować prostą linię. Uwaga: aby usunąć linię - nalezy ustawić kursor nad jej środkiem. diff --git a/addons/maverick/stringtable.xml b/addons/maverick/stringtable.xml index e43d70a620..13a462f1b6 100644 --- a/addons/maverick/stringtable.xml +++ b/addons/maverick/stringtable.xml @@ -53,6 +53,7 @@ Kh-25ML, 레이저 유도 대공 미사일 Kh-25ML,雷射導引對地導彈 Kh-25ML,雷射导引对地导弹 + Kh-25ML、レーザー誘導対地ミサイル 1x Kh-25ML [ACE] @@ -61,6 +62,7 @@ 1x Kh-25ML [ACE] 1x Kh-25ML [ACE] 1x Kh-25ML [ACE] + 1x Kh-25ML [ACE] @@ -80,6 +82,7 @@ Kh-25ML Kh-25ML Kh-25ML + Kh-25ML diff --git a/addons/medical/stringtable.xml b/addons/medical/stringtable.xml index e5d54af594..53060befb6 100644 --- a/addons/medical/stringtable.xml +++ b/addons/medical/stringtable.xml @@ -586,7 +586,7 @@ Ez az orvosi lap nem tartalmaz bejegyzést. Žádné záznamy na tomto štítku Nenhuma entrada neste cartão de triagem. - トリアージ カードには何も無い。 + トリアージ カードには何もありません。 부상자 분류 카드에 쓰여있는것이 없습니다. 此检伤分类卡上没有任何资料 此檢傷分類卡上沒有任何資料 @@ -938,7 +938,7 @@ Nincs légzés Mancanza di respiro Não respira - 息をしていない + 息をしていません 호흡 불가 没有呼吸 沒有呼吸 @@ -954,7 +954,7 @@ Nehéz légzés Difficoltà a respirare Dificuldade para respirar - 呼吸が苦しそうだ + 呼吸が苦しそうです 호흡 곤란 呼吸困难 呼吸困難 @@ -970,7 +970,7 @@ Alig van légzés Respira a fatica Quase não respira - ほとんど呼吸をしていない + ほとんど呼吸をしていません 호흡이 없음 快要没呼吸 快要沒呼吸 @@ -986,7 +986,7 @@ Vérzik Sanguinando Sangrando - 出血している + 出血しています 출혈 流血中 流血中 @@ -1002,7 +1002,7 @@ Fájdalom alatt Con dolore Com dor - 痛みがある + 痛みがあります 고통 疼痛中 疼痛中 @@ -1018,7 +1018,7 @@ Sok vért vesztett Ha perso parecchio sangue Perdeu muito sangue - 大量失血している + 大量失血しています 大量失血中 大量失血中 혈액 부족 @@ -1050,7 +1050,7 @@ Infúzióra kötve [%1ml] Ricevendo EV [%1ml] Recebendo IV [%1ml] - IV で [%1ml] 投与されている + IV で [%1ml] 投与されています 接收静脉注射液中 [%1ml] 接收靜脈注射液中 [%1ml] IV처리 [%1ml] 수혈중 @@ -2039,7 +2039,7 @@ La pressione sanguigna è assente Sem pressão arterial Nenaměřil si žádný krevní tlak - 血圧は測れなかった + 血圧を測れませんでした 혈압이 잡히지 않는다 量不到血压 量不到血壓 @@ -2055,7 +2055,7 @@ Manca strumento per misurare pressione sanguigna Você falhou em aferir a pressão arterial Nedokázal si změřit krevní tlak - 血圧を測るのに失敗 + 血圧を測るのに失敗しました 혈압을 잡을 수 없었다 检查血压的动作失败 檢查血壓的動作失敗 @@ -2327,7 +2327,7 @@ Hai riscontrato una assenza di battito cardiaco Sem freqüência cardíaca Žádný puls - 心拍数を測れなかった + 心拍数を測れませんでした 量不到心跳 量不到心跳 맥박 없음 @@ -2359,7 +2359,7 @@ Controlli la risposta del paziente Aferindo se o paciente tem reação Zkontroloval jsi reakci pacienta - 患者からの反応をみる + 患者からの反応を見る 대상의 반응 확인중 检查伤者的反应 檢查傷者的反應 @@ -2407,7 +2407,7 @@ Hai controllato %1 Você aferiu o paciente %1 Zkontroloval jsi %1 - %1 を見た + %1 を見ました %1 을 확인함 你已经检查 %1 你已經檢查 %1 @@ -2471,7 +2471,7 @@ Valamennyi vért vesztett Ztratil trochu krve Ele perdeu um pouco de sangue - 彼は出血している + 出血しています 적은 양의 피를 잃었다 他流失一些血液 他流失一些血液 @@ -2487,7 +2487,7 @@ Ztratil hodně krve Ele perdeu muito sangue Ha perso molto sangue - 彼は大量失血している + 大量失血しています 많은 양의 피를 잃었다 他流失大量血液 他流失大量血液 @@ -2503,7 +2503,7 @@ Nem vesztett vért Neztratil žádnou krev Ele não perdeu sangue - 彼は失血していない + 失血していません 피를 잃지 않았다 他并没有失血 他並沒有失血 @@ -2519,7 +2519,7 @@ Fájdalmai vannak Je v bolestech Ele está com dor - 彼には痛みがあるようだ + 痛いようです 통증이 있다 他感到疼痛 他感到疼痛 @@ -2535,7 +2535,7 @@ Nincsenek fájdalmai Nemá žádné bolesti Ele não está com dor - 彼には痛みがないようだ + 痛くないようです 통증이 없다 他不会疼痛 他不會疼痛 @@ -2567,7 +2567,7 @@ Du verbindest %1 (%2) Você aplica atadura no paciente %1 (%2) Obvazuješ %1 (%2) - %1 (%2) 包帯をつかった + %1 (%2) 包帯をつかいました %1 (%2) 붕대를 감았다 你正在对 %1 (%2) 包扎绷带中 你正在對 %1 (%2) 包紮繃帶中 @@ -2583,7 +2583,7 @@ %1 verbindet dich %1 está aplicando uma bandagem em você %1 tě obvazuje - %1 はあなたに包帯を巻いている + %1 はあなたに包帯を巻いています %1 (이)가 나에게 붕대를 감고있다 %1 正在对你包扎绷带中 %1 正在對你包紮繃帶中 @@ -2599,7 +2599,7 @@ Stai suturando le ferite di %1 (%2) Você começa a suturar os ferimentos do %1 (%2) Zašíváš rány %1 (%2) - あなたは %1 (%2) の外傷へ縫合をはじめた + %1 (%2) の外傷へ縫合を始めました 나는 %1(%2) 상처로부터 봉합을 시작했다 你正开始对 %1 (%2) 缝合伤口中 你正開始對 %1 (%2) 縫合傷口中 @@ -2663,7 +2663,7 @@ %1 ti sta trattando le vie respiratorie %1 está te entubando %1 ošetřuje tvoje dýchací cesty - %1 はあなたの気道を見ている + %1 はあなたの気道を見ています %1 (이)가 나의 기도를 확보중이다 %1 正在治疗你的呼吸道 %1 正在治療你的呼吸道 @@ -2823,7 +2823,7 @@ %1 ha bendato il paziente %1 aplicou atadura no paciente %1 již obvázal pacienta - %1 は包帯を巻いた + %1 は包帯を巻きました %1 已包扎伤者 %1 已包紮傷者 %1 (이)가 붕대를 감음 @@ -2838,7 +2838,7 @@ %1 провел сердечно-легочную реанимацию %1 realicó RCP %1 à fait une RCP - %1 は心肺蘇生をした + %1 は心肺蘇生をしました %1 已执行心肺复苏术 %1 已執行心肺復甦術 %1 (이)가 심폐소생술을 실시함 @@ -2854,7 +2854,7 @@ %1 ha usato %2 %1 usou %2 %1 použil %2 - %1 は %2 をつかった + %1 は %2 をつかいました %1 已使用 %2 %1 已使用 %2 %1 (이)가 %2 을 사용함 @@ -2870,7 +2870,7 @@ %1 ha somministrato una EV %1 aplicou um intravenoso %1 již aplikoval IV - %1 は IV をした + %1 は IV をしました %1 已经给予静脉注射液 %1 已經給予靜脈注射液 %1 (이)가 IV를 실시함 @@ -2886,7 +2886,7 @@ %1 ha applicato un laccio emostatico %1 aplicou um torniquete %1 použil škrtidlo - %1 は止血帯を巻いた + %1 は止血帯を巻きました %1 已经绑上止血带 %1 已經綁上止血帶 %1 (이)가 지혈대를 적용함 @@ -2901,7 +2901,7 @@ %1 ha usato Kit Pronto Soccorso Personale %1 usó Kit de Primeros Auxilios %1 a utilisé une trousse - %1 は応急処置キットをつかった + %1 は応急処置キットをつかいました %1 已使用了个人急救包 %1 已使用了個人急救包 %1 (이)가 개인응급키트를 사용함 @@ -3156,7 +3156,7 @@ Válaszd ki a neked megfelelő menüt: Alapértelmezett 3D válogatás, vagy kerek. Zvolte typ menu: základní 3D výběr nebo kruhový Seleziona il tipo di menù che preferisci: selezione (3D), radiale o disabilitata. - 好みに応じてメニューの表示形式を選んでください。標準では 3D 選択か円状です。 + メニューの表示形式を選んでください。標準では 3D 選択か円状です。 선호하는 종류의 메뉴를 고르세요; 기본 3d 선택형 혹은 다이얼형 选择你喜欢的选单样式; 预设为3D选项或放射状 選擇你喜歡的選單樣式; 預設為3D選項或放射狀 @@ -3812,7 +3812,7 @@ Quel niveau de simulation médicale choisissez-vous? Milyen komplex legyen az orvosi szimuláció? Qual'è il livello di simulazione medica? - 治療の再現度は? + 治療の再現度 의료 시뮬레이션의 수준 选择需要的医疗模拟等级 選擇需要的醫療模擬等級 @@ -5512,7 +5512,7 @@ %1 je příliš daleko, léčba není možná Distanza da %1 è diventata troppo alta per permettere trattamento %1 est trop loin pour être soigné - %1 は治療をできない所まで離れた + %1 は治療をできない所まで離れました %1 부터의 거리가 너무 멀어 치료할 수 없습니다 设定当距离超过%1将不能使用治疗动作 設定當距離超過%1將不能使用治療動作 @@ -5527,7 +5527,7 @@ Tato osoba (%1) je vzhůru a nemůže být naložena Questa persona (%1) è sveglia e non può essere caricata. %1 est conscient et ne peut être embarqué. - 患者 (%1) は意識があり、積み込めない + 患者 (%1) は意識があり、積み込めません 이 사람 (%1) 은(는) 의식이 있어 태우지 못합니다 此人(%1)是清醒且不能被装载 此人(%1)是清醒且不能被裝載 @@ -5600,7 +5600,7 @@ Atraso durante cessar fogo da AI durante inconsciência Délai de cessez le feu de l'IA pour la perte de conscience Задержка прекращения огня ботами при потере сознания - AI は気絶している人へ、ためらってから射撃します + AI が気絶者へためらってから射撃 기절할 경우 인공지능이 발사를 지연합니다 延长AI对已无意识玩家的停火时间 延長AI對已無意識玩家的停火時間 @@ -5625,21 +5625,27 @@ Unconscious animation during treatment + 処置中に気絶アニメーション Allow animation of unconscious patients during treatment. + 患者の処置中に気絶アニメーションを許可します。 Move unconscious units from group + グループから気絶ユニットを移動 When a group member goes unconscious, removes them from their group. + グループのメンバーが気絶すると、グループから退出させます。 Overdosing + 過剰投与 Makes patient vulnerable to Morphine/Epinephrine/Atropine overdosing. + モルヒネ/アドレナリン/アトロピンの過剰投与により患者を脆弱にします。 diff --git a/addons/medical_ai/stringtable.xml b/addons/medical_ai/stringtable.xml index c638e15072..559fba299f 100644 --- a/addons/medical_ai/stringtable.xml +++ b/addons/medical_ai/stringtable.xml @@ -3,9 +3,11 @@ Medical AI enabled for + 次に AI 治療を有効 Enable AI units to heal themselves and each other. + AI ユニットの自己や相互治療を有効化します。 Only Server and HC diff --git a/addons/medical_menu/stringtable.xml b/addons/medical_menu/stringtable.xml index 0f3c8c41df..9800c33bb2 100644 --- a/addons/medical_menu/stringtable.xml +++ b/addons/medical_menu/stringtable.xml @@ -41,7 +41,7 @@ Povolit klientům používat zdravotnickou nabídku Consenti ai clients di usare il Menù Medico Autoriser les clients à utiliser le menu médical - すべてのクライアントが治療メニューをつかえるようにする + 全クライアントが治療メニューを使えるようにします 클라이언트가 의료 메뉴를 쓰는것을 허락합니다 允许客户端使用医疗选单 允許客戶端使用醫療選單 @@ -56,7 +56,7 @@ Použít zdravotnickou nabídku Usa Menù Medico Utiliser le menu médical - 治療メニューをつかう + 治療メニューを使う 의료 메뉴 사용 使用医疗选单 使用醫療選單 @@ -71,7 +71,7 @@ Pokud je povoleno serverem, umožní použít zdravotnickou nabídku skrze kláv. zkratku a interakční menu Se consentito dal server, abilita l'opzione di usare il Menù Medico attraverso hotkeys e menù interazione Si autorisé par le serveur, active l'option d'utiliser le menu médical à travers les raccourcis clavier et le menu d'interaction. - サーバーが有効化を許可している場合は、オプションから有効化でき治療メニューはキー割り当てとインタラクション メニューを無視できます + サーバーが有効化を許可している場合はオプションから有効化でき、治療メニューはキー割り当てとインタラクション メニューを無視できます 서버 허가하에 단축키와 상호작용 메뉴로 의료 메뉴사용을 허가합니다 如果伺服器允许,只需透过按键即可叫出医疗选单 如果伺服器允許,只需透過按鍵即可叫出醫療選單 @@ -86,7 +86,7 @@ Znovu otevřít zdravotnickou nabídku Ri-apri Menù Medico Ré-ouvrir le menu médical - 治療メニューを再びひらく + 治療メニューを再び開く 의료 메뉴 다시 열기 重新开启医疗选单 重新開啟醫療選單 @@ -101,7 +101,7 @@ Znovu otevřít zdravotnickou nabídku po úspěšné léčbě Ri-Apri il Menù Medico dopo un trattamento riuscito Ré-ouvrir le menu médical après un traitement réussi - 治療が終わったあと、再び治療メニューをひらく + 治療が終わった後、再び治療メニューを開きます 성공적으로 치료한후에 의료 메뉴를 다시 엽니다 当治疗成功后重新打开医疗选单 當治療成功後重新打開醫療選單 @@ -116,7 +116,7 @@ Otevřít zdravotnickou nabídku Apri Menù Medico Ouvir le menu médical - 治療メニューをひらく + 治療メニューを開く 의료 메뉴 열기 开起医疗选单 開起醫療選單 @@ -146,7 +146,7 @@ Konfigurace využití zdravotnické nabídky Configura l'uso del Menù Medico Configurer l'utilisation du menu médical - 治療メニューを使うための設定 + 治療メニュー用の設定 의료 메뉴 사용의 설정 设置医疗选单的使用 設置醫療選單的使用 @@ -611,7 +611,7 @@ Existem %2 ferimentos abertos %1 Jsou zde %2 %1 otevřené rány Ci sono %2 %1 Ferite Aperte - 開いている傷口が %2 %1 ほどあるようだ + 開いている傷口が %2 %1 ほどあります 여기 %2 %1 크기의 열린 상처가 있다 有 %2 %1 开放性伤口 有 %2 %1 開放性傷口 @@ -641,7 +641,7 @@ Existe um ferimento parcial aberto %1 Je zde částečně %1 otevřená rána C'è 1 parziale %1 Ferita Aperta - 部分的に開いている %1 の傷口がある + 部分的に開いている %1 の傷口があります 여기 부분적으로 %1 크기의 상처가 있다 有部分 %1 开放性伤口 有部分 %1 開放性傷口 @@ -656,7 +656,7 @@ Existem %2 ferimentos %1 tratados Jsou zde %2 %1 ovázané rány Ci sono %2 %1 Ferite Bendate - ここには %2 %1 の処置された傷がある + ここには %2 %1 の処置された傷があります 여기에 붕대를 감은 %2 %1 크기의 상처가 있다 有 %2 %1 包扎过伤口 有 %2 %1 包紮過傷口 @@ -686,7 +686,7 @@ Existe um ferimento parcial tratado %1 Je zde částěčně %1 ovázaná rána C'è 1 parziale %1 Ferita Bendata - 患者には %1 の包帯で処置された傷がある + 患者には %1 の包帯で処置された傷があります 여기 부분적으로 붕대질한 %1 크기의 상처가 있다 有部分 %1 包扎过伤口 有部分 %1 包紮過傷口 @@ -716,7 +716,7 @@ Sem respiração Nedýchá Nessuna Respirazione - 息をしていない + 息をしていません 호흡이 없음 没有呼吸 沒有呼吸 @@ -731,7 +731,7 @@ Dificuldade para respirar Potíže s dýcháním Difficoltà Respiratorie - 呼吸が難しそうだ + 呼吸が難しそうです 호흡 곤란 呼吸困难 呼吸困難 @@ -746,7 +746,7 @@ Quase sem respiração Téměř nedýchá Quasi nessuna Respirazione - ほとんど呼吸していない + ほとんど呼吸していません 호흡이 거의 없음 几乎没有呼吸 幾乎沒有呼吸 @@ -791,7 +791,7 @@ Perdeu muito sangue Ztratil hodně krve Perso molto Sangue - 大量失血している + 大量失血しています 많은 피를 흘림 大量失血 大量失血 @@ -828,9 +828,11 @@ Medical Menu maximum range + 治療メニューの最大範囲 Maximum distance from where the Medical Menu can be opened. + 治療メニューを開く事ができる最大範囲 diff --git a/addons/minedetector/stringtable.xml b/addons/minedetector/stringtable.xml index 0e2e31e5a6..72f389813f 100644 --- a/addons/minedetector/stringtable.xml +++ b/addons/minedetector/stringtable.xml @@ -83,7 +83,7 @@ Headphones Connected Наушники подключены Sluchátka připojena - ヘッドホンへ接続された + ヘッドホンに接続しました Słuchawki podpięte Kopfhörer verbunden 헤드폰 연결됨 @@ -96,7 +96,7 @@ Headphones Disconnected Наушники отключены Sluchátka odpojena - ヘッドホンから外された + ヘッドホンから外しました Słuchawki odpięte Kopfhörer getrennt 헤드폰 연결끊김 diff --git a/addons/movement/stringtable.xml b/addons/movement/stringtable.xml index 2d587ce3d2..1e8caf3a5f 100644 --- a/addons/movement/stringtable.xml +++ b/addons/movement/stringtable.xml @@ -44,7 +44,7 @@ Itt nem tudsz mászni Non puoi arrampicarti qui Não se pode subir aqui - ここは登れない + ここは登れません 这里无法攀爬 這裡無法攀爬 여기는 올라갈 수 없다 diff --git a/addons/nametags/stringtable.xml b/addons/nametags/stringtable.xml index 97366549d7..6c93c591de 100644 --- a/addons/nametags/stringtable.xml +++ b/addons/nametags/stringtable.xml @@ -331,7 +331,7 @@ Ez a modul lehetővé teszi a névcímkék beállításainak testreszabását. Этот модуль позволяет настроить опции и дистанцию отображения имен игроков. Questo modulo ti consente di personalizzare le impostazioni ed il raggio delle Etichette Nomi - このモジュールは名札の表示範囲と設定を変更できます。 + これは名札の表示範囲と設定を変更できます。 이 모듈은 당신이 이름표의 범위를 임의로 수정할 수 있게 해줍니다. 这个模块允许您设定名称和显示范围等设定 這個模塊允許您設定名稱和顯示範圍等設定 @@ -541,6 +541,7 @@ Player tags transparency + プレイヤー名札の透明度 diff --git a/addons/nightvision/stringtable.xml b/addons/nightvision/stringtable.xml index ad4b6bf218..115d05affa 100644 --- a/addons/nightvision/stringtable.xml +++ b/addons/nightvision/stringtable.xml @@ -210,7 +210,7 @@ Impostazioni per visione notturna. Parámetros para visión nocturna Réglage pour la vision nocturne - 暗視装置の設定。 + 暗視装置の設定をします。 야간투시경 설정 设定夜视选项. 設定夜視選項. @@ -240,7 +240,7 @@ Blocca l'uso di visori notturni mentre miri con ottiche. Desactiva el uso de gafas visión nocturna cuando se utilizan miras normales. Bloque l'usage des JVN pendant la visée. - スコープを使い狙いを付けると、暗視装置を無効化します。 + スコープで狙いを付けると、暗視装置を無効化します。 조준시 야투경의 사용을 제한합니다. 此功能开启后,当要使用瞄准镜时,为避免夜视镜镜头碰撞到瞄准镜,会先拿开夜视镜后再进行瞄准镜瞄准。 此功能開啟後,當要使用瞄準鏡時,為避免夜視鏡鏡頭碰撞到瞄準鏡,會先拿開夜視鏡後再進行瞄準鏡瞄準。 @@ -279,7 +279,7 @@ Aim Down Sights Blur - 照準器を使用時にぼかし + 照準器を覗く時にぼかし Visierunschärfe 瞄準具模糊程度 瞄准具模糊程度 @@ -289,18 +289,22 @@ Intensität des Bildrauschens 夜視鏡雜訊程度 夜视镜杂讯程度 + 暗視装置のノイズ度 Image noise intensity when wearing NVGs Intensität des Bildrauschens im Nachtsichtgerät 調整配戴夜視鏡時畫面雜訊的多寡。 调整配戴夜视镜时画面杂讯的多寡。 + 暗視装置を使用時に起きる画像ノイズの強度です Shutter Effects + シャッター効果 Rolling shutter effect from muzzle flashes + 発射炎が作るローリング シャッター効果です diff --git a/addons/overheating/stringtable.xml b/addons/overheating/stringtable.xml index 57e14a50e2..e3995047a0 100644 --- a/addons/overheating/stringtable.xml +++ b/addons/overheating/stringtable.xml @@ -81,7 +81,7 @@ Částicové efekty přehřívání pro všechny Efeito de partícula de superaquecimento para todos Эффект частиц при перегреве для всех - 過熱の視覚表現を全体に与えます + 過熱の視覚表現を全員に与えます 모두에게 과열 입자 효과 적용 显示其他玩家的枪管过热特效 顯示其他玩家的槍管過熱特效 @@ -126,7 +126,7 @@ Armas superaquecidas irão ser menos precisas e ter velocidade de disparo reduzidas. Aplica a todos os jogadores. Перегретое оружие будет менее точным, а дульная скорость будет снижена. Применяется ко всем игрокам. Přehřátá zbraň bude méně přesná a bude mít menší úsťovou rychlost. Platí pro všechny hráče. - 過熱は精度を減少させたり、初速を低下させます、これは全プレイヤに適用します。 + 過熱は精度を減少させたり、初速を低下させます。これは全プレイヤに適用します。 무기 과열시 무기의 명중률이 저하되고 총구속도가 감소합니다. 이는 모든 플레이어에게 적용됩니다. 过热的武器将会有打不准和减少射击初速的情况。适用于所有玩家 過熱的武器將會有打不準和減少射擊初速的情況。適用於所有玩家 @@ -218,7 +218,7 @@ Használd a cső kicseréléséhez. Use para trocar o cano/estriamento. Usata per cambiare la canna. - 予備銃身に交換する。 + 予身の交換に使用します。 총열을 바꿀때 사용합니다. 用来更换枪管 用來更換槍管 @@ -266,7 +266,7 @@ Akadás elhárítva Arma destravada Arma pronta al fuoco - 弾詰りが除去された + 弾詰りが除去されました 탄걸림 해결됨 卡弹已清除 卡彈已清除 @@ -281,7 +281,7 @@ Zbrań se nepodařilo uvolnit Falha no desemperramento Не удалось исправить клин - 弾詰りの除去に失敗した + 弾詰りの除去に失敗しました 탄걸림 해결 실패 卡弹未能清除 卡彈未能清除 @@ -329,7 +329,7 @@ Cső kicserélve Cano substituído Canna sostituita - 銃身を交換した + 銃身を交換しました 교체된 총열 完成换枪管 完成換槍管 diff --git a/addons/overpressure/stringtable.xml b/addons/overpressure/stringtable.xml index e04d8d43bd..2191a29dec 100644 --- a/addons/overpressure/stringtable.xml +++ b/addons/overpressure/stringtable.xml @@ -25,9 +25,11 @@ Backblast range + 後方噴射の範囲 Backblast angle + 後方噴射の角度 diff --git a/addons/parachute/stringtable.xml b/addons/parachute/stringtable.xml index 1c975454c7..fa46ad254f 100644 --- a/addons/parachute/stringtable.xml +++ b/addons/parachute/stringtable.xml @@ -108,7 +108,7 @@ Hides the altitude and speed shown while free falling or parachuting. Blendet den Höhen- und Geschwindigkeitsmesser während des Fallschirmspringens aus. - 自由降下時かパラシュート中に高度と速度を非表示にします。 + 自由降下時とパラシュート中に高度と速度を非表示にします。 Nasconde l'altitudine e la velocità mostrate durante la caduta libera o paracadutandosi. 在自由落體時或開傘下隱藏自由落體高度計。 在自由落体时或开伞下隐藏自由落体高度计。 diff --git a/addons/quickmount/stringtable.xml b/addons/quickmount/stringtable.xml index 2032af7a44..2caefe566f 100644 --- a/addons/quickmount/stringtable.xml +++ b/addons/quickmount/stringtable.xml @@ -25,7 +25,7 @@ Quickly enter the vehicle you are directly looking at. Schnellzugang in das Fahrzeug, welches man direkt anschaut. Entra velocemente nel veicolo che stai guardando. - 直接見ている車両へ迅速に搭乗します。 + 見ている車両へ迅速に搭乗します。 快速进入你正在看的载具之中 快速進入你正在看的載具之中 Szybko wsiądź do pojazdu, na który patrzysz. @@ -35,7 +35,7 @@ Vehicle Full Fahrzeug voll Veicolo Pieno - 車両は満員 + 車両は満員です 载具已满 載具已滿 Pojazd pełny @@ -65,7 +65,7 @@ Vehicle Locked Fahrzeug abgeschlossen Veicolo Bloccato. - 車両は施錠されている + 車両は施錠されています 载具已上锁 載具已上鎖 Pojazd zablokowany @@ -105,7 +105,7 @@ Seat priority on entry Priorisierter Sitzplatz zum Schnellzugang Priorità del sedile in entrata - 搭乗の際の優先順位 + 搭乗時の優先順位 优先想进入哪个座位。 優先想進入哪個座位。 Priorytet pozycji w pojeździe diff --git a/addons/rearm/stringtable.xml b/addons/rearm/stringtable.xml index 3823d031ef..fafd3c936a 100644 --- a/addons/rearm/stringtable.xml +++ b/addons/rearm/stringtable.xml @@ -8,6 +8,7 @@ 整裝 整装 再武装 + 再武装 Rearm Settings @@ -64,7 +65,7 @@ Quanto velocemente dovrebbe essere riarmato un veicolo? Cuán rápido es el proceso de rearme? A quelle vitesse devrait être réarmé un véhicule ? - 車両を再武装する速さを設定しますか? + 車両を再武装する速さを設定しますか? 차량을 얼마나 빨리 재보급 시킵니까? 载具多快会整装完毕? 載具多快會整裝完畢? @@ -128,7 +129,7 @@ How much ammunition does an ammo truck carry? Wie viel Munition transportiert ein Munitionslaster? Quante munizioni può trasportare un camion? - 弾薬トラックがどの位の弾薬を供給できるようにしますか? + 弾薬トラックがどの位の弾薬を供給できるようにしますか? 弹药卡车会携带多少的弹药? 彈藥卡車會攜帶多少的彈藥? Ile amunicji przewozi ciężarówka? @@ -188,7 +189,7 @@ There is ammunition worth %1 points left. Es ist noch Munition für %1 Punkte übrig. E' presente una penalità delle munizioni %1 punti rimanenti. - この弾薬は%1残っている + 弾薬は%1残っています。 还剩下%1多的弹药. 還剩下%1多的彈藥. Pozostało %1 punktów amunicji. @@ -239,7 +240,7 @@ Riarmando %1 con %2... Rearmando %1 con %2... Réarmement de %1 avec %2... - %1を%2により再武装する。 + %1を%2により再武装しています・・・ %2을 %1에 재보급중... %2正整装到%1中... %2正整裝到%1中... @@ -254,7 +255,7 @@ Riarmando %1... Rearmando %1... Réarmement de %1... - %1を再武装中・・・ + %1を再武装しています・・・ %1 재보급중... 整装%1中... 整裝%1中... @@ -284,7 +285,7 @@ Prendi munizioni Tomar munición Prendre la munition - 弾薬をとる + 弾薬を取る 탄약 가지기 取得弹药 取得彈藥 @@ -343,7 +344,7 @@ Sto raccogliendo le munizioni... Levantando munición... Ramassage des munitions... - 弾薬を拾っている・・・ + 弾薬を拾っています・・・ 탄약 줍는중... 捡起弹药中... 撿起彈藥中... @@ -358,7 +359,7 @@ Riarmati %1 colpi di %2 su %3 Rearmadas %1 rondas de %2 en %3 %1 balles réarmées de %2 dans %3 - %1発の%2を%3から装填した + %1発の%2を%3から装填しました %3에 2%의 %1 탄약 재보급 整装了%1发%2到%3上 整裝了%1發%2到%3上 @@ -493,7 +494,7 @@ Hydra 70 HE Hydra 70 HE Hydra 70 HE - ハイドラ 70 HE + ハイドラ 70 りゅう弾 Hydra 70 고폭탄 九头蛇 70 高爆弹 九頭蛇 70 高爆彈 @@ -508,7 +509,7 @@ S-8 HE S-8 HE S-8 HE - S-8 HE + S-8 りゅう弾 S-8 고폭탄 S-8 高爆弹 S-8 高爆彈 @@ -522,7 +523,7 @@ Hydra 70 AP Hydra 70 AP Hydra 70 AP - Hydra 70 AP + Hydra 70 徹甲弾 ハイドラ 70 AP Hydra 70 철갑탄 九头蛇 70 反人员弹 @@ -538,7 +539,7 @@ S-8 AP S-8 AP S-8 AP - S-8 AP + S-8 徹甲弾 S-8 철갑탄 S-8 反人员弹 S-8 反人員彈 diff --git a/addons/refuel/stringtable.xml b/addons/refuel/stringtable.xml index 00cdb7e308..32d0528ae3 100644 --- a/addons/refuel/stringtable.xml +++ b/addons/refuel/stringtable.xml @@ -131,7 +131,7 @@ Scollega manicotto benzina Desconectar surtidor Déconnecter la pompe - 給油ノズルを外した + 給油ノズルを外しました 주유기 뽑기 断开燃料喷嘴 斷開燃料噴嘴 @@ -191,7 +191,7 @@ Sono rimasti %1 litri. Quedan %1 litros. Il reste %1 litres. - 後 %1 リットル残っている。 + 後 %1 リットル残っています。 %1 리터 남음 剩下%1公升的燃料。 剩下%1公升的燃料。 @@ -206,7 +206,7 @@ Non è rimasta più benzina. No queda combustible. Il n'y a plus de carburant. - もう燃料は残っていない。 + もう燃料は残っていません。 연료 없음. 没有剩余的燃料 沒有剩餘的燃料 @@ -251,7 +251,7 @@ Ferma rifornimento Detener reabastecimiento Arrêter le ravitaillement - 給油をやめる + 給油を止める 그만 재급유하기 停止加油 停止加油 @@ -275,7 +275,7 @@ Couldn't turn on fuel nozzle Kann Zapfpistole nicht anschalten Impossibile iniziare il rifornimento - 給油を始められなかった + 給油を始められませんでした 無法開啟燃料噴嘴 无法开启燃料喷嘴 주유기를 켤 수 없습니다. @@ -290,7 +290,7 @@ %1 litri riforniti %1 lt reabastecido %1 litres ravitaillés - %1 リッターを給油した + %1 リッターを給油しました %1 리터 재급유됨 已加入%1公升的燃料 已加入%1公升的燃料 @@ -320,7 +320,7 @@ Distanza massima della pompa raggiunta. Máxima longitud de manguera alcanzada. Tuyau tendu au maximum - 給油ホースはもうこれ以上届かない。 + 給油ホースはもうこれ以上届きません。 주유기 호스 최대 거리에 도달함. 已加满至最大油量。 已加滿至最大油量。 @@ -335,7 +335,7 @@ Rifornimento completato Reabastecimiento completado Ravitaillement terminé - 給油完了 + 給油を完了しました 재급유 완료함 加油完毕 加油完畢 @@ -350,7 +350,7 @@ Rifornimento fermato Reabastecimiento detenido Ravitaillement stoppé - 給油を止めた + 給油を止めました 재급유 멈춤 已停止加油 已停止加油 @@ -365,7 +365,7 @@ Rifornimento iniziato Comenzó el reabastecimiento Ravitaillement débuté - 給油を始めた + 給油を始めました 재급유 시작함 已开始加油 已開始加油 @@ -425,7 +425,7 @@ %1 litri sono stati riforniti. Se reabastecieron %1 lt %1 litres ont été écoulés. - %1 リッターが給油された + %1 リッターが給油されました。 %1 리터가 재급유되었습니다. 已加入%1公升 已加入%1公升 @@ -456,7 +456,7 @@ The fuel volume available for refueling (-1 disable, -10 if infinite) Das Tankvolumen, welches zum Nachtanken verfügbar ist (-1 deaktiviert, -10 unendlich) Объем топлива, доступный для заправки других машин (-1 отключить, -10 если неограничен) - 給油用の貯油量を設定 (-1で無効、-10で無限) + 給油用の貯油量を設定できます (-1で無効、-10で無限) La capacità del carburante disponibile per il rifornimento (-1 disabilita, -10 se infinito) 設定有多少油料可供載具進行加油(-1時關閉,-10為無限油量) 设定有多少油料可供载具进行加油(-1时关闭,-10为无限油量) @@ -476,7 +476,7 @@ Model coordinates used to attach refuel hose Modelkoordinaten zum Anheften der Zapfpistole Координаты модели, куда крепится заправочный шланг - 給油ノズルの取り付けにモデル座標を使用 + 給油ノズルの取り付けにモデル座標を使用します Coordinate del modello utilizzate per il fissaggio del tubo 設定加油軟管會安裝到模型的哪個位置上 设定加油软管会安装到模型的哪个位置上 diff --git a/addons/repair/stringtable.xml b/addons/repair/stringtable.xml index 8f724cc79f..b5728585a7 100644 --- a/addons/repair/stringtable.xml +++ b/addons/repair/stringtable.xml @@ -74,7 +74,7 @@ Rueda cambiada Ruota sostituita Roue remplacée - タイヤを交換した + タイヤを交換しました 바퀴 교체됨 轮胎更换完毕 輪胎更換完畢 @@ -120,7 +120,7 @@ Rueda quitada Ruota rimossa Roue démontée - タイヤを外した + タイヤを外しました 바퀴 제거됨 轮胎卸下完毕 輪胎卸下完畢 @@ -165,7 +165,7 @@ Oruga cambiada Cingolo sostituito Chenille remplacée - 履帯を交換した + 履帯を交換しました 궤도 교체됨 履带更换完毕 履帶更換完畢 @@ -210,7 +210,7 @@ Oruga quitada Cingolo rimosso Chenille enlevée - 履帯を外した + 履帯を外しました 궤도 제거됨 履带卸下完毕 履帶卸下完畢 @@ -376,7 +376,7 @@ Zobrazit oznámení kdykoliv opravíš vozidlo Mostra una notifica quando stai riparando un veicolo Afficher une notification lorsque l'on répare un véhicule - あなたが車両の修理を始めると、画面に通知を出します + 車両の修理を始めると、画面に通知を出します 수리시 화면에 글자로 알림이 뜹니다 每当维修载具时显示通知 每當維修載具時顯示通知 @@ -424,7 +424,7 @@ %1 Riparata/o %1 megjavítva %1 отремонтирован - %1 を修理した + %1 を修理しました %1 수리됨 已维修%1 已維修%1 @@ -454,7 +454,7 @@ %1 - částečně opraveno %1 parzialmente riparato %1 pratiquement réparée - %1 を部分的に修理した + %1 を部分的に修理しました %1 부분적으로 수리됨 %1已完成部分维修 %1已完成部分維修 @@ -469,7 +469,7 @@ Totalmente reparada %1 %1 completamente riparato %1 entièrement réparée - %1 を完全に修理した + %1 を完全に修理しました %1 완전히 수리됨 %1已完整维修 %1已完整維修 @@ -484,7 +484,7 @@ %1 - částečně opraveno %1 parzialmente riparato %1 pratiquement réparée - %1 を部分的に修理した + %1 を部分的に修理しました %1 부분적으로 수리됨 %1已完成部分维修 %1已完成部分維修 @@ -746,7 +746,7 @@ Comandante Torretta Parancsnok Lövegtorony Башня командира - 指揮官 砲塔 + 車長の砲塔 지휘관 포탑 指挥官 炮塔 指揮官 砲塔 @@ -762,7 +762,7 @@ Comandante Cannone Parancsnok Ágyú Пушка командира - 指揮官 砲 + 車長の砲 지휘관 포 指挥官 枪 指揮官 槍 @@ -985,7 +985,7 @@ Rotore di coda Farokrotor Рулевой винт - 尾翼ローター + テイル ローター 꼬리 로터 尾桨 尾槳 @@ -1093,7 +1093,7 @@ Poskytuje rozsáhlý systém oprav pro všechny typy vozidel. Fornisce un sistema di riparazione per tutti i tipi di veicoli. Fournit un système de réparation pour tous les types de véhicules. - 車両の全種類に修理システムを適用しますか? + 全種類の車両に修理システムを適用しますか? 모든 차량에 대해 수리 시스템을 제공합니다. 提供修复系统给所有载具 提供修復系統給所有載具 @@ -1858,9 +1858,11 @@ Auto shut off engine on repair + 修理時にエンジン自動停止 Automatically shut off the engine when doing repairs. + 修理時にエンジンを自動で停止します。 diff --git a/addons/respawn/stringtable.xml b/addons/respawn/stringtable.xml index 47a9f7b756..d9947d98a6 100644 --- a/addons/respawn/stringtable.xml +++ b/addons/respawn/stringtable.xml @@ -35,7 +35,7 @@ Gyülekezőpont elhelyezve Rallypoint dispiegato Rallypoints posicionado - ラリーポイントを設置した + ラリーポイントを設置しました 집결지 배치됨 集合点布署完成 集合點佈署完成 @@ -83,7 +83,7 @@ Bázisra teleportálva Teleportato alla base Teletransportado para a Base - ベースへ移動した + ベースへ移動しました 기지로 순간이동함 已传送至基地 已傳送至基地 @@ -99,7 +99,7 @@ Gyülekezőpontra teleportálva Teleportato al rallypoint Teletransportado para o Rallypoints - ラリーポイントへ移動した + ラリーポイントへ移動しました 집결지로 순간이동함 已传送至集合点 已傳送至集合點 @@ -297,7 +297,7 @@ Ce module permet de régler les options de Respawn Questo modulo ti permette di configurare le funzionalità ACE specifiche dei respawn. Este módulo permite configurar parámetros relacionados con la reaparición - このモジュールを有効化するとリスポンへ ACE 機能を設定できます。 + 有効化するとリスポンへ ACE 機能を設定できます。 이 모듈은 ACE 재배치의 자세한 설정을 변결할 수 있게 해줍니다. 该模块使您可以设定ACE的重生功能 該模塊使您可以設定ACE的重生功能 diff --git a/addons/safemode/stringtable.xml b/addons/safemode/stringtable.xml index 2e259bc9d3..e5eff7255c 100644 --- a/addons/safemode/stringtable.xml +++ b/addons/safemode/stringtable.xml @@ -44,7 +44,7 @@ Sécurité mise Sicura inserita Colocar Segurança - 安全装置を掛けた + 安全装置をかけました 안전장치 적용 关保险 關保險 @@ -60,7 +60,7 @@ Sécurité enlevée Sicura tolta Tirou Segurança - 安全装置を外した + 安全装置を外しました 안전장치 해제됨 已开保险 已開保險 diff --git a/addons/sandbag/stringtable.xml b/addons/sandbag/stringtable.xml index 4559e43b00..de9ecd8a18 100644 --- a/addons/sandbag/stringtable.xml +++ b/addons/sandbag/stringtable.xml @@ -44,7 +44,7 @@ Impossibile costruire qui Nem teheted ide Não pode contruir aqui - ここでは作れない + ここでは作れません 여기에 지을 수 없습니다 无法放置在此 無法放置在此 @@ -140,7 +140,7 @@ Cancella Posizionamento Visszavonás Cancelar implantação - 作るのをやめる + 作るのを止める 설치 취소 取消布署 取消佈署 @@ -188,7 +188,7 @@ Qui non cè Sabbia Itt nincs homok Aqui não tem areia - ここに土は無い + ここに土はありません 흙이 없습니다 这里没有沙 這裡沒有沙 diff --git a/addons/scopes/stringtable.xml b/addons/scopes/stringtable.xml index 4306e72137..a19bb55df0 100644 --- a/addons/scopes/stringtable.xml +++ b/addons/scopes/stringtable.xml @@ -443,10 +443,12 @@ Horizontal limits Limites horizontales + 水平制限 Vertical limits Limites verticales + 垂直制限 diff --git a/addons/spectator/stringtable.xml b/addons/spectator/stringtable.xml index a9aec6cbb0..e5984b4183 100644 --- a/addons/spectator/stringtable.xml +++ b/addons/spectator/stringtable.xml @@ -110,7 +110,7 @@ 1. a 3. osoby 1ª e 3ª pessoa 1PP 과 3PP 카메라 - 1PP と 3PP カメラ + 一人称と三人称 第一人稱與第三人稱 第一人称与第三人称 diff --git a/addons/zeus/stringtable.xml b/addons/zeus/stringtable.xml index 854d4fad83..7be670ec00 100644 --- a/addons/zeus/stringtable.xml +++ b/addons/zeus/stringtable.xml @@ -953,7 +953,7 @@ Cargo : Груз: Náklad: - カーゴ: + カーゴ: Ładunek: Ladung: 화물: @@ -1072,9 +1072,11 @@ Toggle Target + 目標を切り替え Units affected by the toggle + ユニットは切り替えに影響を受けます Selected Group @@ -1286,7 +1288,7 @@ Vollständige Heilung Teljes gyógyítás Guarigione completa - フルヒール + 完全に回復 완전 치유 Pełne uleczenie Cura completa @@ -1318,7 +1320,7 @@ Aktivierungsseite Aktiválási oldal Lato di attivazione - アクティベーションサイド + 対象陣営 활성화면 Strona aktywacji Lado de ativação @@ -1366,7 +1368,7 @@ Automatische Suche Automatikus keresés Ricerca automatica - オートシーク + 自動誘導 자동 탐색 Auto Seek Busca automática @@ -1382,7 +1384,7 @@ Die Einheit versucht aktiv, in der Nähe befindliche Einheiten der Aktivierungsseite zu finden und sich dorthin zu bewegen. Der Bereich der automatischen Suche basiert auf der Fähigkeit der Zielentfernung der Einheit mit einer Mindestentfernung von 100 Metern. Az egység aktívan megpróbálja megtalálni és elmozdulni az aktivációs oldal közeli egységei felé.Az automatikus keresési tartomány az egység helyszíni szakértelmén alapul, legalább 100 méterrel. L'unità cercherà attivamente di trovare e spostarsi verso le unità vicine del lato di attivazione. La gamma di Auto Seek si basa sull'abilità a distanza spot dell'unità con un minimo di 100 metri. - ユニットはアクティベーション側の近くのユニットを見つけて移動しようと積極的に試みます。オートシークの範囲は、ユニットのスポット距離のスキルに基づいており、最低100メートルです。 + 対象陣営ユニットを見つけて移動しようと積極的に試みます。自動誘導の範囲は、ユニットの索敵能力に基づいており、最低100メートルです。 유닛은 액티브 측의 근접 유닛을 향해 적극적으로 찾아서 이동하려고 시도합니다. 자동 시크의 범위는 유닛의 스팟 거리 스킬을 기준으로 최소 100 미터입니다. Jednostka będzie aktywnie próbowała znaleźć i ruszyć w kierunku pobliskich jednostek strony aktywacji. Zasięg Auto Seek opiera się na umiejętności punktowej odległości jednostki z minimum 100 metrów. A unidade tentará ativamente encontrar e se mover para as unidades próximas do lado da ativação. O alcance da Auto Seek é baseado na habilidade de distância do ponto da unidade com um mínimo de 100 metros. @@ -1398,7 +1400,7 @@ Klein Kicsi Piccolo - 小さい + 작은 Mały Pequeno @@ -1446,7 +1448,7 @@ Die Einheit ist bereits ein Selbstmordattentäter Az egység már öngyilkos bombázó L'unità è già un kamikaze - ユニットはすでに自爆テロである + すでに自爆ユニットです 유닛은 이미 자살 폭탄 테러범이다. Jednostka jest już zamachowcem-samobójcą A unidade já é um suicida @@ -1455,9 +1457,11 @@ Add full ACE Arsenal + ACE 武器庫を追加 Remove ACE Arsenal + ACE 武器庫を削除 From 4ede9858e5e6d9e69a36fff9badbdec98c129482 Mon Sep 17 00:00:00 2001 From: Dedmen Miller Date: Thu, 17 May 2018 03:00:51 +0200 Subject: [PATCH 123/235] Fix minor typo in fnc_cachedCall (#6346) --- addons/common/functions/fnc_cachedCall.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/common/functions/fnc_cachedCall.sqf b/addons/common/functions/fnc_cachedCall.sqf index 8636ffff84..086112b90d 100644 --- a/addons/common/functions/fnc_cachedCall.sqf +++ b/addons/common/functions/fnc_cachedCall.sqf @@ -25,7 +25,7 @@ params ["_params", "_function", "_namespace", "_uid", "_duration", "_event"]; if ((_namespace getVariable [_uid, [-99999]]) select 0 < diag_tickTime) then { _namespace setVariable [_uid, [diag_tickTime + _duration, _params call _function]]; - // Does the cache needs to be cleared on an event? + // Does the cache need to be cleared on an event? if (!isNil "_event") then { private _varName = format [QGVAR(clearCache_%1), _event]; private _cacheList = missionNamespace getVariable _varName; From 9d0e2014cf8749bcfe47939713ea23ee12fe96c7 Mon Sep 17 00:00:00 2001 From: Thomas Kooi Date: Tue, 22 May 2018 23:02:34 +0200 Subject: [PATCH 124/235] Delete travis ci config file (#6361) Travis CI is no longer being used. --- .travis.yml | 27 --------------------------- 1 file changed, 27 deletions(-) delete mode 100644 .travis.yml diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 14a3d562cd..0000000000 --- a/.travis.yml +++ /dev/null @@ -1,27 +0,0 @@ -branches: - only: - - master - - release -language: python -python: -- '3.5' -before_script: -- if [ -n "${GH_TOKEN}" ] && [ "${TRAVIS_BRANCH}" == "master" ] && [ "${TRAVIS_PULL_REQUEST}" == "false" ]; then - pip install pygithub; - pip install pygithub3; - fi -script: -- python3 tools/sqf_validator.py -- python3 tools/config_style_checker.py -env: - global: - - secure: cdxkn5cAx+s1C9Ne5m+odEhde1uuSg6XGMDgepN4DwSAJwtMnUv3ZmDebd5YJC1raZJdep+n09Cj0GoTNICQRkco50DxHKHYNad41wetY0tn0cs9gmPYzyFE5q4vuWiQ47dlGhQQ7IJDyX0nU++gG5E50/PhlZfebdedGSprN/4= -notifications: - slack: - rooms: - - secure: byZMNBl8PMlgjT9NA1WmhgCdGfX4b3g1kA0vEiwfm+IFNlx7BiM4J/5rp6zV/jV470xl/epAejx2tsa5SdTyFbO87NH63ILJSt5QnjUZjRuGKSutFs9WE671DtZkPRSJXHS4N6x802PRkyBz/84/lsc34FWvHvjwOuYAtOcJRFk= - - secure: V22TNaLWV+yUNWqR7c6HVvIxkRDz7Dyz9xqa43FY8iFgvNL4Q/X69h5DYHU/ILNFM00tx8OBjtPRbcjWQ+F6eY8Sje/A2axJAU+qNurAvoyiTahXUprdUUpPdkgXWuSRTZ9kALxOq5e11RC8XUietghoMcl8zPcqdrZCOOKgoEM= - on_success: change - email: - on_success: never - on_failure: change From 0199ba9b4cf287326e481b451cf9d8fd8fd55bd7 Mon Sep 17 00:00:00 2001 From: EtoileRei Date: Mon, 28 May 2018 14:15:28 +0900 Subject: [PATCH 125/235] Japanese Translation Tweak (#6374) # fixed typo # improved readability # standardized expression --- addons/rearm/stringtable.xml | 31 ++++++++++++------------ optionals/compat_adr_97/stringtable.xml | 32 ++++++++++++------------- 2 files changed, 31 insertions(+), 32 deletions(-) diff --git a/addons/rearm/stringtable.xml b/addons/rearm/stringtable.xml index fafd3c936a..086ed40eaf 100644 --- a/addons/rearm/stringtable.xml +++ b/addons/rearm/stringtable.xml @@ -8,7 +8,6 @@ 整裝 整装 再武装 - 再武装 Rearm Settings @@ -65,7 +64,7 @@ Quanto velocemente dovrebbe essere riarmato un veicolo? Cuán rápido es el proceso de rearme? A quelle vitesse devrait être réarmé un véhicule ? - 車両を再武装する速さを設定しますか? + 車両を再武装する早さを設定します。 차량을 얼마나 빨리 재보급 시킵니까? 载具多快会整装完毕? 載具多快會整裝完畢? @@ -80,7 +79,7 @@ Tutto il Veicolo Vehículo completo Véhicule entier - 対象の車両 + 車両全体 모든 차량 整个载具 整個載具 @@ -95,7 +94,7 @@ Tutto il Caricatore Cargador completo Chargeur entier - 対象の弾薬 + マガジン全体 모든 탄창 整个弹匣 整個彈匣 @@ -129,7 +128,7 @@ How much ammunition does an ammo truck carry? Wie viel Munition transportiert ein Munitionslaster? Quante munizioni può trasportare un camion? - 弾薬トラックがどの位の弾薬を供給できるようにしますか? + 弾薬トラックの運搬量を設定します。 弹药卡车会携带多少的弹药? 彈藥卡車會攜帶多少的彈藥? Ile amunicji przewozi ciężarówka? @@ -169,7 +168,7 @@ Check remaining ammunition Verbleibende Munition prüfen Controlla munizioni rimanenti - 残弾薬を確認 + 残弾薬を確認する 检查剩余的弹药 檢查剩餘的彈藥 Sprawdź ilość amunicji @@ -179,7 +178,7 @@ Checking remaining ammunition... Überprüfe verbleibende Munition... Controllando le munizioni rimanenti - 残弾薬を確認しています・・・ + 残弾薬を確認中… 正在检查剩余的弹药中... 正在檢查剩餘的彈藥中... Sprawdzanie ilości amunicji... @@ -189,7 +188,7 @@ There is ammunition worth %1 points left. Es ist noch Munition für %1 Punkte übrig. E' presente una penalità delle munizioni %1 punti rimanenti. - 弾薬は%1残っています。 + 弾薬は%1残っている 还剩下%1多的弹药. 還剩下%1多的彈藥. Pozostało %1 punktów amunicji. @@ -209,7 +208,7 @@ There is no ammunition left. Es ist keine Munition übrig. Non ci sono munizioni rimanenti. - 弾薬は残っていません。 + 弾薬は残っていない 已经没有剩余的弹药了. 已經沒有剩餘的彈藥了. Brak amunicji w zapasie. @@ -240,7 +239,7 @@ Riarmando %1 con %2... Rearmando %1 con %2... Réarmement de %1 avec %2... - %1を%2により再武装しています・・・ + %1に%2を再武装中… %2을 %1에 재보급중... %2正整装到%1中... %2正整裝到%1中... @@ -255,7 +254,7 @@ Riarmando %1... Rearmando %1... Réarmement de %1... - %1を再武装しています・・・ + %1を再武装中… %1 재보급중... 整装%1中... 整裝%1中... @@ -270,7 +269,7 @@ Sto prendendo %1 per %2... Tomando %1 para %2... Prend %1 pour %2... - %1を%2のために取得しています・・・ + %1から%2を取得中… %2를 위해 %1 가져오는중... 拿取%1给%2中... 拿取%1給%2中... @@ -300,7 +299,7 @@ Raccogli munizioni Levantar munición Ramasser la munition - 弾薬を拾う + 弾薬を拾得する 탄약 줍기 捡起弹药 撿起彈藥 @@ -315,7 +314,7 @@ Riponi munizioni Guardar munición Stocker la munition - 弾薬を戻す + 弾薬を格納する 탄약 보관하기 储存弹药 儲存彈藥 @@ -330,7 +329,7 @@ Sto riponendo %1 in %2... Guardando %1 en %2... Stocke %1 dans %2... - %1を%2へ戻しています・・・ + %1を%2へ格納中… %2에 %1 보관중... 储存%1到%2中... 儲存%1到%2中... @@ -344,7 +343,7 @@ Sto raccogliendo le munizioni... Levantando munición... Ramassage des munitions... - 弾薬を拾っています・・・ + 弾薬を拾得中… 탄약 줍는중... 捡起弹药中... 撿起彈藥中... diff --git a/optionals/compat_adr_97/stringtable.xml b/optionals/compat_adr_97/stringtable.xml index f4c39d6205..698aafaacb 100644 --- a/optionals/compat_adr_97/stringtable.xml +++ b/optionals/compat_adr_97/stringtable.xml @@ -12,7 +12,7 @@ P90 TR (Nero) P90 TR (Fekete) P90 TR (Preto) - P90 TR (黒) + P90 TR (ブラック) P90 TR (黑色) P90 TR (黑色) P90 TR (Black) @@ -28,7 +28,7 @@ P90 TR (Khaki) P90 TR (Khaki) P90 TR (Caqui) - P90 TR (土埃) + P90 TR (カーキ) P90 TR (沙色) P90 TR (沙色) P90 TR (Khaki) @@ -44,7 +44,7 @@ P90 TR (Camo) P90 TR (Terepmintás) P90 TR (Camuflagem) - P90 TR (迷彩) + P90 TR (カモフラージュ) P90 TR (迷彩) P90 TR (迷彩) P90 TR (Camo) @@ -60,7 +60,7 @@ P90 TR (Hex) P90 TR (Hex) P90 TR (Hex) - P90 TR (蜂巣) + P90 TR (ヘックス) P90 TR (數位蜂巢迷彩) P90 TR (数位蜂巢迷彩) P90 TR (Hex) @@ -76,7 +76,7 @@ P90 (Nero) P90 (Fekete) P90 (Preto) - P90 (黒) + P90 (ブラック) P90 (黑色) P90 (黑色) P90 (Black) @@ -92,7 +92,7 @@ P90 (Khaki) P90 (Khaki) P90 (Caqui) - P90 (土埃) + P90 (カーキ) P90 (沙色) P90 (沙色) P90 (Khaki) @@ -108,7 +108,7 @@ P90 (Camo) P90 (Terepmintás) P90 (Camuflagem) - P90 (迷彩) + P90 (カモフラージュ) P90 (迷彩) P90 (迷彩) P90 (Camo) @@ -124,7 +124,7 @@ P90 (Hex) P90 (Hex) P90 (Hex) - P90 (蜂巣) + P90 (ヘックス) P90 (數位蜂巢迷彩) P90 (数位蜂巢迷彩) P90 (Hex) @@ -140,7 +140,7 @@ PS90 TR (Nero) PS90 TR (Fekete) PS90 TR (Preto) - PS90 TR (黒) + PS90 TR (ブラック) PS90 TR (黑色) PS90 TR (黑色) PS90 TR (Black) @@ -156,7 +156,7 @@ PS90 TR (Khaki) PS90 TR (Khaki) PS90 TR (Caqui) - PS90 TR (土埃) + PS90 TR (カーキ) PS90 TR (沙色) PS90 TR (沙色) PS90 TR (Khaki) @@ -172,7 +172,7 @@ PS90 TR (Camo) PS90 TR (Terepmintás) PS90 TR (Camuflagem) - PS90 TR (迷彩) + PS90 TR (カモフラージュ) PS90 TR (迷彩) PS90 TR (迷彩) PS90 TR (Camo) @@ -188,7 +188,7 @@ PS90 TR (Hex) PS90 TR (Hex) PS90 TR (Hex) - PS90 TR (蜂巣) + PS90 TR (ヘックス) PS90 TR (數位蜂巢迷彩) PS90 TR (数位蜂巢迷彩) PS90 TR (Hex) @@ -204,7 +204,7 @@ PS90 (Nero) PS90 (Fekete) PS90 (Preto) - PS90 (黒) + PS90 (ブラック) PS90 (黑色) PS90 (黑色) PS90 (Black) @@ -220,7 +220,7 @@ PS90 (Khaki) PS90 (Khaki) PS90 (Caqui) - PS90 (土埃) + PS90 (カーキ) PS90 (沙色) PS90 (沙色) PS90 (Khaki) @@ -236,7 +236,7 @@ PS90 (Camo) PS90 (Terepmintás) PS90 (Camuflagem) - PS90 (迷彩) + PS90 (カモフラージュ) PS90 (迷彩) PS90 (迷彩) PS90 (Camo) @@ -252,7 +252,7 @@ PS90 (Hex) PS90 (Hex) PS90 (Hex) - PS90 (蜂巣) + PS90 (ヘックス) PS90 (數位蜂巢迷彩) PS90 (数位蜂巢迷彩) PS90 (Hex) From 9c60ec06e4773df1b2e09e65105fa19f8c7e1e65 Mon Sep 17 00:00:00 2001 From: Dmitry-Yuri <39197412+Dmitry-Yuri@users.noreply.github.com> Date: Tue, 29 May 2018 21:04:32 +0100 Subject: [PATCH 126/235] Fix Pointing Problems with Static Weapons (#6377) * Update fnc_keyPress.sqf * Update fnc_keyPress.sqf --- addons/finger/functions/fnc_keyPress.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/finger/functions/fnc_keyPress.sqf b/addons/finger/functions/fnc_keyPress.sqf index a9949f6ce3..44ee8b6474 100644 --- a/addons/finger/functions/fnc_keyPress.sqf +++ b/addons/finger/functions/fnc_keyPress.sqf @@ -48,7 +48,7 @@ private _nearbyMen = (ACE_player nearObjects ["CAManBase", (GVAR(maxRange) + 2)] {alive _x} && {(_x == (vehicle _x)) || {(vehicle _x) isKindOf "StaticWeapon"}} && {GVAR(indicatorForSelf) || {_x != ACE_player}} && - {!(lineIntersects [(eyePos _x), _playerEyePosASL, ACE_player, _x])} && + {!(lineIntersects [(eyePos _x), _playerEyePosASL, vehicle ACE_player, vehicle _x])} && {[_x] call EFUNC(common,isPlayer)}) then { _sendFingerToPlayers pushBack _x; From 9acce30dd3ef93ac2fd8524a5a87e07c920a267d Mon Sep 17 00:00:00 2001 From: BaerMitUmlaut Date: Wed, 30 May 2018 15:25:58 +0200 Subject: [PATCH 127/235] Fix doc for aneaerobic pathway (#6379) --- docs/wiki/feature/advanced-fatigue.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/wiki/feature/advanced-fatigue.md b/docs/wiki/feature/advanced-fatigue.md index c523797100..77c38d361b 100644 --- a/docs/wiki/feature/advanced-fatigue.md +++ b/docs/wiki/feature/advanced-fatigue.md @@ -73,7 +73,7 @@ Each pathway has different properties: They store different amounts of ATP and c #### 2.2.1 Anaerobic Pathway -This pathway is essentially responsible for your short term stamina. It has a very small capacity of ATP available (2300 mmol), which is can provide a lot of ATP very fast (13.3 mmol/s), but also replenished very quickly (56.7 mmol/s). This pathway is pretty much what limits how long you can jog or sprint in one go, which is why we use it as an indicator for the stamina bar. +This pathway is essentially responsible for your short term stamina. It has a very small capacity of ATP available (2300 mmol), which is can provide a lot of ATP very fast (113.3 mmol/s), but also replenished very quickly (56.7 mmol/s). This pathway is pretty much what limits how long you can jog or sprint in one go, which is why we use it as an indicator for the stamina bar. #### 2.2.2 Aerobic Pathways From bdc58441f45e2f23ce3c3f8c1965a785a66582bc Mon Sep 17 00:00:00 2001 From: shukari Date: Wed, 30 May 2018 23:45:31 +0200 Subject: [PATCH 128/235] Fixed mortar double loading (#6240) * block double loading * prevent double loading * block double loading * use nil * use nil * fix some wrong variables * not needed here * unload only one person * prevent duping * wrong makro * wrong makro * wrong macros * wrong macros --- addons/mk6mortar/functions/fnc_canLoadMagazine.sqf | 3 ++- addons/mk6mortar/functions/fnc_canUnloadMagazine.sqf | 2 ++ addons/mk6mortar/functions/fnc_loadMagazineTimer.sqf | 4 +++- addons/mk6mortar/functions/fnc_unloadMagazineTimer.sqf | 4 +++- 4 files changed, 10 insertions(+), 3 deletions(-) diff --git a/addons/mk6mortar/functions/fnc_canLoadMagazine.sqf b/addons/mk6mortar/functions/fnc_canLoadMagazine.sqf index 2114c7d3a8..7c0bb69374 100644 --- a/addons/mk6mortar/functions/fnc_canLoadMagazine.sqf +++ b/addons/mk6mortar/functions/fnc_canLoadMagazine.sqf @@ -20,6 +20,7 @@ params ["_static","_unit",["_magazineClassOptional","",[""]]]; if !(alive _static && GVAR(useAmmoHandling)) exitWith {false}; +if (_static getVariable [QGVAR(inUse), false]) exitWith {false}; private _canLoadMagazine = false; private _hasCompatibleMagazine = false; @@ -45,7 +46,7 @@ if (count (_static magazinesTurret [0]) > 0) then { _count = _currentMagazine select 2; }; //If the static weapon doesn't have a magzine or a magazine with no bullets, the player has a compatible magazine and the static weapon has a barrel then you can load a magazine -if ((count (_static magazinesTurret [0]) == 0 || _count == 0 ) && _hasCompatibleMagazine) then { +if ((count (_static magazinesTurret [0]) == 0 || _count == 0) && _hasCompatibleMagazine) then { _canLoadMagazine = true; }; _canLoadMagazine diff --git a/addons/mk6mortar/functions/fnc_canUnloadMagazine.sqf b/addons/mk6mortar/functions/fnc_canUnloadMagazine.sqf index ddb0c8d10b..959e8a05f4 100644 --- a/addons/mk6mortar/functions/fnc_canUnloadMagazine.sqf +++ b/addons/mk6mortar/functions/fnc_canUnloadMagazine.sqf @@ -19,6 +19,8 @@ params ["_static","_unit"]; if !(alive _static && GVAR(useAmmoHandling) && _static getVariable [QGVAR(initialized),false]) exitWith {false}; +if (_static getVariable [QGVAR(inUse), false]) exitWith {false}; + private _canUnloadMagazine = false; private _ammoCount = ((magazinesAllTurrets _static) select 1) select 2; diff --git a/addons/mk6mortar/functions/fnc_loadMagazineTimer.sqf b/addons/mk6mortar/functions/fnc_loadMagazineTimer.sqf index fa0adb28d0..e71dc9cacb 100644 --- a/addons/mk6mortar/functions/fnc_loadMagazineTimer.sqf +++ b/addons/mk6mortar/functions/fnc_loadMagazineTimer.sqf @@ -20,9 +20,11 @@ params ["_static","_unit","_timeToLoad",["_magazineClassOptional","",[""]]]; +_static setVariable [QGVAR(inUse), true, true]; + // Move player into animation if player is standing if ((_unit call CBA_fnc_getUnitAnim) select 0 == "stand") then { [_unit, "AmovPercMstpSrasWrflDnon_diary", 1] call EFUNC(common,doAnimation); }; -[_timeToLoad, [_static,_unit,_magazineClassOptional], {(_this select 0) call FUNC(loadMagazine)}, {}, localize LSTRING(loadingMortar)] call EFUNC(common,progressBar); +[_timeToLoad, [_static,_unit,_magazineClassOptional], {(_this select 0) call FUNC(loadMagazine); ((_this select 0) select 0) setVariable [QGVAR(inUse), nil, true]}, {((_this select 0) select 0) setVariable [QGVAR(inUse), nil, true]}, localize LSTRING(loadingMortar)] call EFUNC(common,progressBar); diff --git a/addons/mk6mortar/functions/fnc_unloadMagazineTimer.sqf b/addons/mk6mortar/functions/fnc_unloadMagazineTimer.sqf index 151f35492a..8ee4590f02 100644 --- a/addons/mk6mortar/functions/fnc_unloadMagazineTimer.sqf +++ b/addons/mk6mortar/functions/fnc_unloadMagazineTimer.sqf @@ -20,9 +20,11 @@ params ["_static","_unit","_timeToUnload"]; +_static setVariable [QGVAR(inUse), true, true]; + //Move player into animation if player is standing if ((_unit call CBA_fnc_getUnitAnim) select 0 == "stand") then { [_unit, "AmovPercMstpSrasWrflDnon_diary", 1] call EFUNC(common,doAnimation); }; -[_timeToUnload, [_static,_unit], {(_this select 0) call FUNC(unloadMagazine)}, {}, localize LSTRING(unloadingMortar)] call EFUNC(common,progressBar); +[_timeToUnload, [_static,_unit], {(_this select 0) call FUNC(unloadMagazine); ((_this select 0) select 0) setVariable [QGVAR(inUse), nil, true]}, {((_this select 0) select 0) setVariable [QGVAR(inUse), nil, true]}, localize LSTRING(unloadingMortar)] call EFUNC(common,progressBar); From f3f57c6a3899f7426f905cff885d4af03ebfb83e Mon Sep 17 00:00:00 2001 From: mharis001 <34453221+mharis001@users.noreply.github.com> Date: Wed, 30 May 2018 17:48:19 -0400 Subject: [PATCH 129/235] Cleanup unused priority entry for interact menu actions (#6372) --- addons/atragmx/CfgVehicles.hpp | 1 - addons/attach/CfgVehicles.hpp | 4 ---- addons/captives/CfgVehicles.hpp | 8 ------- addons/chemlights/CfgVehicles.hpp | 2 -- addons/concertina_wire/CfgVehicles.hpp | 2 -- addons/dagr/CfgVehicles.hpp | 2 -- addons/dogtags/CfgVehicles.hpp | 2 -- addons/explosives/CfgVehicles.hpp | 6 ----- addons/fastroping/CfgVehicles.hpp | 5 ---- addons/fcs/CfgVehicles.hpp | 2 -- addons/gestures/CfgVehicles.hpp | 16 ------------- addons/gunbag/CfgVehicles.hpp | 8 ------- addons/hearing/CfgVehicles.hpp | 2 -- addons/huntir/CfgVehicles.hpp | 1 - addons/interaction/CfgVehicles.hpp | 27 ---------------------- addons/kestrel4500/CfgVehicles.hpp | 3 --- addons/magazinerepack/CfgVehicles.hpp | 1 - addons/map/CfgVehicles.hpp | 1 - addons/maptools/CfgVehicles.hpp | 11 --------- addons/medical/ACE_Medical_Actions.hpp | 15 ------------ addons/medical/ACE_Medical_SelfActions.hpp | 14 ----------- addons/medical/CfgVehicles.hpp | 5 ---- addons/mk6mortar/CfgVehicles.hpp | 1 - addons/overheating/CfgVehicles.hpp | 4 ---- addons/parachute/CfgVehicles.hpp | 1 - addons/rangecard/CfgVehicles.hpp | 3 --- addons/rearm/CfgVehicles.hpp | 1 - addons/refuel/CfgVehicles.hpp | 1 - addons/repair/CfgVehicles.hpp | 5 ++-- addons/respawn/CfgVehicles.hpp | 7 ------ addons/sandbag/CfgVehicles.hpp | 2 -- addons/scopes/CfgVehicles.hpp | 2 -- addons/spottingscope/CfgVehicles.hpp | 2 -- addons/tacticalladder/CfgVehicles.hpp | 3 --- addons/trenches/CfgVehicles.hpp | 4 ---- addons/tripod/CfgVehicles.hpp | 3 --- addons/vehiclelock/CfgVehicles.hpp | 6 ----- 37 files changed, 2 insertions(+), 181 deletions(-) diff --git a/addons/atragmx/CfgVehicles.hpp b/addons/atragmx/CfgVehicles.hpp index 6e8a136a03..ae37e7bb00 100644 --- a/addons/atragmx/CfgVehicles.hpp +++ b/addons/atragmx/CfgVehicles.hpp @@ -8,7 +8,6 @@ class CfgVehicles { condition = QUOTE(call FUNC(can_show)); statement = QUOTE(call FUNC(create_dialog)); showDisabled = 0; - priority = 2; icon = QPATHTOF(UI\ATRAG_Icon.paa); exceptions[] = {"notOnMap", "isNotInside", "isNotSitting"}; }; diff --git a/addons/attach/CfgVehicles.hpp b/addons/attach/CfgVehicles.hpp index 84ca6ee290..9ae9dae7a2 100644 --- a/addons/attach/CfgVehicles.hpp +++ b/addons/attach/CfgVehicles.hpp @@ -8,7 +8,6 @@ insertChildren = QUOTE(_this call FUNC(getChildrenAttachActions)); \ exceptions[] = {"isNotSwimming"}; \ showDisabled = 0; \ - priority = 0; \ icon = QPATHTOF(UI\attach_ca.paa); \ }; \ class GVAR(DetachVehicle) { \ @@ -17,7 +16,6 @@ statement = QUOTE(_this call FUNC(detach) ); \ exceptions[] = {"isNotSwimming"}; \ showDisabled = 0; \ - priority = 0.1; \ icon = QPATHTOF(UI\detach_ca.paa); \ }; \ }; \ @@ -57,7 +55,6 @@ class CfgVehicles { insertChildren = QUOTE(_this call FUNC(getChildrenAttachActions)); exceptions[] = {"isNotDragging", "isNotSwimming"}; showDisabled = 0; - priority = 5; icon = QPATHTOF(UI\attach_ca.paa); }; class GVAR(Detach) { @@ -66,7 +63,6 @@ class CfgVehicles { statement = QUOTE(_this call FUNC(detach)); exceptions[] = {"isNotDragging", "isNotSwimming"}; showDisabled = 0; - priority = 5; icon = QPATHTOF(UI\detach_ca.paa); }; }; diff --git a/addons/captives/CfgVehicles.hpp b/addons/captives/CfgVehicles.hpp index 8fdb45396e..d000ad6083 100644 --- a/addons/captives/CfgVehicles.hpp +++ b/addons/captives/CfgVehicles.hpp @@ -30,7 +30,6 @@ class CfgVehicles { exceptions[] = {"isNotSwimming"}; showDisabled = 0; icon = QPATHTOF(UI\captive_ca.paa); - priority = 2.3; }; class ACE_StopEscorting { displayName = CSTRING(StopEscorting); @@ -40,7 +39,6 @@ class CfgVehicles { exceptions[] = {"isNotEscorting", "isNotSwimming"}; showDisabled = 0; icon = QPATHTOF(UI\captive_ca.paa); - priority = 2.3; }; class ACE_LoadCaptive { displayName = CSTRING(LoadCaptive); @@ -50,7 +48,6 @@ class CfgVehicles { exceptions[] = {"isNotEscorting", "isNotSwimming"}; showDisabled = 0; icon = QPATHTOF(UI\captive_ca.paa); - priority = 2.2; insertChildren = QUOTE(call DFUNC(addLoadCaptiveActions)); }; class GVAR(UnloadCaptive) { @@ -59,7 +56,6 @@ class CfgVehicles { condition = QUOTE([ARR_2(_player, _target)] call FUNC(canUnloadCaptive)); statement = QUOTE([ARR_2(_player, _target)] call FUNC(doUnloadCaptive)); exceptions[] = {"isNotSwimming"}; - priority = 1.2; }; }; }; @@ -71,7 +67,6 @@ class CfgVehicles { statement = QUOTE([ARR_3(_player,objNull, false)] call FUNC(doEscortCaptive)); exceptions[] = {"isNotEscorting", "isNotSwimming"}; showDisabled = 0; - priority = 2.3; }; class ACE_StartSurrenderingSelf { displayName = CSTRING(StartSurrendering); @@ -79,7 +74,6 @@ class CfgVehicles { statement = QUOTE([ARR_2(_player, true)] call FUNC(setSurrendered)); exceptions[] = {"isNotSwimming"}; showDisabled = 0; - priority = 0; icon = QPATHTOF(UI\Surrender_ca.paa); }; class ACE_StopSurrenderingSelf { @@ -88,7 +82,6 @@ class CfgVehicles { statement = QUOTE([ARR_2(_player, false)] call FUNC(setSurrendered)); exceptions[] = {"isNotSurrendering", "isNotSwimming"}; showDisabled = 0; - priority = 0; icon = QPATHTOF(UI\Surrender_ca.paa); }; }; @@ -103,7 +96,6 @@ class CfgVehicles { condition = QUOTE([ARR_3(_player, objNull, _target)] call FUNC(canLoadCaptive)); \ statement = QUOTE([ARR_3(_player, objNull, _target)] call FUNC(doLoadCaptive)); \ exceptions[] = {"isNotEscorting", "isNotSwimming"}; \ - priority = 1.2; \ }; \ }; \ }; diff --git a/addons/chemlights/CfgVehicles.hpp b/addons/chemlights/CfgVehicles.hpp index 8e5fe8789e..9fd05d84b9 100644 --- a/addons/chemlights/CfgVehicles.hpp +++ b/addons/chemlights/CfgVehicles.hpp @@ -2,7 +2,6 @@ class CBA_Extended_EventHandlers; class CfgVehicles { - class Man; class CAManBase: Man { class ACE_SelfActions { @@ -15,7 +14,6 @@ class CfgVehicles { exceptions[] = {"isNotDragging", "isNotSwimming", "notOnMap", "isNotInside", "isNotSitting"}; insertChildren = QUOTE(_this call DFUNC(compileChemlightMenu)); showDisabled = 0; - priority = 99; }; }; }; diff --git a/addons/concertina_wire/CfgVehicles.hpp b/addons/concertina_wire/CfgVehicles.hpp index d7f5d0d82a..0bc5a31e59 100644 --- a/addons/concertina_wire/CfgVehicles.hpp +++ b/addons/concertina_wire/CfgVehicles.hpp @@ -90,7 +90,6 @@ class CfgVehicles { statement = QUOTE([ARR_2(_target,_player)] call FUNC(dismount)); showDisabled = 0; exceptions[] = {}; - priority = 5; icon = QPATHTOF(UI\icon_sandbag_ca.paa); }; }; @@ -137,7 +136,6 @@ class CfgVehicles { statement = QUOTE([ARR_2({_this call FUNC(deploy)}, [ARR_2(_target,_player)])] call CBA_fnc_execNextFrame); showDisabled = 0; exceptions[] = {}; - priority = 5; icon = QPATHTOF(UI\icon_sandbag_ca.paa); }; }; diff --git a/addons/dagr/CfgVehicles.hpp b/addons/dagr/CfgVehicles.hpp index 89bfd8af4e..6b0188a178 100644 --- a/addons/dagr/CfgVehicles.hpp +++ b/addons/dagr/CfgVehicles.hpp @@ -8,7 +8,6 @@ class CfgVehicles { condition = QUOTE([ARR_2(_player,'ACE_DAGR')] call EFUNC(common,hasItem)); statement = QUOTE(call FUNC(menuInit)); showDisabled = 0; - priority = 0.1; icon = QPATHTOF(UI\DAGR_Icon.paa); exceptions[] = {"isNotInside", "isNotSitting"}; class GVAR(toggle) { @@ -16,7 +15,6 @@ class CfgVehicles { condition = QUOTE([ARR_2(_player,'ACE_DAGR')] call EFUNC(common,hasItem)); statement = QUOTE(call FUNC(toggleOverlay)); showDisabled = 0; - priority = 0.2; icon = QPATHTOF(UI\DAGR_Icon.paa); exceptions[] = {"notOnMap", "isNotInside", "isNotSitting"}; }; diff --git a/addons/dogtags/CfgVehicles.hpp b/addons/dogtags/CfgVehicles.hpp index 170f1fb074..af8cfb1442 100644 --- a/addons/dogtags/CfgVehicles.hpp +++ b/addons/dogtags/CfgVehicles.hpp @@ -17,7 +17,6 @@ class CfgVehicles { statement = QUOTE([ARR_2(_player,_target)] call FUNC(checkDogtag)); exceptions[] = {"isNotSwimming", "isNotInside"}; showDisabled = 0; - priority = 3; icon = QPATHTOF(data\dogtag_icon_ca.paa); }; class ACE_TakeDogtag { @@ -26,7 +25,6 @@ class CfgVehicles { statement = QUOTE([ARR_2(_player,_target)] call FUNC(takeDogtag)); exceptions[] = {"isNotSwimming", "isNotInside"}; showDisabled = 0; - priority = 3; icon = QPATHTOF(data\dogtag_icon_ca.paa); }; }; diff --git a/addons/explosives/CfgVehicles.hpp b/addons/explosives/CfgVehicles.hpp index 8d03856e50..c183720386 100644 --- a/addons/explosives/CfgVehicles.hpp +++ b/addons/explosives/CfgVehicles.hpp @@ -11,10 +11,8 @@ class CfgVehicles { statement = ""; exceptions[] = {"isNotSwimming", "isNotInside", "isNotSitting"}; showDisabled = 1; - priority = 4; icon = QPATHTOF(UI\Explosives_Menu_ca.paa); insertChildren = QUOTE([_player] call FUNC(addTransmitterActions);); - //Sub-menu items class ACE_Place { displayName = CSTRING(Place); condition = QUOTE((vehicle _player == _player) and {[_player] call FUNC(hasExplosives)}); @@ -23,7 +21,6 @@ class CfgVehicles { exceptions[] = {"isNotSwimming"}; showDisabled = 1; icon = QPATHTOF(UI\Place_Explosive_ca.paa); - priority = 1; }; class ACE_Cellphone { displayName = CSTRING(cellphone_displayName); @@ -32,7 +29,6 @@ class CfgVehicles { exceptions[] = {"isNotSwimming", "isNotInside", "isNotSitting"}; showDisabled = 0; icon = QPATHTOF(Data\UI\Cellphone_UI.paa); - priority = 0.8; }; }; }; @@ -95,7 +91,6 @@ class CfgVehicles { insertChildren = QUOTE([ARR_3(_target getVariable QUOTE(QGVAR(class)),_target,_player)] call FUNC(addTriggerActions);); showDisabled = 0; exceptions[] = {"isNotSwimming"}; - priority = 5; icon = QPATHTOF(UI\Explosives_Menu_ca.paa); }; class ACE_PickUp { @@ -105,7 +100,6 @@ class CfgVehicles { statement = QUOTE([ARR_2(_player,_target getVariable QUOTE(QGVAR(class)))] call EFUNC(common,addToInventory);deleteVehicle _target;); showDisabled = 0; exceptions[] = {"isNotSwimming"}; - priority = 5; icon = "\A3\ui_f\data\IGUI\Cfg\Actions\Obsolete\ui_action_takemine_ca.paa"; }; }; diff --git a/addons/fastroping/CfgVehicles.hpp b/addons/fastroping/CfgVehicles.hpp index 94992669d9..e5894be6d0 100644 --- a/addons/fastroping/CfgVehicles.hpp +++ b/addons/fastroping/CfgVehicles.hpp @@ -43,35 +43,30 @@ class CfgVehicles { condition = QUOTE([vehicle _player] call FUNC(canPrepareFRIES)); statement = QUOTE([vehicle _player] call FUNC(prepareFRIES)); showDisabled = 0; - priority = 1; }; class ACE_stowFRIES { displayName = CSTRING(Interaction_stowFRIES); condition = QUOTE([vehicle _player] call FUNC(canStowFRIES)); statement = QUOTE([vehicle _player] call FUNC(stowFRIES)); showDisabled = 0; - priority = 1; }; class ACE_deployRopes { displayName = CSTRING(Interaction_deployRopes); condition = QUOTE([ARR_2(_player, vehicle _player)] call FUNC(canDeployRopes)); statement = QUOTE([ARR_2(QUOTE(QGVAR(deployRopes)), [vehicle _player])] call CBA_fnc_serverEvent); showDisabled = 0; - priority = 1; }; class ACE_cutRopes { displayName = CSTRING(Interaction_cutRopes); condition = [vehicle _player] call FUNC(canCutRopes); statement = [vehicle _player] call FUNC(cutRopes); showDisabled = 0; - priority = 1; }; class ACE_fastRope { displayName = CSTRING(Interaction_fastRope); condition = [_player, vehicle _player] call FUNC(canFastRope); statement = [_player, vehicle _player] call FUNC(fastRope); showDisabled = 0; - priority = 1; }; }; }; diff --git a/addons/fcs/CfgVehicles.hpp b/addons/fcs/CfgVehicles.hpp index e357613a80..8461fcc05a 100644 --- a/addons/fcs/CfgVehicles.hpp +++ b/addons/fcs/CfgVehicles.hpp @@ -29,7 +29,6 @@ class CfgVehicles { condition = QUOTE(_player call FUNC(canResetFCS)); statement = QUOTE([ARR_2(vehicle _player,[_player] call DEFUNC(common,getTurretIndex))] call DFUNC(reset);); showDisabled = 0; - priority = 1; icon = ""; }; }; @@ -42,7 +41,6 @@ class CfgVehicles { condition = QUOTE(_player call FUNC(canResetFCS)); statement = QUOTE([ARR_2(vehicle _player,[_player] call DEFUNC(common,getTurretIndex))] call DFUNC(reset);); showDisabled = 0; - priority = 1; icon = ""; }; }; diff --git a/addons/gestures/CfgVehicles.hpp b/addons/gestures/CfgVehicles.hpp index 1d94e5ecc4..bc9c36d6ef 100644 --- a/addons/gestures/CfgVehicles.hpp +++ b/addons/gestures/CfgVehicles.hpp @@ -8,16 +8,13 @@ class CfgVehicles { statement = ""; exceptions[] = {"isNotSwimming"}; showDisabled = 1; - priority = 3.5; icon = QPATHTOF(UI\gestures_ca.paa); - class GVAR(Advance) { displayName = CSTRING(Advance); condition = QUOTE(true); statement = QUOTE([ARR_2(_target,'gestureAdvance')] call EFUNC(common,doGesture)); //exceptions[] = {"isNotSwimming"}; // Does not work underwaterexceptions[] = {"isNotSwimming"}; showDisabled = 1; - priority = 1.9; }; class GVAR(Go) { displayName = CSTRING(Go); @@ -25,7 +22,6 @@ class CfgVehicles { statement = QUOTE([ARR_2(_target,selectRandom [ARR_2('gestureGo','gestureGoB')])] call EFUNC(common,doGesture)); //exceptions[] = {"isNotSwimming"}; // Does not work underwater showDisabled = 1; - priority = 1.8; }; class GVAR(Follow) { displayName = CSTRING(Follow); @@ -33,7 +29,6 @@ class CfgVehicles { statement = QUOTE([ARR_2(_target,'gestureFollow')] call EFUNC(common,doGesture)); //exceptions[] = {"isNotSwimming"}; // Does not work underwater showDisabled = 1; - priority = 1.7; }; class GVAR(Up) { displayName = CSTRING(Up); @@ -41,7 +36,6 @@ class CfgVehicles { statement = QUOTE([ARR_2(_target,'gestureUp')] call EFUNC(common,doGesture)); //exceptions[] = {"isNotSwimming"}; // Does not work underwater showDisabled = 1; - priority = 1.5; }; class GVAR(CeaseFire) { displayName = CSTRING(CeaseFire); @@ -49,7 +43,6 @@ class CfgVehicles { statement = QUOTE([ARR_2(_target,'gestureCeaseFire')] call EFUNC(common,doGesture)); //exceptions[] = {"isNotSwimming"}; // Does not work underwater showDisabled = 1; - priority = 1.3; }; class GVAR(Stop) { displayName = CSTRING(Stop); @@ -57,7 +50,6 @@ class CfgVehicles { statement = QUOTE([ARR_2(_target,'gestureFreeze')] call EFUNC(common,doGesture)); // BI animation - is actually "stop" in all stances but prone //exceptions[] = {"isNotSwimming"}; // Does not work underwater showDisabled = 1; - priority = 1.2; }; class GVAR(Forward) { displayName = CSTRING(Forward); @@ -65,7 +57,6 @@ class CfgVehicles { statement = QUOTE(QUOTE(QGVAR(forward)) call FUNC(playSignal)); exceptions[] = {"isNotSwimming"}; showDisabled = 1; - priority = 1.9; }; class GVAR(Regroup) { displayName = CSTRING(Regroup); @@ -73,7 +64,6 @@ class CfgVehicles { statement = QUOTE(QUOTE(QGVAR(regroup)) call FUNC(playSignal)); exceptions[] = {"isNotSwimming"}; showDisabled = 1; - priority = 1.8; }; class GVAR(Freeze) { displayName = CSTRING(Freeze); @@ -81,7 +71,6 @@ class CfgVehicles { statement = QUOTE(QUOTE(QGVAR(freeze)) call FUNC(playSignal)); exceptions[] = {"isNotSwimming"}; showDisabled = 1; - priority = 1.7; }; class GVAR(Cover) { displayName = CSTRING(Cover); @@ -89,7 +78,6 @@ class CfgVehicles { statement = QUOTE(QUOTE(QGVAR(cover)) call FUNC(playSignal)); exceptions[] = {"isNotSwimming"}; showDisabled = 1; - priority = 1.6; }; class GVAR(Point) { displayName = CSTRING(Point); @@ -97,7 +85,6 @@ class CfgVehicles { statement = QUOTE(QUOTE(QGVAR(point)) call FUNC(playSignal)); exceptions[] = {"isNotSwimming"}; showDisabled = 1; - priority = 1.5; }; class GVAR(Engage) { displayName = CSTRING(Engage); @@ -105,7 +92,6 @@ class CfgVehicles { statement = QUOTE(QUOTE(QGVAR(engage)) call FUNC(playSignal)); exceptions[] = {"isNotSwimming"}; showDisabled = 1; - priority = 1.4; }; class GVAR(Hold) { displayName = CSTRING(Hold); @@ -113,7 +99,6 @@ class CfgVehicles { statement = QUOTE(QUOTE(QGVAR(hold)) call FUNC(playSignal)); exceptions[] = {"isNotSwimming"}; showDisabled = 1; - priority = 1.3; }; class GVAR(Warning) { displayName = CSTRING(Warning); @@ -121,7 +106,6 @@ class CfgVehicles { statement = QUOTE(QUOTE(QGVAR(warning)) call FUNC(playSignal)); exceptions[] = {"isNotSwimming"}; showDisabled = 1; - priority = 1.2; }; }; }; diff --git a/addons/gunbag/CfgVehicles.hpp b/addons/gunbag/CfgVehicles.hpp index 1377a8f84d..e23966cfa2 100644 --- a/addons/gunbag/CfgVehicles.hpp +++ b/addons/gunbag/CfgVehicles.hpp @@ -8,7 +8,6 @@ class CfgVehicles { condition = QUOTE(([_target] call FUNC(hasGunbag)) && {[ARR_2(_player,_target)] call FUNC(canInteract) == 0}); statement = QUOTE([ARR_2(_player,_target)] call FUNC(toGunbag)); showDisabled = 0; - priority = 1; icon = QPATHTOF(ui\gunbag_icon_ca.paa); }; class GVAR(weaponOff) { @@ -16,7 +15,6 @@ class CfgVehicles { condition = QUOTE(([_target] call FUNC(hasGunbag)) && {[ARR_2(_player,_target)] call FUNC(canInteract) == 1}); statement = QUOTE([ARR_2(_player,_target)] call FUNC(offGunbag)); showDisabled = 0; - priority = 1; icon = QPATHTOF(ui\gunbag_icon_ca.paa); }; class GVAR(status) { @@ -24,7 +22,6 @@ class CfgVehicles { condition = QUOTE([_target] call FUNC(hasGunbag)); statement = QUOTE([_target] call FUNC(status)); showDisabled = 0; - priority = 2; icon = QPATHTOF(ui\gunbag_icon_ca.paa); }; }; @@ -36,15 +33,12 @@ class CfgVehicles { displayName = CSTRING(Displayname); condition = QUOTE([_player] call FUNC(hasGunbag)); showDisabled = 0; - priority = 0.1; icon = QPATHTOF(ui\gunbag_icon_ca.paa); - class GVAR(weaponTo) { displayName = CSTRING(ToGunbag); condition = QUOTE([ARR_2(_player,_player)] call FUNC(canInteract) == 0); statement = QUOTE([ARR_2(_player,_player)] call FUNC(toGunbag)); showDisabled = 0; - priority = 1; icon = QPATHTOF(ui\gunbag_icon_ca.paa); }; class GVAR(weaponOff) { @@ -52,7 +46,6 @@ class CfgVehicles { condition = QUOTE([ARR_2(_player,_player)] call FUNC(canInteract) == 1); statement = QUOTE([ARR_2(_player,_player)] call FUNC(offGunbag)); showDisabled = 0; - priority = 1; icon = QPATHTOF(ui\gunbag_icon_ca.paa); }; class GVAR(status) { @@ -60,7 +53,6 @@ class CfgVehicles { condition = QUOTE([_player] call FUNC(hasGunbag)); statement = QUOTE([_player] call FUNC(status)); showDisabled = 0; - priority = 2; icon = QPATHTOF(ui\gunbag_icon_ca.paa); }; }; diff --git a/addons/hearing/CfgVehicles.hpp b/addons/hearing/CfgVehicles.hpp index 51e064d16b..48fb79277e 100644 --- a/addons/hearing/CfgVehicles.hpp +++ b/addons/hearing/CfgVehicles.hpp @@ -9,7 +9,6 @@ class CfgVehicles { exceptions[] = {"isNotSwimming", "isNotInside", "isNotSitting"}; statement = QUOTE( [_player] call FUNC(putInEarPlugs) ); showDisabled = 0; - priority = 2.5; icon = QPATHTOF(UI\ACE_earplugs_x_ca.paa); }; class ACE_RemoveEarplugs { @@ -18,7 +17,6 @@ class CfgVehicles { exceptions[] = {"isNotSwimming", "isNotInside", "isNotSitting"}; statement = QUOTE( [_player] call FUNC(removeEarPlugs) ); showDisabled = 0; - priority = 2.5; icon = QPATHTOF(UI\ACE_earplugs_x_ca.paa); }; }; diff --git a/addons/huntir/CfgVehicles.hpp b/addons/huntir/CfgVehicles.hpp index 99ca6f69a3..cf6c98904a 100644 --- a/addons/huntir/CfgVehicles.hpp +++ b/addons/huntir/CfgVehicles.hpp @@ -9,7 +9,6 @@ class CfgVehicles { condition = QUOTE([ARR_2(ACE_player,'ACE_HuntIR_monitor')] call EFUNC(common,hasItem)); statement = QUOTE([FUNC(huntir)] call CBA_fnc_execNextFrame;); showDisabled = 0; - priority = 2; icon = QPATHTOF(UI\w_huntir_monitor_ca.paa); exceptions[] = {}; }; diff --git a/addons/interaction/CfgVehicles.hpp b/addons/interaction/CfgVehicles.hpp index c438eb2104..06cf266b78 100644 --- a/addons/interaction/CfgVehicles.hpp +++ b/addons/interaction/CfgVehicles.hpp @@ -48,7 +48,6 @@ class CfgVehicles { statement = ""; exceptions[] = {"isNotSwimming"}; showDisabled = 0; - priority = 3.3; icon = "\a3\ui_f\data\gui\Rsc\RscDisplayArsenal\cargomag_ca.paa"; class ACE_PassMagazinePrimary { @@ -57,7 +56,6 @@ class CfgVehicles { statement = QUOTE([ARR_3(_player,_target,primaryWeapon _target)] call FUNC(passMagazine)); exceptions[] = {"isNotSwimming"}; showDisabled = 0; - priority = 3; icon = "\a3\ui_f\data\gui\Rsc\RscDisplayArsenal\primaryweapon_ca.paa"; }; class ACE_PassMagazineHandgun { @@ -66,7 +64,6 @@ class CfgVehicles { statement = QUOTE([ARR_3(_player,_target,handgunWeapon _target)] call FUNC(passMagazine)); exceptions[] = {"isNotSwimming"}; showDisabled = 0; - priority = 1; icon = "\a3\ui_f\data\gui\Rsc\RscDisplayArsenal\handgun_ca.paa"; }; }; @@ -77,7 +74,6 @@ class CfgVehicles { statement = ""; exceptions[] = {"isNotSwimming"}; showDisabled = 0; - priority = 3.2; icon = QPATHTOF(UI\team\team_management_ca.paa); class ACE_AssignTeamRed { @@ -87,7 +83,6 @@ class CfgVehicles { exceptions[] = {"isNotSwimming"}; showDisabled = 1; icon = QPATHTOF(UI\team\team_red_ca.paa); - priority = 2.4; }; class ACE_AssignTeamGreen { displayName = CSTRING(AssignTeamGreen); @@ -96,7 +91,6 @@ class CfgVehicles { exceptions[] = {"isNotSwimming"}; showDisabled = 1; icon = QPATHTOF(UI\team\team_green_ca.paa); - priority = 2.3; }; class ACE_AssignTeamBlue { displayName = CSTRING(AssignTeamBlue); @@ -105,7 +99,6 @@ class CfgVehicles { exceptions[] = {"isNotSwimming"}; showDisabled = 1; icon = QPATHTOF(UI\team\team_blue_ca.paa); - priority = 2.2; }; class ACE_AssignTeamYellow { displayName = CSTRING(AssignTeamYellow); @@ -114,7 +107,6 @@ class CfgVehicles { exceptions[] = {"isNotSwimming"}; showDisabled = 1; icon = QPATHTOF(UI\team\team_yellow_ca.paa); - priority = 2.1; }; class ACE_UnassignTeam { displayName = CSTRING(LeaveTeam); @@ -123,7 +115,6 @@ class CfgVehicles { exceptions[] = {"isNotSwimming"}; showDisabled = 1; icon = QPATHTOF(UI\team\team_white_ca.paa); - priority = 2.5; }; }; @@ -134,7 +125,6 @@ class CfgVehicles { modifierFunction = QUOTE(call FUNC(modifyJoinGroupAction)); exceptions[] = {"isNotSwimming"}; showDisabled = 0; - priority = 2.6; icon = QPATHTOF(UI\team\team_management_ca.paa); }; class ACE_GetDown { @@ -142,7 +132,6 @@ class CfgVehicles { condition = QUOTE([ARR_2(_player,_target)] call DFUNC(canInteractWithCivilian)); statement = QUOTE([ARR_2(_player,_target)] call DFUNC(getDown)); showDisabled = 0; - priority = 2.2; }; class ACE_SendAway { displayName = CSTRING(SendAway); @@ -150,7 +139,6 @@ class CfgVehicles { statement = QUOTE([ARR_2(_player,_target)] call DFUNC(sendAway)); exceptions[] = {"isNotSwimming"}; showDisabled = 0; - priority = 2.0; }; class ACE_Pardon { displayName = CSTRING(Pardon); @@ -158,7 +146,6 @@ class CfgVehicles { statement = QUOTE([ARR_2(_player,_target)] call DFUNC(pardon)); exceptions[] = {"isNotSwimming"}; showDisabled = 0; - priority = 2.5; }; class ACE_GetOut { displayName = CSTRING(GetOut); @@ -166,7 +153,6 @@ class CfgVehicles { statement = QUOTE([_target] call EFUNC(common,unloadPerson)); exceptions[] = {"isNotSwimming"}; showDisabled = 0; - priority = 2.6; }; class GVAR(PullOutBody) { @@ -259,7 +245,6 @@ class CfgVehicles { exceptions[] = {"isNotSwimming", "isNotInside", "isNotSitting", "isNotOnLadder", "isNotRefueling"}; statement = ""; showDisabled = 1; - priority = 3.2; icon = QPATHTOF(UI\team\team_management_ca.paa); class ACE_JoinTeamRed { @@ -268,7 +253,6 @@ class CfgVehicles { exceptions[] = {"isNotSwimming", "isNotInside", "isNotSitting", "isNotOnLadder", "isNotRefueling"}; statement = QUOTE([ARR_2(_player,'RED')] call DFUNC(joinTeam)); showDisabled = 1; - priority = 2.4; icon = QPATHTOF(UI\team\team_red_ca.paa); }; class ACE_JoinTeamGreen { @@ -277,7 +261,6 @@ class CfgVehicles { exceptions[] = {"isNotSwimming", "isNotInside", "isNotSitting", "isNotOnLadder", "isNotRefueling"}; statement = QUOTE([ARR_2(_player,'GREEN')] call DFUNC(joinTeam)); showDisabled = 1; - priority = 2.3; icon = QPATHTOF(UI\team\team_green_ca.paa); }; class ACE_JoinTeamBlue { @@ -286,7 +269,6 @@ class CfgVehicles { exceptions[] = {"isNotSwimming", "isNotInside", "isNotSitting", "isNotOnLadder", "isNotRefueling"}; statement = QUOTE([ARR_2(_player,'BLUE')] call DFUNC(joinTeam)); showDisabled = 1; - priority = 2.2; icon = QPATHTOF(UI\team\team_blue_ca.paa); }; class ACE_JoinTeamYellow { @@ -295,7 +277,6 @@ class CfgVehicles { exceptions[] = {"isNotSwimming", "isNotInside", "isNotSitting", "isNotOnLadder", "isNotRefueling"}; statement = QUOTE([ARR_2(_player,'YELLOW')] call DFUNC(joinTeam)); showDisabled = 1; - priority = 2.1; icon = QPATHTOF(UI\team\team_yellow_ca.paa); }; class ACE_LeaveTeam { @@ -304,7 +285,6 @@ class CfgVehicles { exceptions[] = {"isNotSwimming", "isNotInside", "isNotSitting", "isNotOnLadder", "isNotRefueling"}; statement = QUOTE([ARR_2(_player,'MAIN')] call DFUNC(joinTeam)); showDisabled = 1; - priority = 2.5; icon = QPATHTOF(UI\team\team_white_ca.paa); }; class ACE_BecomeLeader { @@ -313,7 +293,6 @@ class CfgVehicles { exceptions[] = {"isNotSwimming", "isNotInside", "isNotSitting", "isNotOnLadder", "isNotRefueling"}; statement = QUOTE(_this call DFUNC(doBecomeLeader)); showDisabled = 1; - priority = 1.0; icon = QPATHTOF(UI\team\team_white_ca.paa); }; class ACE_LeaveGroup { @@ -322,7 +301,6 @@ class CfgVehicles { exceptions[] = {"isNotSwimming", "isNotInside", "isNotSitting", "isNotOnLadder", "isNotRefueling"}; statement = QUOTE(_oldGroup = units group _player; _newGroup = createGroup side _player; [_player] joinSilent _newGroup; {_player reveal _x} forEach _oldGroup;); showDisabled = 1; - priority = 1.2; icon = QPATHTOF(UI\team\team_management_ca.paa); }; }; @@ -333,7 +311,6 @@ class CfgVehicles { exceptions[] = {"isNotSwimming", "isNotInside", "notOnMap", "isNotSitting"}; statement = ""; showDisabled = 1; - priority = 4.5; icon = ""; // @todo }; }; @@ -543,7 +520,6 @@ class CfgVehicles { statement = QUOTE(_this call FUNC(push)); exceptions[] = {"isNotSwimming"}; showDisabled = 0; - priority = -1; }; class ACE_Passengers { displayName = CSTRING(Passengers); @@ -637,17 +613,14 @@ class CfgVehicles { selection = ""; distance = 2; condition = "true"; - class ACE_OpenBox { displayName = CSTRING(OpenBox); condition = QUOTE((alive _target) && {(getNumber (configFile >> 'CfgVehicles' >> (typeOf _target) >> 'disableInventory')) == 0}); statement = QUOTE(_player action [ARR_2(QUOTE(QUOTE(Gear)), _target)]); showDisabled = 0; - priority = -1; }; }; }; - class ACE_SelfActions {}; }; class Slingload_base_F: ReammoBox_F {}; diff --git a/addons/kestrel4500/CfgVehicles.hpp b/addons/kestrel4500/CfgVehicles.hpp index ccc4fa3bd2..9cdd077066 100644 --- a/addons/kestrel4500/CfgVehicles.hpp +++ b/addons/kestrel4500/CfgVehicles.hpp @@ -8,7 +8,6 @@ class CfgVehicles { condition = QUOTE(call FUNC(canShow) && !GVAR(Kestrel4500)); statement = QUOTE(call FUNC(createKestrelDialog)); showDisabled = 0; - priority = 0.1; icon = QPATHTOF(UI\Kestrel4500_Icon.paa); exceptions[] = {"notOnMap", "isNotInside", "isNotSitting"}; class GVAR(show) { @@ -16,7 +15,6 @@ class CfgVehicles { condition = QUOTE(call FUNC(canShow) && !GVAR(Overlay)); statement = QUOTE(call FUNC(displayKestrel)); showDisabled = 0; - priority = 0.2; icon = QPATHTOF(UI\Kestrel4500_Icon.paa); exceptions[] = {"notOnMap", "isNotInside", "isNotSitting"}; }; @@ -25,7 +23,6 @@ class CfgVehicles { condition = QUOTE(GVAR(Overlay)); statement = QUOTE(call FUNC(displayKestrel)); showDisabled = 0; - priority = 0.3; icon = QPATHTOF(UI\Kestrel4500_Icon.paa); exceptions[] = {"notOnMap", "isNotInside", "isNotSitting"}; }; diff --git a/addons/magazinerepack/CfgVehicles.hpp b/addons/magazinerepack/CfgVehicles.hpp index 2c8ef81608..7d1d328647 100644 --- a/addons/magazinerepack/CfgVehicles.hpp +++ b/addons/magazinerepack/CfgVehicles.hpp @@ -7,7 +7,6 @@ class CfgVehicles { condition = QUOTE(true); exceptions[] = {"isNotInside", "isNotSwimming", "isNotSitting"}; insertChildren = QUOTE(_this call FUNC(getMagazineChildren)); - priority = -2; icon = QPATHTOEF(common,UI\repack_ca.paa); }; }; diff --git a/addons/map/CfgVehicles.hpp b/addons/map/CfgVehicles.hpp index 3a28fe4c3e..16c03bd225 100644 --- a/addons/map/CfgVehicles.hpp +++ b/addons/map/CfgVehicles.hpp @@ -10,7 +10,6 @@ class CfgVehicles { exceptions[] = {"isNotDragging", "notOnMap", "isNotInside", "isNotSitting"}; insertChildren = QUOTE(_this call DFUNC(compileFlashlightMenu)); showDisabled = 0; - priority = 99; }; }; }; diff --git a/addons/maptools/CfgVehicles.hpp b/addons/maptools/CfgVehicles.hpp index 6c9bdc74d9..2e5663e251 100644 --- a/addons/maptools/CfgVehicles.hpp +++ b/addons/maptools/CfgVehicles.hpp @@ -2,14 +2,12 @@ class CfgVehicles { class Man; class CAManBase: Man { class ACE_SelfActions { - class ACE_MapGpsShow { displayName = CSTRING(MapGpsShow); condition = QUOTE((!GVAR(mapGpsShow)) && {call FUNC(canUseMapGPS)}); statement = QUOTE(GVAR(mapGpsShow) = true; [GVAR(mapGpsShow)] call FUNC(openMapGps)); exceptions[] = {"isNotDragging", "notOnMap", "isNotInside", "isNotSitting"}; showDisabled = 0; - priority = 0; }; class ACE_MapGpsHide { displayName = CSTRING(MapGpsHide); @@ -17,24 +15,19 @@ class CfgVehicles { statement = QUOTE(GVAR(mapGpsShow) = false; [GVAR(mapGpsShow)] call FUNC(openMapGps)); exceptions[] = {"isNotDragging", "notOnMap", "isNotInside", "isNotSitting"}; showDisabled = 0; - priority = 0; }; - class ACE_MapTools { displayName = CSTRING(MapTools_Menu); condition = QUOTE(call FUNC(canUseMapTools)); statement = ""; exceptions[] = {"isNotDragging", "notOnMap", "isNotInside", "isNotSitting"}; showDisabled = 0; - priority = 100; - class ACE_MapToolsHide { displayName = CSTRING(MapToolsHide); condition = QUOTE(GVAR(mapTool_Shown) != 0); statement = QUOTE(GVAR(mapTool_Shown) = 0;); exceptions[] = {"isNotDragging", "notOnMap", "isNotInside", "isNotSitting"}; showDisabled = 1; - priority = 5; }; class ACE_MapToolsShowNormal { displayName = CSTRING(MapToolsShowNormal); @@ -42,7 +35,6 @@ class CfgVehicles { statement = QUOTE(GVAR(mapTool_Shown) = 1;); exceptions[] = {"isNotDragging", "notOnMap", "isNotInside", "isNotSitting"}; showDisabled = 1; - priority = 4; }; class ACE_MapToolsShowSmall { displayName = CSTRING(MapToolsShowSmall); @@ -50,7 +42,6 @@ class CfgVehicles { statement = QUOTE(GVAR(mapTool_Shown) = 2;); exceptions[] = {"isNotDragging", "notOnMap", "isNotInside", "isNotSitting"}; showDisabled = 1; - priority = 3; }; class ACE_MapToolsAlignNorth { displayName = CSTRING(MapToolsAlignNorth); @@ -58,7 +49,6 @@ class CfgVehicles { statement = QUOTE(GVAR(mapTool_angle) = 0;); exceptions[] = {"isNotDragging", "notOnMap", "isNotInside", "isNotSitting"}; showDisabled = 1; - priority = 2; }; class ACE_MapToolsAlignCompass { displayName = CSTRING(MapToolsAlignCompass); @@ -66,7 +56,6 @@ class CfgVehicles { statement = QUOTE(GVAR(mapTool_angle) = getDir ACE_player;); exceptions[] = {"isNotDragging", "notOnMap", "isNotInside", "isNotSitting"}; showDisabled = 1; - priority = 1; }; }; }; diff --git a/addons/medical/ACE_Medical_Actions.hpp b/addons/medical/ACE_Medical_Actions.hpp index 900e6cb26c..678976a347 100644 --- a/addons/medical/ACE_Medical_Actions.hpp +++ b/addons/medical/ACE_Medical_Actions.hpp @@ -15,7 +15,6 @@ class ACE_Head { statement = QUOTE([ARR_4(_player, _target, 'head', 'Bandage')] call DFUNC(treatment)); EXCEPTIONS showDisabled = 1; - priority = 2; icon = QPATHTOF(UI\icons\bandage.paa); }; // Advanced medical @@ -26,7 +25,6 @@ class ACE_Head { statement = QUOTE([ARR_4(_player, _target, 'head', 'FieldDressing')] call DFUNC(treatment)); EXCEPTIONS showDisabled = 0; - priority = 2; icon = QPATHTOF(UI\icons\bandage.paa); }; class PackingBandage: fieldDressing { @@ -92,7 +90,6 @@ class ACE_Torso { statement = QUOTE([ARR_4(_player, _target, 'body', 'Bandage')] call DFUNC(treatment)); EXCEPTIONS showDisabled = 1; - priority = 2; enableInside = 1; icon = QPATHTOF(UI\icons\bandage.paa); }; @@ -103,7 +100,6 @@ class ACE_Torso { statement = QUOTE([ARR_4(_player, _target, 'body', 'BodyBag')] call DFUNC(treatment)); EXCEPTIONS showDisabled = 1; - priority = 2; enableInside = 1; }; class TriageCard { @@ -113,7 +109,6 @@ class ACE_Torso { statement = QUOTE([ARR_2(_target, true)] call DFUNC(displayTriageCard)); EXCEPTIONS showDisabled = 1; - priority = 2; enableInside = 1; icon = QPATHTOF(UI\icons\triageCard.paa); }; @@ -124,7 +119,6 @@ class ACE_Torso { statement = QUOTE([ARR_4(_player, _target, 'body', 'Diagnose')] call DFUNC(treatment)); EXCEPTIONS showDisabled = 0; - priority = 2; icon = ""; }; @@ -136,7 +130,6 @@ class ACE_Torso { statement = QUOTE([ARR_4(_player, _target, 'body', 'FieldDressing')] call DFUNC(treatment)); EXCEPTIONS showDisabled = 0; - priority = 2; enableInside = 1; icon = QPATHTOF(UI\icons\bandage.paa); }; @@ -200,7 +193,6 @@ class ACE_ArmLeft { statement = QUOTE([ARR_4(_player, _target, 'hand_l', 'Bandage')] call DFUNC(treatment)); EXCEPTIONS showDisabled = 1; - priority = 2; icon = QPATHTOF(UI\icons\bandage.paa); }; @@ -212,7 +204,6 @@ class ACE_ArmLeft { statement = QUOTE([ARR_4(_player, _target, 'hand_l', 'FieldDressing')] call DFUNC(treatment)); EXCEPTIONS showDisabled = 0; - priority = 2; icon = QPATHTOF(UI\icons\bandage.paa); }; class PackingBandage: fieldDressing { @@ -363,7 +354,6 @@ class ACE_ArmRight { statement = QUOTE([ARR_4(_player, _target, 'hand_r', 'Bandage')] call DFUNC(treatment)); EXCEPTIONS showDisabled = 1; - priority = 2; icon = QPATHTOF(UI\icons\bandage.paa); }; @@ -375,7 +365,6 @@ class ACE_ArmRight { statement = QUOTE([ARR_4(_player, _target, 'hand_r', 'FieldDressing')] call DFUNC(treatment)); EXCEPTIONS showDisabled = 0; - priority = 2; icon = QPATHTOF(UI\icons\bandage.paa); }; class PackingBandage: fieldDressing { @@ -524,7 +513,6 @@ class ACE_LegLeft { statement = QUOTE([ARR_4(_player, _target, 'leg_l', 'Bandage')] call DFUNC(treatment)); EXCEPTIONS showDisabled = 1; - priority = 2; icon = QPATHTOF(UI\icons\bandage.paa); }; @@ -537,7 +525,6 @@ class ACE_LegLeft { statement = QUOTE([ARR_4(_player, _target, 'leg_l', 'FieldDressing')] call DFUNC(treatment)); EXCEPTIONS showDisabled = 0; - priority = 2; icon = QPATHTOF(UI\icons\bandage.paa); }; class PackingBandage: fieldDressing { @@ -672,7 +659,6 @@ class ACE_LegRight { statement = QUOTE([ARR_4(_player, _target, 'leg_r', 'Bandage')] call DFUNC(treatment)); EXCEPTIONS showDisabled = 1; - priority = 2; icon = QPATHTOF(UI\icons\bandage.paa); }; @@ -685,7 +671,6 @@ class ACE_LegRight { statement = QUOTE([ARR_4(_player, _target, 'leg_r', 'FieldDressing')] call DFUNC(treatment)); EXCEPTIONS showDisabled = 0; - priority = 2; icon = QPATHTOF(UI\icons\bandage.paa); }; class PackingBandage: fieldDressing { diff --git a/addons/medical/ACE_Medical_SelfActions.hpp b/addons/medical/ACE_Medical_SelfActions.hpp index bf3fbe775f..e5be36cd63 100644 --- a/addons/medical/ACE_Medical_SelfActions.hpp +++ b/addons/medical/ACE_Medical_SelfActions.hpp @@ -22,7 +22,6 @@ class Medical { exceptions[] = {"isNotInside", "isNotSwimming"}; statement = QUOTE([ARR_4(_player, _target, 'head', 'Bandage')] call DFUNC(treatment)); showDisabled = 1; - priority = 2; icon = QPATHTOF(UI\icons\bandage.paa); }; // Advanced medical @@ -33,7 +32,6 @@ class Medical { exceptions[] = {"isNotInside", "isNotSwimming"}; statement = QUOTE([ARR_4(_player, _target, 'head', 'FieldDressing')] call DFUNC(treatment)); showDisabled = 0; - priority = 2; icon = QPATHTOF(UI\icons\bandage.paa); }; class PackingBandage: fieldDressing { @@ -80,7 +78,6 @@ class Medical { statement = QUOTE([ARR_3(_target, true, 1)] call DFUNC(displayPatientInformation)); modifierFunction = QUOTE([ARR_4(_target,_player,1,_this select 3)] call FUNC(modifyMedicalAction)); showDisabled = 1; - priority = 2; icon = QPATHTOF(UI\icons\medical_cross.paa); class Bandage { @@ -90,7 +87,6 @@ class Medical { exceptions[] = {"isNotInside", "isNotSwimming"}; statement = QUOTE([ARR_4(_player, _target, 'body', 'Bandage')] call DFUNC(treatment)); showDisabled = 1; - priority = 2; icon = QPATHTOF(UI\icons\bandage.paa); }; @@ -101,7 +97,6 @@ class Medical { exceptions[] = {"isNotInside", "isNotSwimming"}; statement = QUOTE([ARR_2(_target, true)] call DFUNC(displayTriageCard)); showDisabled = 1; - priority = 2; icon = QPATHTOF(UI\icons\triageCard.paa); }; @@ -113,7 +108,6 @@ class Medical { exceptions[] = {"isNotInside", "isNotSwimming"}; statement = QUOTE([ARR_4(_player, _target, 'body', 'FieldDressing')] call DFUNC(treatment)); showDisabled = 0; - priority = 2; icon = QPATHTOF(UI\icons\bandage.paa); }; class PackingBandage: fieldDressing { @@ -154,7 +148,6 @@ class Medical { exceptions[] = {"isNotInside", "isNotSwimming"}; statement = QUOTE([ARR_4(_player, _target, 'hand_l', 'Bandage')] call DFUNC(treatment)); showDisabled = 1; - priority = 2; icon = QPATHTOF(UI\icons\bandage.paa); }; @@ -166,7 +159,6 @@ class Medical { exceptions[] = {"isNotInside", "isNotSwimming"}; statement = QUOTE([ARR_4(_player, _target, 'hand_l', 'FieldDressing')] call DFUNC(treatment)); showDisabled = 0; - priority = 2; icon = QPATHTOF(UI\icons\bandage.paa); }; class PackingBandage: fieldDressing { @@ -261,7 +253,6 @@ class Medical { exceptions[] = {"isNotInside", "isNotSwimming"}; statement = QUOTE([ARR_4(_player, _target, 'hand_r', 'Bandage')] call DFUNC(treatment)); showDisabled = 1; - priority = 2; icon = QPATHTOF(UI\icons\bandage.paa); }; @@ -273,7 +264,6 @@ class Medical { exceptions[] = {"isNotInside", "isNotSwimming"}; statement = QUOTE([ARR_4(_player, _target, 'hand_r', 'FieldDressing')] call DFUNC(treatment)); showDisabled = 0; - priority = 2; icon = QPATHTOF(UI\icons\bandage.paa); }; class PackingBandage: fieldDressing { @@ -364,7 +354,6 @@ class Medical { exceptions[] = {"isNotInside", "isNotSwimming"}; statement = QUOTE([ARR_4(_player, _target, 'leg_l', 'Bandage')] call DFUNC(treatment)); showDisabled = 1; - priority = 2; icon = QPATHTOF(UI\icons\bandage.paa); }; @@ -377,7 +366,6 @@ class Medical { exceptions[] = {"isNotInside", "isNotSwimming"}; statement = QUOTE([ARR_4(_player, _target, 'leg_l', 'FieldDressing')] call DFUNC(treatment)); showDisabled = 0; - priority = 2; icon = QPATHTOF(UI\icons\bandage.paa); }; class PackingBandage: fieldDressing { @@ -456,7 +444,6 @@ class Medical { exceptions[] = {"isNotInside", "isNotSwimming"}; statement = QUOTE([ARR_4(_player, _target, 'leg_r', 'Bandage')] call DFUNC(treatment)); showDisabled = 1; - priority = 2; icon = QPATHTOF(UI\icons\bandage.paa); }; @@ -469,7 +456,6 @@ class Medical { exceptions[] = {"isNotInside", "isNotSwimming"}; statement = QUOTE([ARR_4(_player, _target, 'leg_r', 'FieldDressing')] call DFUNC(treatment)); showDisabled = 0; - priority = 2; icon = QPATHTOF(UI\icons\bandage.paa); }; class PackingBandage: fieldDressing { diff --git a/addons/medical/CfgVehicles.hpp b/addons/medical/CfgVehicles.hpp index 34bba3c95e..5db82ce1e5 100644 --- a/addons/medical/CfgVehicles.hpp +++ b/addons/medical/CfgVehicles.hpp @@ -548,7 +548,6 @@ class CfgVehicles { condition = QUOTE(_target getVariable [ARR_2(QUOTE(QUOTE(ACE_isUnconscious)), false)] && {alive _target} && {vehicle _target == _target}); statement = QUOTE([ARR_2(_player, _target)] call DFUNC(actionLoadUnit)); showDisabled = 0; - priority = 2; icon = QPATHTOF(UI\icons\medical_cross.paa); exceptions[] = {"isNotDragging", "isNotCarrying", "isNotSwimming"}; insertChildren = QUOTE(call DFUNC(addLoadPatientActions)); @@ -559,7 +558,6 @@ class CfgVehicles { condition = QUOTE(_target getVariable [ARR_2(QUOTE(QUOTE(ACE_isUnconscious)), false)] && {alive _target} && {vehicle _target != _target} && {vehicle _player == _player}); statement = QUOTE([ARR_2(_player, _target)] call DFUNC(actionUnloadUnit)); showDisabled = 0; - priority = 2; icon = QPATHTOF(UI\icons\medical_cross.paa); exceptions[] = {"isNotDragging", "isNotCarrying", "isNotInside", "isNotSwimming"}; }; @@ -914,20 +912,17 @@ class CfgVehicles { class ACE_Actions: ACE_Actions { class ACE_MainActions: ACE_MainActions { selection = "cover_action"; - class ACE_OpenLid { displayName = CSTRING(openLid); condition = QUOTE(alive _target && {_target animationPhase 'Cover' < 0.5}); statement = QUOTE(_target animate ARR_2(['Cover',1])); showDisabled = 0; - priority = -1; }; class ACE_CloseLid { displayName = CSTRING(closeLid); condition = QUOTE(alive _target && {_target animationPhase 'Cover' >= 0.5}); statement = QUOTE(_target animate ARR_2(['Cover',0])); showDisabled = 0; - priority = -1; }; }; }; diff --git a/addons/mk6mortar/CfgVehicles.hpp b/addons/mk6mortar/CfgVehicles.hpp index 36315772d4..4a5d420f5c 100644 --- a/addons/mk6mortar/CfgVehicles.hpp +++ b/addons/mk6mortar/CfgVehicles.hpp @@ -7,7 +7,6 @@ class CfgVehicles { displayName = CSTRING(rangetable_action); condition = QUOTE(_this call FUNC(rangeTableCanUse)); statement = QUOTE(_this call FUNC(rangeTableOpen)); - priority = 0; icon = QPATHTOF(UI\icon_rangeTable.paa); exceptions[] = {"notOnMap", "isNotInside", "isNotSitting"}; }; diff --git a/addons/overheating/CfgVehicles.hpp b/addons/overheating/CfgVehicles.hpp index aa9d4e8535..e142b71a89 100644 --- a/addons/overheating/CfgVehicles.hpp +++ b/addons/overheating/CfgVehicles.hpp @@ -10,7 +10,6 @@ class CfgVehicles { exceptions[] = {"isNotInside", "isNotSwimming", "isNotSitting"}; statement = QUOTE( [ARR_2(_player, currentMuzzle _player)] call FUNC(clearJam); ); showDisabled = 0; - priority = 4; icon = QPATHTOEF(common,UI\repack_ca.paa); }; class GVAR(SwapBarrel) { @@ -19,7 +18,6 @@ class CfgVehicles { exceptions[] = {"isNotInside", "isNotSwimming", "isNotSitting"}; statement = QUOTE( [ARR_3(_player, _player, currentWeapon _player)] call FUNC(swapBarrel); ); showDisabled = 0; - priority = 3; icon = QPATHTOF(UI\spare_barrel_ca.paa); }; class GVAR(CheckTemperature) { @@ -28,7 +26,6 @@ class CfgVehicles { exceptions[] = {"isNotInside", "isNotSwimming", "isNotSitting"}; statement = QUOTE( [ARR_3(_player, _player, currentWeapon _player)] call FUNC(checkTemperature); ); showDisabled = 0; - priority = 2.9; icon = QPATHTOF(UI\temp_ca.paa); }; class GVAR(CheckTemperatureSpareBarrels) { @@ -37,7 +34,6 @@ class CfgVehicles { exceptions[] = {"isNotInside", "isNotSwimming", "isNotSitting"}; statement = QUOTE( [_player] call FUNC(checkSpareBarrelsTemperatures); ); showDisabled = 0; - priority = 2.8; icon = QUOTE(PATHTOF(UI\temp_ca.paa)); }; }; diff --git a/addons/parachute/CfgVehicles.hpp b/addons/parachute/CfgVehicles.hpp index 402ff9497e..5f1b750377 100644 --- a/addons/parachute/CfgVehicles.hpp +++ b/addons/parachute/CfgVehicles.hpp @@ -17,7 +17,6 @@ class CfgVehicles { condition = QUOTE(_target getVariable [ARR_2(QQGVAR(canCut),false)]); statement = QUOTE([ARR_2(_player,_target)] call FUNC(cutParachute)); showDisabled = 0; - priority = 2.9; icon = QPATHTOF(UI\cut_ca.paa); }; }; diff --git a/addons/rangecard/CfgVehicles.hpp b/addons/rangecard/CfgVehicles.hpp index 7abc8d979b..5974e62e69 100644 --- a/addons/rangecard/CfgVehicles.hpp +++ b/addons/rangecard/CfgVehicles.hpp @@ -19,7 +19,6 @@ class CfgVehicles { condition = QUOTE(call FUNC(canShow) && !GVAR(RangeCardOpened)); statement = QUOTE(false call FUNC(openRangeCard)); showDisabled = 0; - priority = 0.1; icon = QPATHTOF(UI\RangeCard_Icon.paa); exceptions[] = {"notOnMap"}; class GVAR(openCopy) { @@ -27,7 +26,6 @@ class CfgVehicles { condition = QUOTE(call FUNC(canShowCopy) && !GVAR(RangeCardOpened)); statement = QUOTE(true call FUNC(openRangeCard)); showDisabled = 0; - priority = 0.1; icon = QPATHTOF(UI\RangeCard_Icon.paa); exceptions[] = {"notOnMap"}; }; @@ -36,7 +34,6 @@ class CfgVehicles { condition = QUOTE(call FUNC(canShow) && !GVAR(RangeCardOpened)); statement = QUOTE(GVAR(zeroRangeCopy)=GVAR(zeroRange); GVAR(boreHeightCopy)=GVAR(boreHeight); GVAR(ammoClassCopy)=GVAR(ammoClass); GVAR(magazineClassCopy)=GVAR(magazineClass); GVAR(weaponClassCopy)=GVAR(weaponClass);); showDisabled = 0; - priority = 0.1; icon = QPATHTOF(UI\RangeCard_Icon.paa); exceptions[] = {"notOnMap"}; }; diff --git a/addons/rearm/CfgVehicles.hpp b/addons/rearm/CfgVehicles.hpp index acf7b4d291..c12ee16066 100644 --- a/addons/rearm/CfgVehicles.hpp +++ b/addons/rearm/CfgVehicles.hpp @@ -179,7 +179,6 @@ class CfgVehicles { statement = QUOTE(_this call FUNC(grabAmmo)); exceptions[] = {"isNotInside"}; showDisabled = 0; - priority = 2; icon = QPATHTOF(ui\icon_rearm_interact.paa); }; }; diff --git a/addons/refuel/CfgVehicles.hpp b/addons/refuel/CfgVehicles.hpp index cf4d590df8..efcd1aa3a2 100644 --- a/addons/refuel/CfgVehicles.hpp +++ b/addons/refuel/CfgVehicles.hpp @@ -8,7 +8,6 @@ statement = ""; \ exceptions[] = {INTERACT_EXCEPTIONS}; \ showDisabled = 0; \ - priority = 2; \ icon = QPATHTOF(ui\icon_refuel_interact.paa); \ class GVAR(PickUpNozzle) { \ displayName = CSTRING(TakeNozzle); \ diff --git a/addons/repair/CfgVehicles.hpp b/addons/repair/CfgVehicles.hpp index 74733cb7a0..7f0255d2a5 100644 --- a/addons/repair/CfgVehicles.hpp +++ b/addons/repair/CfgVehicles.hpp @@ -7,7 +7,6 @@ statement = ""; \ runOnHover = 1; \ showDisabled = 0; \ - priority = 2; \ icon = "\A3\ui_f\data\igui\cfg\actions\repair_ca.paa"; \ distance = 4; \ exceptions[] = {"isNotSwimming", "isNotOnLadder"}; \ @@ -408,12 +407,12 @@ class CfgVehicles { class ReammoBox_F; class Land_RepairDepot_01_base_F: ReammoBox_F { // TanksDLC - Repair Depo Thing GVAR(canRepair) = 1; - transportRepair = 0; + transportRepair = 0; }; class Van_02_base_F; class Van_02_service_base_F: Van_02_base_F { // OrangeDLC GVAR(canRepair) = 1; - transportRepair = 0; + transportRepair = 0; }; class Slingload_01_Base_F; diff --git a/addons/respawn/CfgVehicles.hpp b/addons/respawn/CfgVehicles.hpp index 847b32fe84..c5e30a3028 100644 --- a/addons/respawn/CfgVehicles.hpp +++ b/addons/respawn/CfgVehicles.hpp @@ -72,7 +72,6 @@ class CfgVehicles { statement = QUOTE([ARR_2(_player, side group _player)] call FUNC(moveRallypoint)); exceptions[] = {"isNotSwimming"}; showDisabled = 0; - priority = -0.5; }; }; }; @@ -113,7 +112,6 @@ class CfgVehicles { exceptions[] = {"isNotSwimming"}; position = "[-0.05,-0.35,-2.6]"; showDisabled = 1; - priority = 1; }; }; }; @@ -136,7 +134,6 @@ class CfgVehicles { exceptions[] = {"isNotSwimming"}; position = "[-0.05,-0.35,-2.6]"; showDisabled = 1; - priority = 1; }; }; }; @@ -159,7 +156,6 @@ class CfgVehicles { exceptions[] = {"isNotSwimming"}; position = "[-0.05,-0.35,-2.6]"; showDisabled = 1; - priority = 1; }; }; }; @@ -183,7 +179,6 @@ class CfgVehicles { exceptions[] = {"isNotSwimming"}; position = "[-0.05,-0.35,-2.6]"; showDisabled = 1; - priority = 1; }; }; }; @@ -206,7 +201,6 @@ class CfgVehicles { exceptions[] = {"isNotSwimming"}; position = "[-0.05,-0.35,-2.6]"; showDisabled = 1; - priority = 1; }; }; }; @@ -229,7 +223,6 @@ class CfgVehicles { exceptions[] = {"isNotSwimming"}; position = "[-0.05,-0.35,-2.6]"; showDisabled = 1; - priority = 1; }; }; }; diff --git a/addons/sandbag/CfgVehicles.hpp b/addons/sandbag/CfgVehicles.hpp index aebbef5be7..8f4dd85336 100644 --- a/addons/sandbag/CfgVehicles.hpp +++ b/addons/sandbag/CfgVehicles.hpp @@ -12,7 +12,6 @@ class CfgVehicles { statement = QUOTE([ARR_2({_this call FUNC(deploy)},_this)] call CBA_fnc_execNextFrame); exceptions[] = {"isNotSwimming"}; showDisabled = 0; - priority = 4; icon = QPATHTOF(UI\icon_sandbag_ca.paa); }; }; @@ -92,7 +91,6 @@ class CfgVehicles { statement = QUOTE([ARR_2(_player,_target)] call FUNC(pickup)); showDisabled = 0; exceptions[] = {}; - priority = 5; icon = QPATHTOF(UI\icon_sandbag_ca.paa); }; }; diff --git a/addons/scopes/CfgVehicles.hpp b/addons/scopes/CfgVehicles.hpp index b1e76d4401..f3d7126b06 100644 --- a/addons/scopes/CfgVehicles.hpp +++ b/addons/scopes/CfgVehicles.hpp @@ -9,7 +9,6 @@ class CfgVehicles { condition = QUOTE([ACE_player] call FUNC(canAdjustZero)); statement = QUOTE([ACE_player] call FUNC(adjustZero)); showDisabled = 0; - priority = 0.2; //icon = QPATHTOF(UI\...); // TODO exceptions[] = {"notOnMap", "isNotInside", "isNotSwimming", "isNotSitting"}; }; @@ -19,7 +18,6 @@ class CfgVehicles { condition = QUOTE([ACE_player] call FUNC(canResetZero)); statement = QUOTE([ACE_player] call FUNC(resetZero)); showDisabled = 0; - priority = 0.2; //icon = QPATHTOF(UI\...); // TODO exceptions[] = {"notOnMap", "isNotInside", "isNotSwimming", "isNotSitting"}; }; diff --git a/addons/spottingscope/CfgVehicles.hpp b/addons/spottingscope/CfgVehicles.hpp index f360be45c9..d961f0d36b 100644 --- a/addons/spottingscope/CfgVehicles.hpp +++ b/addons/spottingscope/CfgVehicles.hpp @@ -11,7 +11,6 @@ class CfgVehicles { condition = QUOTE([ARR_2(_player,'ACE_SpottingScope')] call EFUNC(common,hasItem)); statement = QUOTE([ARR_2(_player,'ACE_SpottingScope')] call FUNC(place)); showDisabled = 0; - priority = 2; icon = QPATHTOF(UI\w_spottingscope_ca.paa); }; }; @@ -60,7 +59,6 @@ class CfgVehicles { statement = QUOTE([ARR_2(_target,_player)] call FUNC(pickup)); showDisabled = 0; exceptions[] = {}; - priority = 5; icon = QPATHTOF(UI\w_spottingscope_ca.paa); }; }; diff --git a/addons/tacticalladder/CfgVehicles.hpp b/addons/tacticalladder/CfgVehicles.hpp index 591f2c86af..d6cf8324b3 100644 --- a/addons/tacticalladder/CfgVehicles.hpp +++ b/addons/tacticalladder/CfgVehicles.hpp @@ -12,7 +12,6 @@ class CfgVehicles { statement = QUOTE([_player] call FUNC(deployTL)); exceptions[] = {}; showDisabled = 1; - priority = 4; }; }; }; @@ -86,7 +85,6 @@ class CfgVehicles { statement = QUOTE([ARR_2(_player,_target)] call FUNC(pickupTL)); showDisabled = 0; exceptions[] = {}; - priority = 5; }; class ACE_Position { @@ -98,7 +96,6 @@ class CfgVehicles { statement = QUOTE([ARR_2({_this call FUNC(positionTL)},[ARR_2(_player,_target)])] call CBA_fnc_execNextFrame); showDisabled = 0; exceptions[] = {}; - priority = 5; }; }; }; diff --git a/addons/trenches/CfgVehicles.hpp b/addons/trenches/CfgVehicles.hpp index 9c93e555ac..3b13be21a8 100644 --- a/addons/trenches/CfgVehicles.hpp +++ b/addons/trenches/CfgVehicles.hpp @@ -10,13 +10,11 @@ class CBA_Extended_EventHandlers; displayName = CSTRING(ContinueDiggingTrench); \ condition = QUOTE([ARR_2(_target,_player)] call FUNC(canContinueDiggingTrench)); \ statement = QUOTE([ARR_2(_target,_player)] call FUNC(continueDiggingTrench);); \ - priority = -1; \ }; \ class ACE_RemoveTrench { \ displayName = CSTRING(RemoveEnvelope); \ condition = QUOTE([ARR_2(_target,_player)] call FUNC(canRemoveTrench)); \ statement = QUOTE([ARR_2(_target,_player)] call FUNC(removeTrench);); \ - priority = -1; \ }; \ }; \ } @@ -33,7 +31,6 @@ class CfgVehicles { statement = QUOTE([ARR_2({_this call FUNC(placeTrench)},[ARR_2(_this select 0,'ACE_envelope_small')])] call CBA_fnc_execNextFrame); exceptions[] = {}; showDisabled = 0; - priority = 4; //icon = QPATHTOF(UI\icon_sandbag_ca.paa); }; class GVAR(digEnvelopeBig) { @@ -43,7 +40,6 @@ class CfgVehicles { statement = QUOTE([ARR_2({_this call FUNC(placeTrench)},[ARR_2(_this select 0,'ACE_envelope_big')])] call CBA_fnc_execNextFrame); exceptions[] = {}; showDisabled = 0; - priority = 4; //icon = QPATHTOF(UI\icon_sandbag_ca.paa); }; }; diff --git a/addons/tripod/CfgVehicles.hpp b/addons/tripod/CfgVehicles.hpp index 78d1f69fa7..31888ab5dd 100644 --- a/addons/tripod/CfgVehicles.hpp +++ b/addons/tripod/CfgVehicles.hpp @@ -11,7 +11,6 @@ class CfgVehicles { condition = QUOTE([ARR_2(_player,'ACE_Tripod')] call EFUNC(common,hasItem)); statement = QUOTE([ARR_2(_player,'ACE_Tripod')] call FUNC(place)); showDisabled = 0; - priority = 2; icon = QPATHTOF(UI\w_sniper_tripod_ca.paa); }; }; @@ -78,7 +77,6 @@ class CfgVehicles { statement = QUOTE([ARR_2(_player,_target)] call FUNC(pickup)); showDisabled = 0; exceptions[] = {}; - priority = 5; icon = QPATHTOF(UI\w_sniper_tripod_ca.paa); }; @@ -91,7 +89,6 @@ class CfgVehicles { statement = QUOTE([ARR_2({_this call FUNC(adjust)}, [ARR_2(_player,_target)])] call CBA_fnc_execNextFrame); showDisabled = 0; exceptions[] = {}; - priority = 5; icon = QPATHTOF(UI\w_sniper_tripod_ca.paa); }; }; diff --git a/addons/vehiclelock/CfgVehicles.hpp b/addons/vehiclelock/CfgVehicles.hpp index 3038e3f99c..1115928057 100644 --- a/addons/vehiclelock/CfgVehicles.hpp +++ b/addons/vehiclelock/CfgVehicles.hpp @@ -4,21 +4,18 @@ displayName = CSTRING(Action_UnLock); \ condition = QUOTE(([ARR_2(_player, _target)] call FUNC(hasKeyForVehicle)) && {(locked _target) in [ARR_2(2,3)]}); \ statement = QUOTE([ARR_3(QUOTE(QGVAR(setVehicleLock)), [ARR_2(_target,false)], [_target])] call CBA_fnc_targetEvent); \ - priority = 0.3; \ icon = QPATHTOF(UI\key_menuIcon_ca.paa); \ }; \ class ACE_lockVehicle { \ displayName = CSTRING(Action_Lock); \ condition = QUOTE(([ARR_2(_player, _target)] call FUNC(hasKeyForVehicle)) && {(locked _target) in [ARR_2(0,1)]}); \ statement = QUOTE([ARR_3(QUOTE(QGVAR(setVehicleLock)), [ARR_2(_target,true)], [_target])] call CBA_fnc_targetEvent); \ - priority = 0.2; \ icon = QPATHTOF(UI\key_menuIcon_ca.paa); \ }; \ class ACE_lockpickVehicle { \ displayName = CSTRING(Action_Lockpick); \ condition = QUOTE([ARR_3(_player, _target, 'canLockpick')] call FUNC(lockpick)); \ statement = QUOTE([ARR_3(_player, _target, 'startLockpick')] call FUNC(lockpick)); \ - priority = 0.1; \ }; \ }; \ class ACE_Actions { \ @@ -29,7 +26,6 @@ condition = QUOTE(([ARR_2(_player, _target)] call FUNC(hasKeyForVehicle)) && {(locked _target) in [ARR_2(2,3)]}); \ statement = QUOTE([ARR_3(QUOTE(QGVAR(setVehicleLock)), [ARR_2(_target,false)], [_target])] call CBA_fnc_targetEvent); \ exceptions[] = {"isNotSwimming"}; \ - priority = 0.3; \ icon = QPATHTOF(UI\key_menuIcon_ca.paa); \ }; \ class ACE_lockVehicle { \ @@ -38,7 +34,6 @@ condition = QUOTE(([ARR_2(_player, _target)] call FUNC(hasKeyForVehicle)) && {(locked _target) in [ARR_2(0,1)]}); \ statement = QUOTE([ARR_3(QUOTE(QGVAR(setVehicleLock)), [ARR_2(_target,true)], [_target])] call CBA_fnc_targetEvent); \ exceptions[] = {"isNotSwimming"}; \ - priority = 0.2; \ icon = QPATHTOF(UI\key_menuIcon_ca.paa); \ }; \ class ACE_lockpickVehicle { \ @@ -47,7 +42,6 @@ condition = QUOTE([ARR_3(_player, _target, 'canLockpick')] call FUNC(lockpick)); \ statement = QUOTE([ARR_3(_player, _target, 'startLockpick')] call FUNC(lockpick)); \ exceptions[] = {"isNotSwimming"}; \ - priority = 0.1; \ }; \ }; \ }; From 232f986048a0cd400273d6623f94a5dd5241f3bb Mon Sep 17 00:00:00 2001 From: mharis001 <34453221+mharis001@users.noreply.github.com> Date: Wed, 30 May 2018 18:39:28 -0400 Subject: [PATCH 130/235] Pass by reference for BI EHs (#6368) --- addons/captives/functions/fnc_handleLocal.sqf | 4 ++-- addons/captives/functions/fnc_setHandcuffed.sqf | 2 +- addons/captives/functions/fnc_setSurrendered.sqf | 2 +- addons/pylons/XEH_postInit.sqf | 2 +- addons/refuel/XEH_postInit.sqf | 2 +- 5 files changed, 6 insertions(+), 6 deletions(-) diff --git a/addons/captives/functions/fnc_handleLocal.sqf b/addons/captives/functions/fnc_handleLocal.sqf index ee11e74fcb..49ee5f0010 100644 --- a/addons/captives/functions/fnc_handleLocal.sqf +++ b/addons/captives/functions/fnc_handleLocal.sqf @@ -29,7 +29,7 @@ if (_local) then { if (_unit getVariable [QGVAR(handcuffAnimEHID), -1] != -1) exitWith {}; // Otherwise, restart the AnimChanged EH in the new machine - private _animChangedEHID = _unit addEventHandler ["AnimChanged", DFUNC(handleAnimChangedHandcuffed)]; + private _animChangedEHID = _unit addEventHandler ["AnimChanged", {call FUNC(handleAnimChangedHandcuffed)}]; TRACE_2("Adding animChangedEH",_unit,_animChangedEHID); _unit setVariable [QGVAR(handcuffAnimEHID), _animChangedEHID]; }; @@ -40,7 +40,7 @@ if (_local) then { if (_unit getVariable [QGVAR(surrenderAnimEHID), -1] != -1) exitWith {}; // Otherwise, restart the AnimChanged EH in the new machine - private _animChangedEHID = _unit addEventHandler ["AnimChanged", DFUNC(handleAnimChangedSurrendered)]; + private _animChangedEHID = _unit addEventHandler ["AnimChanged", {call FUNC(handleAnimChangedSurrendered)}]; TRACE_2("Adding animChangedEH",_unit,_animChangedEHID); _unit setVariable [QGVAR(surrenderAnimEHID), _animChangedEHID]; }; diff --git a/addons/captives/functions/fnc_setHandcuffed.sqf b/addons/captives/functions/fnc_setHandcuffed.sqf index 9a713af0b4..4f949db60d 100644 --- a/addons/captives/functions/fnc_setHandcuffed.sqf +++ b/addons/captives/functions/fnc_setHandcuffed.sqf @@ -73,7 +73,7 @@ if (_state) then { TRACE_1("removing animChanged EH",_animChangedEHID); _unit removeEventHandler ["AnimChanged", _animChangedEHID]; }; - _animChangedEHID = _unit addEventHandler ["AnimChanged", DFUNC(handleAnimChangedHandcuffed)]; + _animChangedEHID = _unit addEventHandler ["AnimChanged", {call FUNC(handleAnimChangedHandcuffed)}]; TRACE_2("Adding animChangedEH",_unit,_animChangedEHID); _unit setVariable [QGVAR(handcuffAnimEHID), _animChangedEHID]; diff --git a/addons/captives/functions/fnc_setSurrendered.sqf b/addons/captives/functions/fnc_setSurrendered.sqf index a0551d0219..ee54b6b5e7 100644 --- a/addons/captives/functions/fnc_setSurrendered.sqf +++ b/addons/captives/functions/fnc_setSurrendered.sqf @@ -64,7 +64,7 @@ if (_state) then { TRACE_1("removing animChanged EH",_animChangedEHID); _unit removeEventHandler ["AnimChanged", _animChangedEHID]; }; - _animChangedEHID = _unit addEventHandler ["AnimChanged", DFUNC(handleAnimChangedSurrendered)]; + _animChangedEHID = _unit addEventHandler ["AnimChanged", {call FUNC(handleAnimChangedSurrendered)}]; _unit setVariable [QGVAR(surrenderAnimEHID), _animChangedEHID]; }; }, [_unit], 0.01] call CBA_fnc_waitAndExecute; diff --git a/addons/pylons/XEH_postInit.sqf b/addons/pylons/XEH_postInit.sqf index 72a07078d0..0e21dabe69 100644 --- a/addons/pylons/XEH_postInit.sqf +++ b/addons/pylons/XEH_postInit.sqf @@ -50,7 +50,7 @@ GVAR(currentAircraftNamespace) = true call CBA_fnc_createNamespace; publicVariable QGVAR(currentAircraftNamespace); - addMissionEventHandler ["HandleDisconnect", LINKFUNC(handleDisconnect)]; + addMissionEventHandler ["HandleDisconnect", {call FUNC(handleDisconnect)}]; }; GVAR(searchDistanceSqr) = GVAR(searchDistance) ^ 2; diff --git a/addons/refuel/XEH_postInit.sqf b/addons/refuel/XEH_postInit.sqf index 92726bb61e..43933f2cf5 100644 --- a/addons/refuel/XEH_postInit.sqf +++ b/addons/refuel/XEH_postInit.sqf @@ -1,7 +1,7 @@ #include "script_component.hpp" if (isServer) then { - addMissionEventHandler ["HandleDisconnect", LINKFUNC(handleDisconnect)]; + addMissionEventHandler ["HandleDisconnect", {call FUNC(handleDisconnect)}]; }; [QGVAR(initSource), LINKFUNC(initSource)] call CBA_fnc_addEventHandler; From 9aba78b320a356bf700dd1fe2ec2526f856a4860 Mon Sep 17 00:00:00 2001 From: BaerMitUmlaut Date: Thu, 31 May 2018 01:05:55 +0200 Subject: [PATCH 131/235] Fix AF sway factor (#6360) * Fix sway factor, switch to CBA settings in AF * Add movedToSQF --- addons/advanced_fatigue/ACE_Settings.hpp | 41 ++++-------------------- addons/advanced_fatigue/XEH_preInit.sqf | 3 +- addons/advanced_fatigue/initSettings.sqf | 24 +++++++------- addons/advanced_fatigue/stringtable.xml | 14 ++++---- 4 files changed, 27 insertions(+), 55 deletions(-) diff --git a/addons/advanced_fatigue/ACE_Settings.hpp b/addons/advanced_fatigue/ACE_Settings.hpp index 2d46fd5eb3..0590e68efb 100644 --- a/addons/advanced_fatigue/ACE_Settings.hpp +++ b/addons/advanced_fatigue/ACE_Settings.hpp @@ -1,49 +1,20 @@ class ACE_Settings { class GVAR(enabled) { - category = CSTRING(DisplayName); - displayName = CSTRING(Enabled); - description = CSTRING(Enabled_Description); - typeName = "BOOL"; - value = 1; + movedToSQF = 1; }; class GVAR(enableStaminaBar) { - category = CSTRING(DisplayName); - displayName = CSTRING(EnableStaminaBar); - description = CSTRING(EnableStaminaBar_Description); - typeName = "BOOL"; - value = 1; - isClientSettable = 1; + movedToSQF = 1; }; class GVAR(performanceFactor) { - category = CSTRING(DisplayName); - displayName = CSTRING(PerformanceFactor); - description = CSTRING(PerformanceFactor_Description); - typeName = "SCALAR"; - value = 1; - sliderSettings[] = {0, 5, 1, 1}; + movedToSQF = 1; }; class GVAR(recoveryFactor) { - category = CSTRING(DisplayName); - displayName = CSTRING(RecoveryFactor); - description = CSTRING(RecoveryFactor_Description); - typeName = "SCALAR"; - value = 1; - sliderSettings[] = {0, 5, 1, 1}; + movedToSQF = 1; }; class GVAR(loadFactor) { - category = CSTRING(DisplayName); - displayName = CSTRING(LoadFactor); - description = CSTRING(LoadFactor_Description); - typeName = "SCALAR"; - value = 1; - sliderSettings[] = {0, 5, 1, 1}; + movedToSQF = 1; }; class GVAR(terrainGradientFactor) { - category = CSTRING(DisplayName); - displayName = CSTRING(TerrainGradientFactor); - description = CSTRING(TerrainGradientFactor_Description); - typeName = "SCALAR"; - value = 1; - sliderSettings[] = {0, 5, 1, 1}; + movedToSQF = 1; }; }; diff --git a/addons/advanced_fatigue/XEH_preInit.sqf b/addons/advanced_fatigue/XEH_preInit.sqf index 7d682e7db6..1cb60db917 100644 --- a/addons/advanced_fatigue/XEH_preInit.sqf +++ b/addons/advanced_fatigue/XEH_preInit.sqf @@ -5,7 +5,8 @@ ADDON = false; PREP_RECOMPILE_START; #include "XEH_PREP.hpp" PREP_RECOMPILE_END; -//#include "initSettings.sqf" + +#include "initSettings.sqf" GVAR(staminaBarWidth) = 10 * (((safezoneW / safezoneH) min 1.2) / 40); GVAR(dutyList) = [[], []]; diff --git a/addons/advanced_fatigue/initSettings.sqf b/addons/advanced_fatigue/initSettings.sqf index ea8ddb45d6..8f4e5f0c9a 100644 --- a/addons/advanced_fatigue/initSettings.sqf +++ b/addons/advanced_fatigue/initSettings.sqf @@ -2,7 +2,7 @@ QGVAR(enabled), "CHECKBOX", [LSTRING(Enabled), LSTRING(Enabled_Description)], - "ACE3 Advanced Fatigue", + LSTRING(DisplayName), true, true ] call CBA_Settings_fnc_init; @@ -11,7 +11,7 @@ QGVAR(enableStaminaBar), "CHECKBOX", [LSTRING(EnableStaminaBar), LSTRING(EnableStaminaBar_Description)], - "ACE3 Advanced Fatigue", + LSTRING(DisplayName), true, true, { if (!_this) then { @@ -26,8 +26,8 @@ QGVAR(performanceFactor), "SLIDER", [LSTRING(PerformanceFactor), LSTRING(PerformanceFactor_Description)], - "ACE3 Advanced Fatigue", - [0, 2, 1, 1], + LSTRING(DisplayName), + [0, 5, 1, 1], true ] call CBA_Settings_fnc_init; @@ -35,8 +35,8 @@ QGVAR(recoveryFactor), "SLIDER", [LSTRING(RecoveryFactor), LSTRING(RecoveryFactor_Description)], - "ACE3 Advanced Fatigue", - [0, 2, 1, 1], + LSTRING(DisplayName), + [0, 5, 1, 1], true ] call CBA_Settings_fnc_init; @@ -44,8 +44,8 @@ QGVAR(loadFactor), "SLIDER", [LSTRING(LoadFactor), LSTRING(LoadFactor_Description)], - "ACE3 Advanced Fatigue", - [0, 2, 1, 1], + LSTRING(DisplayName), + [0, 5, 1, 1], true ] call CBA_Settings_fnc_init; @@ -53,8 +53,8 @@ QGVAR(terrainGradientFactor), "SLIDER", [LSTRING(TerrainGradientFactor), LSTRING(TerrainGradientFactor_Description)], - "ACE3 Advanced Fatigue", - [0, 2, 1, 1], + LSTRING(DisplayName), + [0, 5, 1, 1], true ] call CBA_Settings_fnc_init; @@ -62,7 +62,7 @@ QGVAR(swayFactor), "SLIDER", [LSTRING(SwayFactor), LSTRING(SwayFactor_Description)], - "ACE3 Advanced Fatigue", - [0, 2, 1, 1], + LSTRING(DisplayName), + [0, 5, 1, 1], true ] call CBA_Settings_fnc_init; diff --git a/addons/advanced_fatigue/stringtable.xml b/addons/advanced_fatigue/stringtable.xml index 2dfbbac817..70fe930ad7 100644 --- a/addons/advanced_fatigue/stringtable.xml +++ b/addons/advanced_fatigue/stringtable.xml @@ -2,13 +2,13 @@ - Advanced Fatigue - Erweiterte Ausdauer - 進階疲勞 - 进阶疲劳 - アドバンスド疲労 - Fatica Avanzata - 고급 피로도 + ACE Advanced Fatigue + ACE Erweiterte Ausdauer + ACE 進階疲勞 + ACE 进阶疲劳 + ACE アドバンスド疲労 + ACE Fatica Avanzata + ACE 고급 피로도 Performance Factor From a5a8c6883109296ea50a4400e178fa506292f167 Mon Sep 17 00:00:00 2001 From: EtoileRei Date: Fri, 1 Jun 2018 00:34:19 +0900 Subject: [PATCH 132/235] Japanese Translation Tweak (#6375) - fixed typo - improved readability - standardized expression --- addons/advanced_ballistics/stringtable.xml | 32 ++++++++++---------- addons/advanced_fatigue/stringtable.xml | 30 ++++++++++--------- addons/advanced_throwing/stringtable.xml | 34 +++++++++++----------- 3 files changed, 49 insertions(+), 47 deletions(-) diff --git a/addons/advanced_ballistics/stringtable.xml b/addons/advanced_ballistics/stringtable.xml index b3fb2015d8..283a315c02 100644 --- a/addons/advanced_ballistics/stringtable.xml +++ b/addons/advanced_ballistics/stringtable.xml @@ -12,7 +12,7 @@ Széladatok mutatása Zobrazit údaje o větru Mostrar Informação do Vento - 風の情報を表示 + 風の情報を表示する 바람의 정보를 표시 顯示風況 显示风况 @@ -28,7 +28,7 @@ Szögmérő mutatása Zobrazit úhloměr Mostrar Transferidor - 分度器を表示 + 分度器を表示する 각도기 표시 顯示量角器 显示量角器 @@ -76,7 +76,7 @@ Engedélyezi a fejlett ballisztikát Включает продвинутую баллистику Abilita Balistica Avanzata - アドバンスド バリスティックスを有効化 + アドバンスド バリスティックスを有効化します。 고급 탄도학을 적용합니다 啟用先進彈道系統 启用先进弹道系统 @@ -84,7 +84,7 @@ Enable Muzzle Velocity Variation Variation der Mündungsgeschwindigkeit aktivieren - 銃口初速の変化 + 銃口初速の変動を有効化する Abilita Variazione Velocità Volata 총구속도 변화적용 啟用槍口初速變化 @@ -94,7 +94,7 @@ Simulates slight variations in muzzle velocity between each shot Simuliert leichte Variationen der Mündungsgeschwindigkeit zwischen jedem Schuss. - 発射毎に銃口初速の僅かな変化をシミュレートします + 発射毎の銃口初速の変動をシミュレートします。 Simula lievi variazioni della velocità della volata tra un colpo e l'altro 각 사격 사이에 총구속도 변화를 시뮬레이션 합니다. 模擬每發子彈的槍口初速都略有不同 @@ -112,7 +112,7 @@ Lőszer-hő szimuláció engedélyezése Симуляция температуры для боеприпасов Abilita simulazione della temperatura delle munizioni - 弾薬温度シミュレーション + 弾薬温度のシミュレーションを有効化する 탄약 온도 구현 적용 啟用彈藥溫度模擬系統 启用弹药温度模拟系统 @@ -128,7 +128,7 @@ A kezdősebesség a lőszer hőmérsékletétől függően változó Начальная скорость пули зависит от температуры La velocità dello sparo varia a seconda della temperatura delle munizioni - 弾薬の温度により銃口初速を変化させます + 弾薬の温度により銃口初速を変動させます。 탄약 온도에 비례해 총구 속도가 달라집니다 子彈初速將隨彈藥溫度而有所變化 子弹初速将随弹药温度而有所变化 @@ -144,7 +144,7 @@ Csőhossz-szimuláció engedélyezése Симуляция длины ствола Abilita simulazione della lunghezza della canna - 銃身長シミュレーション + 銃身長のシミュレーションを有効化する 총열 길이 구현 적용 啟用槍管長度模擬系統 启用枪管长度模拟系统 @@ -160,7 +160,7 @@ A kezdősebesség a cső hosszától függően változó Начальная скорость пули зависит от длины ствола La velocità di sparo varia a seconda della lunghezza della canna - 銃身長により銃口初速を変化させます + 銃身長により銃口初速を変動させます。 총구 속도가 총열에 비례해 달라집니다 子彈初速將隨槍管長度而有所變化 子弹初速将随枪管长度而有所变化 @@ -176,7 +176,7 @@ Nyomkövető-effekt engedélyezése Следы пуль Abilita effetto dei Proiettili Traccianti - 弾丸の痕跡表示 + 弾丸の軌跡エフェクトを有効化する 예광탄 효과 적용 啟用曳光彈效果 启用曳光弹效果 @@ -192,7 +192,7 @@ Engedélyezi a nagy kaliberű lövedékek nyomának vizuális követését (csak nagy teljesítményű optikán keresztül látható) Включает эффект следов пуль для больших калибров (видны только через мощную оптику) Abilita effetto dei proiettili traccianti di alto calibro (visibile solo attraverso ottiche ad alto potenziale) - 大口径の銃弾による弾丸の痕跡表示を有効化します (高倍率スコープを介してでしか見れません) + 大口径弾の軌跡エフェクトを有効化します。 (高性能光学機器を介してのみ見ることができます) 대구경 탄환에 예광탄 효과를 적용합니다(오직 고성능 조준경 사용시에만 보입니다) 啟用曳光彈效果給大口徑子彈 (只有透過高倍率光學瞄鏡才能看到) 启用曳光弹效果给大口径子弹 (只有透过高倍率光学瞄镜才能看到) @@ -208,7 +208,7 @@ Szimuláció intervalluma Интервал симуляции Intervallo Simulazione - シミュレーション間隔 + シミュレーションの間隔 구현 간격 模擬間隔 模拟间隔 @@ -224,7 +224,7 @@ Meghatározza a számítási lépések közötti időintervallumot Определяет временной интервал между вычислениями Definisce l'intervallo tra ogni step di calcolo - 各計算ごとの間隔を定義します + 各計算毎の間隔を定義します。 각 계산 단위의 간격을 정의합니다 定義每個模擬計算之間的時間間隔 定义每个模拟计算之间的时间间隔 @@ -240,7 +240,7 @@ Szimuláció hatóköre Радиус симуляции Raggio Simulazione - シミュレーション適用範囲 + シミュレーションの範囲 구현 범위 模擬半徑 模拟半径 @@ -256,7 +256,7 @@ Meghatározza a játékos körüli hatókört (méterben), ahol a lövedékek fejlett ballisztikát használnak Определяет радиус вокруг игрока (в метрах), в котором продвинутая баллистика применяется к снарядам Definisce il raggio attorno al giocatore (in metri) per cui la Balistica Avanzata è applicata ai proiettili - プレイヤーの周囲にアドバンスド バリスティックスによる弾道を適用させる範囲を半径で定義します (メートル) + アドバンスド バリスティックスの適用半径範囲 (プレイヤー中心、メートル単位) を定義します。 플레이어 주위의 발사체를 고급 탄도학으로 정의하는 범위를 정합니다(미터) 以玩家的半徑距離(公尺)定義先進彈道系統啟用範圍 以玩家的半径距离(公尺)定义先进弹道系统启用范围 @@ -272,7 +272,7 @@ Этот модуль включает симуляцию продвинутой баллистики - при этом на траекторию полета снаряда влияют различные параметры, такие как температура воздуха, атмосферное давление, влажность, гравитация, тип боеприпаса и оружия, из которого произвели выстрел. Este módulo permite la simulación balística avanzada - es decir, la trayectoria de los proyectiles está influenciada por variables como la temperatura del aire, la presión atmosférica, la humedad, la gravedad, el tipo de municiones y el arma desde el que fue disparada. Questo modulo abilita la simulazione della Balistica Avanzata - cioè la traiettoria dei proiettili è influenzata da variabili come la temperatura dell'aria, pressione atmosferica, umidità, gravità, il tipo di munizione e l'arma da cui è sparata - アドバンスド バリスティックスを有効化します。弾道は気温や気圧、湿度、重力、弾薬の種類、発射する武器から影響を受けるようになります。 + アドバンスド バリスティックスのシミュレーションを有効化します。 弾道は気温・気圧・湿度・重力・弾薬の種類・発射する武器などの変化による影響を受けるようになります。 이 모듈은 고급 탄도학을 적용시킵니다 - 이는 발사체의 궤적이 기온, 대기압, 습도, 중력, 탄환의 종류와 어느 무기에서 발사되는지에 따라 영향을 받습니다. 該模塊實現先進的彈道仿真 - 這意味著子彈的軌跡是由空氣溫度、大氣壓力、濕度、重力、彈藥類型以及射擊的武器所影響 该模块实现先进的弹道仿真 - 这意味着子弹的轨迹是由空气温度、大气压力、湿度、重力、弹药类型以及射击的武器所影响 diff --git a/addons/advanced_fatigue/stringtable.xml b/addons/advanced_fatigue/stringtable.xml index 70fe930ad7..9f7d70cf72 100644 --- a/addons/advanced_fatigue/stringtable.xml +++ b/addons/advanced_fatigue/stringtable.xml @@ -6,14 +6,14 @@ ACE Erweiterte Ausdauer ACE 進階疲勞 ACE 进阶疲劳 - ACE アドバンスド疲労 + ACE アドバンスド ファティーグ ACE Fatica Avanzata ACE 고급 피로도 Performance Factor Leistungsfaktor - パフォーマンス要因 + パフォーマンス因数 Współczynnik wydolności 성능 요인 Facteur de performance @@ -24,7 +24,7 @@ Influences the overall performance of all players with no custom factor. Higher means better. Beinflusst die Leistungsfähigkeit aller Spieler ohne eigenen Leistungsfaktor. Ein höherer Wert bedeutet bessere Leistung. - 非カスタム要因をもつ全プレイヤーへ全体的に動作を影響させます。高いほど良い効果があります。 + 個別の因数を設定されていない、全てのプレイヤーのあらゆるパフォーマンスに影響を与えます。 値が高ければ高いほど、良い効果が得られます。 Wpływa na ogólną wydolność organizmu u wszystkich graczy bez ustawionego niestandardowego współczynnika. Więcej znaczy lepiej. 모든 성능이 임의로 설정된 값 없이 영향받습니다. 값이 클수록 더 나은 성능을 발휘합니다 Influence les performances générales de tous les joueurs sans facteurs personalisés. Une valeur plus élevée implique de meilleures performances. @@ -35,7 +35,7 @@ Influences the overall performance of this unit. Higher means better. Beinflusst die Leistungsfähigkeit dieser Einheit. Ein höherer Wert bedeutet bessere Leistung. - ユニットの全体的な動作に影響させます。高いほど良い効果があります。 + このユニットのあらゆるパフォーマンスに影響を与えます。 値が高ければ高いほど、良い効果が得られます。 Wpływa na ogólną wydolność tej jednostki. Więcej znaczy lepiej. 모든 성능이 이 단위로 영향을 받습니다. 값이 클수록 더 나은 성능을 발휘합니다 Influence les performances générales de cette unité. Une valeur plus élevée implique de meilleures performances. @@ -46,7 +46,7 @@ Recovery Factor Erholungsfaktor - 回復要因 + 回復因数 Współczynnik regeneracji 회복 요인 Facteur de récupération @@ -57,7 +57,7 @@ Changes how fast the player recovers when resting. Higher is faster. Ändert, wie schnell ein Spieler Ausdauer regeneriert. Ein höherer Wert bedeutet eine schnellere Regeneration. - 休憩時はプレイヤーが早く回復します。高いほど早くなります。 + プレイヤーが休憩をとる際に、どのくらいの速度でスタミナ回復するかを設定します。 値が高ければ高いほど、早くなります。 Wpływa na czas regeneracji podczas postoju. Więcej znaczy szybciej. 얼마나 빨리 회복하는지를 바꿉니다. 값이 클수록 더 나은 성능을 발휘합니다 Change la vitesse à laquelle les joueurs récupèrent leur endurance lorsqu'ils se reposent. Une valeur plus élevée implique une récupération plus rapide. @@ -68,7 +68,7 @@ Load Factor Gewichtsfaktor - 負荷要因 + 重量因数 Współczynnik masy ekwipunku 부담 요인 Facteur d'encombrement @@ -79,7 +79,7 @@ Increases or decreases how much weight influences the players performance. Zero means equipment weight has no performance influence. Erhöht oder verringert, wie viel Einfluss das Ausrüstungsgewicht auf die Leistung hat. Null heißt, dass es keinen Einfluss hat. - 重量の増減によりプレイヤーの動作へ影響を与えます。装備を持っていない場合、影響はしません。 + 装備重量がプレイヤーのパフォーマンスにもたらす影響を増減させます。 値をゼロに設定した場合、装備重量はパフォーマンスに影響を与えません。 Zmniejsza lub zwiększa wpływ ciężaru ekwipunku na wydolność gracza. Zero oznacza kompletny brak wpływu na wydolność. 플레이어가 무게에 따라 얼마나 영향받는지를 증가시키거나 감소시킵니다. 0의 경우 플레이어가 장비 무게에 영향받지 않습니다. Augmente ou réduit l'influence que le poids à sur les performances des joueurs. Zéro implique que le poids de l'équipement n'a pas d'influence sur les performances. @@ -90,7 +90,7 @@ Terrain Gradient Factor Terrainsteigungsfaktor - 地形の勾配による要因 + 地形勾配因数 Współczynnik terenu 지형 경사도 요인 Facteur d'inclinaison du terrain @@ -101,7 +101,7 @@ Sets how much steep terrain increases stamina loss. Higher means higher stamina loss. Beeinflusst, wie stark Steigungen den Ausdauerverbrauch erhöhen. Ein höherer Wert erhöht den Ausdauerverbrauch. - 地形によって体力の消費量を決定します。高数値ではより体力を消費します。 + 急勾配の地形がどれだけスタミナ消費を増大させるかを設定します。 値が高ければ高いほど、スタミナ消費が大きくなります。 Wpływa na to w jakim stopniu stromy teren wpływa na utratę wytrzymałości. Więcej oznacza szybszą utratę wytrzymałości. 경사도에 따라 얼마나 피로해지는지를 정합니다. 값이 클수록 더 많은 피로를 유발합니다. Configure l'influence de l'inclinaison du terrain sur la perte d'endurance. Une valeur plus élevée implique une perte d'endurance plus importante. @@ -111,14 +111,16 @@ Sway factor + 手ぶれ因数 Influences the amount of weapon sway. Higher means more sway. + 武器を持つ手のぶれ度合いを設定します。 値が高ければ高いほど、手ぶれが強くなります。 Enabled Aktiv - 有効化 + アドバンスド ファティーグを有効化する Włączone 활성화 Activé @@ -129,7 +131,7 @@ Enables/disables Advanced Fatigue. Aktiviert/deaktiviert Advanced Fatigue. - アドバンスド疲労の有効化と無効化 + アドバンスド ファティーグを有効化します。 Włącza/wyłącza zaawansowaną wytrzymałość 고급 피로도 활성화/비활성화 Active/désactive la fatigue avancée. @@ -140,7 +142,7 @@ Show stamina bar Zeige Ausdauerleiste - 体力バーを表示 + スタミナバーを表示する Pokaż pasek wytrzymałości 피로도 막대 Afficher la barre d'endurance @@ -151,7 +153,7 @@ Shows the stamina bar. Zeigt die Ausdauerleiste an. - 体力バーを表示します。 + スタミナバーを表示します。 Pokazuje pasek wytrzymałości. 피로도 막대를 보여줍니다. Affiche la barre d'endurance. diff --git a/addons/advanced_throwing/stringtable.xml b/addons/advanced_throwing/stringtable.xml index 3157e767e5..7b870e010e 100644 --- a/addons/advanced_throwing/stringtable.xml +++ b/addons/advanced_throwing/stringtable.xml @@ -4,7 +4,7 @@ Advanced Throwing Улучшенный бросок гранат - アドバンスド投てき + アドバンスド スローイング Zaawansowane rzucanie Erweitertes Wurfsystem 고급 투척 @@ -16,7 +16,7 @@ Allows changing advanced throwing behaviour. Позволяет настраивать поведение улучшенного броска гранат. - アドバンスド投てきの挙動変更を許可します。 + アドバンスド スローイングの動作挙動を変更します。 Zezwala na zmianę zachowania zaawansowanego trybu rzucania. Erlaubt es, das Verhalten des erweiterten Wurfsystems zu ändern. 고급 투척 행위를 허가합니다 @@ -28,7 +28,7 @@ Enable Advanced Throwing Включить улучшенный бросок - アドバンスド投てき + アドバンスド スローイングを有効化する Aktywuj zaawansowane rzucanie Aktiviere erweitertes Wurfsystem 고급 투척 활성화 @@ -40,7 +40,7 @@ Enables advanced throwing system. Включает систему улучшенного броска. - アドバンスド投てきシステムを有効化 + アドバンスド スローイングを有効化します。 Aktywuje system zaawansowanego rzucania. Aktiviert das erweiterte Wurfsystem. 고급 투척을 활성화 합니다 @@ -52,7 +52,7 @@ Show Throw Arc Показать траекторию броска - 軌道を表示 + 投てき軌道を表示する Pokaż trasę lotu Zeige Wurfbogen 투척 궤적 표시 @@ -64,7 +64,7 @@ Enables visualization of the throw arc (where throwable will fly). Включает визуализацию траектории броска (как полетит граната). - 投てき物の予測軌道の表示を有効化します。 + 投てき軌道 (投てき物がどこに飛ぶか) の表示を有効化します。 Wyświetla wizualizację trasy przelotu granatu. Aktiviert die Visualisierung des Wurfbogens (wohin das Objekt geworfen werden wird). 투척 궤도를 시각화 합니다(투척물이 어디로 갈지) @@ -76,7 +76,7 @@ Show Throwing Mouse Controls Показывать управление мышью - 投てきのマウス操作を表示 + 投てきのマウス操作を表示する Pokaż podpowiedzi sterowania myszą Zeige Maussteuerung beim Werfen 마우스 조작 표시 @@ -88,7 +88,7 @@ Enables visual cues for mouse controls when throwable is prepared. Включает отображение подсказок по управлению мышью, когда граната подготовлена. - 投てき物を投げるとき、マウス操作の説明表示を有効化します。 + 投てき物を構える時、マウス操作の説明表示を有効化します。 Wyświetla podpowiedzi sterowania myszą kiedy obiekt miotany jest w ręku. Aktiviert visuelle Hinweise zur Maussteuerung, wenn ein Objekt zum Werfen vorbereitet wird. 투척물을 준비시 마우스 조작을 시각화해서 보여줍니다 @@ -100,7 +100,7 @@ Enable Throwables Pick Up Включить подбор гранат - 投てき物の拾い上げ + 投てき物の拾い上げを有効化する Zezwól na podnoszenie obiektów miotanych Aktiviere Aufheben von Wurfobjekten 투척물 줍기 활성화 @@ -112,7 +112,7 @@ Enables ability to pick up throwables from the ground. Включает возможность подбирать гранаты с земли. - 地面に落ちている投てき物の拾い上げ動作を有効化します。 + 地面に落ちている投てき物を拾い上げる機能を有効化します。 Umożliwia podnoszenie obiektów miotanych z ziemi. Aktiviert die Möglichkeit, geworfene Objekte wieder vom Boden aufzuheben. 땅에 떨어진 투척물을 주울 수 있게 해줍니다. @@ -124,7 +124,7 @@ Enable Attached Throwables Pick Up Включить подбор прикрепленных гранат - 拾った投てき物の取り付け + 取り付けられた投てき物の拾い上げを有効化する Zezwól na podnoszenie przyczepionych obiektów miotanych Aktiviere erneute Aufnahme befestigter Wurfobjekte 부착 투척물 줍기 활성화 @@ -136,7 +136,7 @@ Enables ability to pick up throwables from attached objects. Включает возможность подбирать гранаты, прикрепленные к объектам. - オブジェクトに取り付けられていた投てき物を拾い上げられるようにします。 + 取り付けられた投てき物を、取り付け先から拾い上げる機能を有効化します。 Umożliwia podnoszenie obiektów miotanych przyczepionych do innych obiektów. Aktiviert die Möglichkeit, befestigte Wurfobjekte erneut aufzunehmen. 부착된 투척물을 주울 수 있게 해줍니다. @@ -160,7 +160,7 @@ Throwable Drop Mode (Hold) Режим броска гранаты (удерживать) - 投てきモード (押しっぱ) + 投てきモード (押している間) Tryb upuszczania ob. miotanego (przytrzymaj) Wurfobjekt Fallmodus (halten) 투척물 떨어뜨리기 모드(꾹눌러서) @@ -172,7 +172,7 @@ Throwable Drop Mode (Toggle) Режим броска гранаты (переключить) - 投てきモード (切替) + 投てきモード (切り替え) Tryb upuszczania ob. miotanego (przełącz) Wurfobjekt Fallmodus (umschalten) 투척물 떨어뜨리기 모드(토글) @@ -184,7 +184,7 @@ Primed Подготовлена - 作動させた + 点火 Odbezpieczony Scharf gemacht 뇌관 작동 @@ -220,7 +220,7 @@ (Scroll) Extend (Скролл) Увеличить - (スクロール) 遠くに + (スクロール) 腕を伸ばす (Kółko m.) przedłuż (Scrollen) Erweitern (마우스 휠) 연장 @@ -232,7 +232,7 @@ (Click) Cook (Клик) Подготовить - (クリック) 起爆 + (クリック) 点火する (Kliknięcie) Odbezpiecz (Klicken) Abkochen (클릭) 예열 From a917d586cbc87d31f8785aad7d82063d42df65cb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ozan=20E=C4=9Fitmen?= Date: Thu, 31 May 2018 18:43:02 +0300 Subject: [PATCH 133/235] Pylons - Separate settings for in-game and zeus (#6365) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Modernize pylons * Revert docs/wiki/featurex/fortify.md * Bring back ACE settings with movedToSQF * 🤦 * Move settings to separate file, Fix postInit logic problems * Tabs -> spaces --- addons/pylons/ACE_Settings.hpp | 39 ++------- addons/pylons/XEH_postInit.sqf | 92 +++++++++++----------- addons/pylons/XEH_preInit.sqf | 2 + addons/pylons/config.cpp | 2 +- addons/pylons/functions/fnc_showDialog.sqf | 14 +++- addons/pylons/initSettings.sqf | 66 ++++++++++++++++ addons/pylons/stringtable.xml | 32 ++++---- 7 files changed, 145 insertions(+), 102 deletions(-) create mode 100644 addons/pylons/initSettings.sqf diff --git a/addons/pylons/ACE_Settings.hpp b/addons/pylons/ACE_Settings.hpp index 242b5c472d..e2d4c40d5c 100644 --- a/addons/pylons/ACE_Settings.hpp +++ b/addons/pylons/ACE_Settings.hpp @@ -1,46 +1,17 @@ class ACE_Settings { - class GVAR(enabled) { - category = CSTRING(Category_Pylons); - displayName = CSTRING(Enabled); - description = CSTRING(Enabled_description); - value = 1; - typeName = "BOOL"; - }; class GVAR(rearmNewPylons) { - category = CSTRING(Category_Pylons); - displayName = CSTRING(RearmNewPylons); - description = CSTRING(RearmNewPylons_description); - value = 0; - typeName = "BOOL"; + movedToSQF = 1; }; class GVAR(searchDistance) { - category = CSTRING(Category_Pylons); - displayName = CSTRING(SearchDistance); - description = CSTRING(SearchDistance_description); - value = 15; - typeName = "SCALAR"; - sliderSettings[] = {0, 50, 15, 1}; + movedToSQF = 1; }; class GVAR(timePerPylon) { - category = CSTRING(Category_Pylons); - displayName = CSTRING(TimePerPylon); - description = CSTRING(TimePerPylon_description); - value = 5; - typeName = "SCALAR"; - sliderSettings[] = {0, 10, 5, 1}; + movedToSQF = 1; }; class GVAR(requireEngineer) { - category = CSTRING(Category_Pylons); - displayName = CSTRING(RequireEngineer); - description = CSTRING(RequireEngineer_description); - value = 0; - typeName = "BOOL"; + movedToSQF = 1; }; class GVAR(requireToolkit) { - category = CSTRING(Category_Pylons); - displayName = CSTRING(RequireToolkit); - description = CSTRING(RequireToolkit_description); - value = 1; - typeName = "BOOL"; + movedToSQF = 1; }; }; diff --git a/addons/pylons/XEH_postInit.sqf b/addons/pylons/XEH_postInit.sqf index 0e21dabe69..6a8f781469 100644 --- a/addons/pylons/XEH_postInit.sqf +++ b/addons/pylons/XEH_postInit.sqf @@ -1,57 +1,53 @@ #include "script_component.hpp" -["ace_settingsInitialized", { - if (!GVAR(enabled)) exitWith {}; +private _filter = "isClass (_x >> 'Components' >> 'TransportPylonsComponent') && {(getNumber (_x >> 'scope')) > 0}"; +GVAR(aircraftWithPylons) = (_filter configClasses (configFile >> "CfgVehicles")) apply {configName _x}; +{ + [_x, "init", { + params ["_aircraft"]; - private _filter = "isClass (_x >> 'Components' >> 'TransportPylonsComponent') && {(getNumber (_x >> 'scope')) > 0}"; - GVAR(aircraftWithPylons) = (_filter configClasses (configFile >> "CfgVehicles")) apply {configName _x}; - { - [_x, "init", { - params ["_aircraft"]; - - private _loadoutAction = [ - QGVAR(loadoutAction), - localize LSTRING(ConfigurePylons), - "", - {[_target] call FUNC(showDialog)}, - { - private _vehicles = nearestObjects [_target, ["Air", "LandVehicle", "Slingload_base_F", "ReammoBox_F"], GVAR(searchDistance) + 10]; - private _filter = ["transportAmmo", QEGVAR(rearm,defaultSupply)] select (["ace_rearm"] call EFUNC(common,isModLoaded)); - private _rearmVehicles = {(getNumber (configFile >> "CfgVehicles" >> typeOf _x >> _filter)) > 0} count _vehicles; - - (_rearmVehicles > 0 && {[ace_player, _target] call FUNC(canConfigurePylons)}) - } - ] call EFUNC(interact_menu,createAction); - - [_aircraft, 0, ["ACE_MainActions"], _loadoutAction] call EFUNC(interact_menu,addActionToObject); - }, false, [], true] call CBA_fnc_addClassEventHandler; - } forEach GVAR(aircraftWithPylons); - - [QGVAR(setPylonLoadOutEvent), { - params ["_aircraft", "_pylonIndex", "_pylon", "_turret", "_weaponToRemove"]; - TRACE_5("setPylonLoadOutEvent",_aircraft,_pylonIndex,_pylon,_turret,_weaponToRemove); - _aircraft setPylonLoadOut [_pylonIndex, _pylon, false, _turret]; - if (_weaponToRemove != "") then { + private _loadoutAction = [ + QGVAR(loadoutAction), + localize LSTRING(ConfigurePylons), + "", + {[_target] call FUNC(showDialog)}, { - if (_aircraft turretLocal _x) then { - TRACE_3("removing",_aircraft,_x,_weaponToRemove); - _aircraft removeWeaponTurret [_weaponToRemove, _x]; - }; - } forEach [[-1], [0]]; - }; - }] call CBA_fnc_addEventHandler; + if (!GVAR(enabledFromAmmoTrucks)) exitWith {false}; - [QGVAR(setAmmoOnPylonEvent), { - params ["_aircraft", "_pylonIndex", "_count"]; - _aircraft setAmmoOnPylon [_pylonIndex, _count]; - }] call CBA_fnc_addEventHandler; + private _vehicles = nearestObjects [_target, ["Air", "LandVehicle", "Slingload_base_F", "ReammoBox_F"], GVAR(searchDistance) + 10]; + private _filter = ["transportAmmo", QEGVAR(rearm,defaultSupply)] select (["ace_rearm"] call EFUNC(common,isModLoaded)); + private _rearmVehicles = {(getNumber (configFile >> "CfgVehicles" >> typeOf _x >> _filter)) > 0} count _vehicles; - if (isServer) then { - GVAR(currentAircraftNamespace) = true call CBA_fnc_createNamespace; - publicVariable QGVAR(currentAircraftNamespace); + (_rearmVehicles > 0 && {[ace_player, _target] call FUNC(canConfigurePylons)}) + } + ] call EFUNC(interact_menu,createAction); - addMissionEventHandler ["HandleDisconnect", {call FUNC(handleDisconnect)}]; + [_aircraft, 0, ["ACE_MainActions"], _loadoutAction] call EFUNC(interact_menu,addActionToObject); + }, false, [], true] call CBA_fnc_addClassEventHandler; +} forEach GVAR(aircraftWithPylons); + +[QGVAR(setPylonLoadOutEvent), { + params ["_aircraft", "_pylonIndex", "_pylon", "_turret", "_weaponToRemove"]; + TRACE_5("setPylonLoadOutEvent",_aircraft,_pylonIndex,_pylon,_turret,_weaponToRemove); + _aircraft setPylonLoadOut [_pylonIndex, _pylon, false, _turret]; + if (_weaponToRemove != "") then { + { + if (_aircraft turretLocal _x) then { + TRACE_3("removing",_aircraft,_x,_weaponToRemove); + _aircraft removeWeaponTurret [_weaponToRemove, _x]; + }; + } forEach [[-1], [0]]; }; - - GVAR(searchDistanceSqr) = GVAR(searchDistance) ^ 2; }] call CBA_fnc_addEventHandler; + +[QGVAR(setAmmoOnPylonEvent), { + params ["_aircraft", "_pylonIndex", "_count"]; + _aircraft setAmmoOnPylon [_pylonIndex, _count]; +}] call CBA_fnc_addEventHandler; + +if (isServer) then { + GVAR(currentAircraftNamespace) = true call CBA_fnc_createNamespace; + publicVariable QGVAR(currentAircraftNamespace); + + addMissionEventHandler ["HandleDisconnect", {call FUNC(handleDisconnect)}]; +}; diff --git a/addons/pylons/XEH_preInit.sqf b/addons/pylons/XEH_preInit.sqf index b47cf6628d..9361d05015 100644 --- a/addons/pylons/XEH_preInit.sqf +++ b/addons/pylons/XEH_preInit.sqf @@ -6,4 +6,6 @@ PREP_RECOMPILE_START; #include "XEH_PREP.hpp" PREP_RECOMPILE_END; +#include "initSettings.sqf" + ADDON = true; diff --git a/addons/pylons/config.cpp b/addons/pylons/config.cpp index fc7159e08b..011167fd22 100644 --- a/addons/pylons/config.cpp +++ b/addons/pylons/config.cpp @@ -6,7 +6,7 @@ class CfgPatches { units[] = {}; weapons[] = {}; requiredVersion = REQUIRED_VERSION; - requiredAddons[] = {"ace_interact_menu"}; + requiredAddons[] = {"ace_interact_menu", "ace_zeus"}; author = ECSTRING(common,ACETeam); authors[] = {"654wak654"}; url = ECSTRING(main,URL); diff --git a/addons/pylons/functions/fnc_showDialog.sqf b/addons/pylons/functions/fnc_showDialog.sqf index 5be18d20e8..c7836c07b1 100644 --- a/addons/pylons/functions/fnc_showDialog.sqf +++ b/addons/pylons/functions/fnc_showDialog.sqf @@ -18,7 +18,15 @@ params ["_aircraft", ["_isCurator", false]]; -if (!GVAR(enabled) || {!(typeOf _aircraft in GVAR(aircraftWithPylons))}) exitWith {}; +if !(typeOf _aircraft in GVAR(aircraftWithPylons)) exitWith { + if (_isCurator) then { + [LSTRING(AircraftDoesntHavePylons)] call EFUNC(zeus,showMessage); + }; +}; + +if (_isCurator && {!GVAR(enabledForZeus)}) exitWith { + [LSTRING(ConfigurePylonsDisabledForZeus)] call EFUNC(zeus,showMessage); +}; private _currentUser = _aircraft getVariable [QGVAR(currentUser), objNull]; if (!isNull _currentUser) exitWith { @@ -75,10 +83,10 @@ GVAR(comboBoxes) = []; private _mags = _aircraft getCompatiblePylonMagazines (_forEachIndex + 1); private _userWhitelist = _aircraft getVariable [QGVAR(magazineWhitelist), _mags]; private _userBlacklist = _aircraft getVariable [QGVAR(magazineBlacklist), []]; - + _mags = _mags arrayIntersect _userWhitelist; _mags = _mags - _userBlacklist; - + private _index = 0; { _combo lbAdd getText (configFile >> "CfgMagazines" >> _x >> "displayName"); diff --git a/addons/pylons/initSettings.sqf b/addons/pylons/initSettings.sqf new file mode 100644 index 0000000000..57a2a79efb --- /dev/null +++ b/addons/pylons/initSettings.sqf @@ -0,0 +1,66 @@ +[ + QGVAR(enabledFromAmmoTrucks), + "CHECKBOX", + [LSTRING(EnabledFromAmmoTrucks), LSTRING(EnabledFromAmmoTrucks_description)], + LSTRING(Category_Pylons), + [true], + true +] call CBA_Settings_fnc_init; + +[ + QGVAR(enabledForZeus), + "CHECKBOX", + [LSTRING(EnabledForZeus), LSTRING(EnabledForZeus_description)], + LSTRING(Category_Pylons), + [true], + true +] call CBA_Settings_fnc_init; + +[ + QGVAR(rearmNewPylons), + "CHECKBOX", + [LSTRING(RearmNewPylons), LSTRING(RearmNewPylons_description)], + LSTRING(Category_Pylons), + [false], + true +] call CBA_Settings_fnc_init; + +[ + QGVAR(requireEngineer), + "CHECKBOX", + [LSTRING(RequireEngineer), LSTRING(RequireEngineer_description)], + LSTRING(Category_Pylons), + [false], + true +] call CBA_Settings_fnc_init; + +[ + QGVAR(requireToolkit), + "CHECKBOX", + [LSTRING(RequireToolkit), LSTRING(RequireToolkit_description)], + LSTRING(Category_Pylons), + [true], + true +] call CBA_Settings_fnc_init; + +[ + QGVAR(searchDistance), + "SLIDER", + [LSTRING(SearchDistance), LSTRING(SearchDistance_description)], + LSTRING(Category_Pylons), + [5, 50, 15, 0], + true, + { + params ["_searchDistance"]; + GVAR(searchDistanceSqr) = _searchDistance ^ 2; + } +] call CBA_Settings_fnc_init; + +[ + QGVAR(timePerPylon), + "SLIDER", + [LSTRING(TimePerPylon), LSTRING(TimePerPylon_description)], + LSTRING(Category_Pylons), + [1, 10, 5, 0], + true +] call CBA_Settings_fnc_init; diff --git a/addons/pylons/stringtable.xml b/addons/pylons/stringtable.xml index e127392293..3050cb5f92 100644 --- a/addons/pylons/stringtable.xml +++ b/addons/pylons/stringtable.xml @@ -91,23 +91,23 @@ 車両が遠すぎます Fahrzeug zu weit entfernt - - Enable Pylons Menu - パイロン メニューを有効化 - Abilita Menu Piloni - 啟用派龍架選單 - 启用派龙架选单 - 파일런 메뉴 활성 - Aktiviere das Menü für Außenlaststationen. + + Enable Pylons Menu for Zeus - - Enable pylon configuration menu for aircraft. - 航空機へのパイロン設定メニューを有効化します。 - Abilita il menù di configurazione piloni per aereo. - 啟用後可透過派龍架選單來定義飛機的武裝配置。 - 启用后可透过派龙架选单来定义飞机的武装配置。 - 항공기의 파일런 설정 메뉴를 활성합니다. - Aktiviert die Konfiguration der Außenlaststationen. für Fluggeräte. + + Enables use of the zeus module. + + + Enable Pylons Menu from Ammo Trucks + + + Enables use of pylons menu from ammo trucks. + + + This aircraft doesn't have pylons + + + Configure pylons module is disabled for zeus Rearm New Pylons From b1c969c89d353d1fac1e1f0f7fceb73aa763ec90 Mon Sep 17 00:00:00 2001 From: ace3mod Date: Thu, 31 May 2018 17:44:13 +0200 Subject: [PATCH 134/235] [Docs] Update component dependencies Automatically committed through Travis CI. [ci skip] --- docs/_includes/dependencies_list.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/_includes/dependencies_list.md b/docs/_includes/dependencies_list.md index 86c1ae1bb1..40abe57472 100644 --- a/docs/_includes/dependencies_list.md +++ b/docs/_includes/dependencies_list.md @@ -307,7 +307,7 @@ {% endif %} {% if include.component == "pylons" %} -`ace_interact_menu` +`ace_interact_menu`, `ace_zeus` {% endif %} {% if include.component == "quickmount" %} From ac3642d074ecad61114affdf34d23722210c5414 Mon Sep 17 00:00:00 2001 From: mharis001 <34453221+mharis001@users.noreply.github.com> Date: Thu, 31 May 2018 11:49:38 -0400 Subject: [PATCH 135/235] Attach - Optimize creating children actions (#6345) * Optimize attach get children actions * Store CfgMagazines and CfgWeapons config lookups --- addons/attach/CfgVehicles.hpp | 4 +- addons/attach/XEH_PREP.hpp | 3 +- .../functions/fnc_getChildrenActions.sqf | 48 +++++++++++++++++ .../fnc_getChildrenAttachActions.sqf | 52 ------------------- 4 files changed, 51 insertions(+), 56 deletions(-) create mode 100644 addons/attach/functions/fnc_getChildrenActions.sqf delete mode 100644 addons/attach/functions/fnc_getChildrenAttachActions.sqf diff --git a/addons/attach/CfgVehicles.hpp b/addons/attach/CfgVehicles.hpp index 9ae9dae7a2..744a0db2ad 100644 --- a/addons/attach/CfgVehicles.hpp +++ b/addons/attach/CfgVehicles.hpp @@ -5,7 +5,7 @@ class GVAR(AttachVehicle) { \ displayName = CSTRING(AttachDetach); \ condition = QUOTE(_this call FUNC(canAttach)); \ - insertChildren = QUOTE(_this call FUNC(getChildrenAttachActions)); \ + insertChildren = QUOTE(_this call FUNC(getChildrenActions)); \ exceptions[] = {"isNotSwimming"}; \ showDisabled = 0; \ icon = QPATHTOF(UI\attach_ca.paa); \ @@ -52,7 +52,7 @@ class CfgVehicles { class GVAR(Attach) { displayName = CSTRING(AttachDetach); condition = QUOTE(_this call FUNC(canAttach)); - insertChildren = QUOTE(_this call FUNC(getChildrenAttachActions)); + insertChildren = QUOTE(_this call FUNC(getChildrenActions)); exceptions[] = {"isNotDragging", "isNotSwimming"}; showDisabled = 0; icon = QPATHTOF(UI\attach_ca.paa); diff --git a/addons/attach/XEH_PREP.hpp b/addons/attach/XEH_PREP.hpp index 5dedc2254e..85915b4f45 100644 --- a/addons/attach/XEH_PREP.hpp +++ b/addons/attach/XEH_PREP.hpp @@ -1,9 +1,8 @@ - PREP(attach); PREP(canAttach); PREP(canDetach); PREP(detach); -PREP(getChildrenAttachActions); +PREP(getChildrenActions); PREP(handleGetIn); PREP(handleGetOut); PREP(handleKilled); diff --git a/addons/attach/functions/fnc_getChildrenActions.sqf b/addons/attach/functions/fnc_getChildrenActions.sqf new file mode 100644 index 0000000000..050eec4021 --- /dev/null +++ b/addons/attach/functions/fnc_getChildrenActions.sqf @@ -0,0 +1,48 @@ +/* + * Author: Garth de Wet (LH), PabstMirror, mharis001 + * Returns children actions for attachable items. + * + * Arguments: + * 0: Target + * 1: Player + * + * Return Value: + * Actions + * + * Example: + * [_target, _player] call ace_attach_fnc_getChildrenActions + * + * Public: No + */ +#include "script_component.hpp" + +params ["_target", "_player"]; +TRACE_2("params",_target,_player); + +private _cfgMagazines = configFile >> "CfgMagazines"; +private _cfgWeapons = configFile >> "CfgWeapons"; + +private _actions = []; + +private _magazines = magazines _player; +{ + private _config = _cfgMagazines >> _x; + if (getText (_config >> "ACE_Attachable") != "") then { + private _displayName = getText (_config >> "displayName"); + private _picture = getText (_config >> "picture"); + private _action = [_x, _displayName, _picture, {[{_this call FUNC(attach)}, _this] call CBA_fnc_execNextFrame}, {true}, {}, _x] call EFUNC(interact_menu,createAction); + _actions pushBack [_action, [], _target]; + }; +} forEach (_magazines arrayIntersect _magazines); + +{ + private _config = _cfgWeapons >> _x; + if (getText (_config >> "ACE_Attachable") != "") then { + private _displayName = getText (_config >> "displayName"); + private _picture = getText (_config >> "picture"); + private _action = [_x, _displayName, _picture, {[{_this call FUNC(attach)}, _this] call CBA_fnc_execNextFrame}, {true}, {}, _x] call EFUNC(interact_menu,createAction); + _actions pushBack [_action, [], _target]; + }; +} forEach ([_player, false] call CBA_fnc_uniqueUnitItems); + +_actions diff --git a/addons/attach/functions/fnc_getChildrenAttachActions.sqf b/addons/attach/functions/fnc_getChildrenAttachActions.sqf deleted file mode 100644 index c9bec90aac..0000000000 --- a/addons/attach/functions/fnc_getChildrenAttachActions.sqf +++ /dev/null @@ -1,52 +0,0 @@ -/* - * Author: Garth de Wet (LH), PabstMirror - * Show the ammo counts for a static weapon. - * Called from "insertChildren" on interact_menu - * - * Arguments: - * 0: Target - * 1: Player - * - * Return Value: - * ChildActiosn - * - * Example: - * [player, player] call ace_attach_fnc_getChildrenAttachActions - * - * Public: No - */ -#include "script_component.hpp" - -params ["_target","_player"]; -TRACE_2("params",_target,_player); - -private _listed = []; -private _actions = []; - -{ - if !(_x in _listed) then { - _listed pushBack _x; - private _item = ConfigFile >> "CfgMagazines" >> _x; - if (getText (_item >> "ACE_Attachable") != "") then { - private _displayName = getText(_item >> "displayName"); - private _picture = getText(_item >> "picture"); - private _action = [_x, _displayName, _picture, {[{_this call FUNC(attach)}, _this] call CBA_fnc_execNextFrame}, {true}, {}, [_x]] call EFUNC(interact_menu,createAction); - _actions pushBack [_action, [], _target]; - }; - }; -} forEach (magazines _player); - -{ - if !(_x in _listed) then { - _listed pushBack _x; - private _item = ConfigFile >> "CfgWeapons" >> _x; - if (getText (_item >> "ACE_Attachable") != "") then { - private _displayName = getText(_item >> "displayName"); - private _picture = getText(_item >> "picture"); - private _action = [_x, _displayName, _picture, {[{_this call FUNC(attach)}, _this] call CBA_fnc_execNextFrame}, {true}, {}, [_x]] call EFUNC(interact_menu,createAction); - _actions pushBack [_action, [], _target]; - }; - }; -} forEach (items _player); - -_actions From 3d31b6395c97cb3a81f8cae145418a02d1a2c245 Mon Sep 17 00:00:00 2001 From: mharis001 <34453221+mharis001@users.noreply.github.com> Date: Thu, 31 May 2018 11:57:46 -0400 Subject: [PATCH 136/235] Interaction Menu - Ability to modify icon color (#6290) * Add ability to modify icon color * Add config support for icon color --- .../interact_menu/functions/fnc_compileMenu.sqf | 6 +++++- .../functions/fnc_compileMenuSelfAction.sqf | 6 +++++- .../functions/fnc_compileMenuZeus.sqf | 6 +++++- .../functions/fnc_createAction.sqf | 2 +- .../interact_menu/functions/fnc_renderIcon.sqf | 17 +++++++++-------- 5 files changed, 25 insertions(+), 12 deletions(-) diff --git a/addons/interact_menu/functions/fnc_compileMenu.sqf b/addons/interact_menu/functions/fnc_compileMenu.sqf index 58e13ee481..816d06ef72 100644 --- a/addons/interact_menu/functions/fnc_compileMenu.sqf +++ b/addons/interact_menu/functions/fnc_compileMenu.sqf @@ -37,7 +37,11 @@ private _recurseFnc = { private _distance = _parentDistance; if (isNumber (_entryCfg >> "distance")) then {_distance = getNumber (_entryCfg >> "distance");}; // if (_distance < _parentDistance) then {WARNING_3("[%1] distance %2 less than parent %3", configName _entryCfg, _distance, _parentDistance);}; - private _icon = getText (_entryCfg >> "icon"); + private _icon = if (isArray (_entryCfg >> "icon")) then { + getArray (_entryCfg >> "icon"); + } else { + [getText (_entryCfg >> "icon"), "#FFFFFF"]; + }; private _statement = compile (getText (_entryCfg >> "statement")); // If the position entry is present, compile it diff --git a/addons/interact_menu/functions/fnc_compileMenuSelfAction.sqf b/addons/interact_menu/functions/fnc_compileMenuSelfAction.sqf index b4d969667b..54f5867e0d 100644 --- a/addons/interact_menu/functions/fnc_compileMenuSelfAction.sqf +++ b/addons/interact_menu/functions/fnc_compileMenuSelfAction.sqf @@ -37,7 +37,11 @@ private _recurseFnc = { if(isClass _entryCfg) then { private _displayName = getText (_entryCfg >> "displayName"); - private _icon = getText (_entryCfg >> "icon"); + private _icon = if (isArray (_entryCfg >> "icon")) then { + getArray (_entryCfg >> "icon"); + } else { + [getText (_entryCfg >> "icon"), "#FFFFFF"]; + }; private _statement = compile (getText (_entryCfg >> "statement")); private _condition = getText (_entryCfg >> "condition"); diff --git a/addons/interact_menu/functions/fnc_compileMenuZeus.sqf b/addons/interact_menu/functions/fnc_compileMenuZeus.sqf index a5987d411f..b2a95c510e 100644 --- a/addons/interact_menu/functions/fnc_compileMenuZeus.sqf +++ b/addons/interact_menu/functions/fnc_compileMenuZeus.sqf @@ -27,7 +27,11 @@ private _recurseFnc = { if(isClass _entryCfg) then { private _displayName = getText (_entryCfg >> "displayName"); - private _icon = getText (_entryCfg >> "icon"); + private _icon = if (isArray (_entryCfg >> "icon")) then { + getArray (_entryCfg >> "icon"); + } else { + [getText (_entryCfg >> "icon"), "#FFFFFF"]; + }; private _statement = compile (getText (_entryCfg >> "statement")); private _condition = getText (_entryCfg >> "condition"); diff --git a/addons/interact_menu/functions/fnc_createAction.sqf b/addons/interact_menu/functions/fnc_createAction.sqf index 27d6d5bc3d..5129482771 100644 --- a/addons/interact_menu/functions/fnc_createAction.sqf +++ b/addons/interact_menu/functions/fnc_createAction.sqf @@ -6,7 +6,7 @@ * Arguments: * 0: Action name * 1: Name of the action shown in the menu - * 2: Icon + * 2: Icon file path or Array of icon file path and hex color ("" for default icon) * 3: Statement * 4: Condition * 5: Insert children code (Optional) diff --git a/addons/interact_menu/functions/fnc_renderIcon.sqf b/addons/interact_menu/functions/fnc_renderIcon.sqf index 4d9892ed2c..6c97f96693 100644 --- a/addons/interact_menu/functions/fnc_renderIcon.sqf +++ b/addons/interact_menu/functions/fnc_renderIcon.sqf @@ -1,10 +1,10 @@ /* - * Author: NouberNou and esteldunedain - * Render a single interaction icon + * Author: NouberNou, esteldunedain, mharis001 + * Render a single interaction icon. * * Arguments: * 0: Text - * 1: Icon + * 1: Icon file path or Array of icon file path and hex color * 2: 2d position * 3: Text Settings * @@ -12,7 +12,7 @@ * None * * Example: - * ["text", "icon", [5, 6], "text"] call ACE_interact_menu_fnc_renderIcon + * ["text", "icon", [5, 6], "text"] call ace_interact_menu_fnc_renderIcon * * Public: No */ @@ -33,14 +33,15 @@ if(GVAR(iconCount) > (count GVAR(iconCtrls))-1) then { }; private _ctrl = GVAR(iconCtrls) select GVAR(iconCount); -if(_icon == "") then { - _icon = DEFAULT_ICON; +_icon params [["_iconFile", "", [""]], ["_iconColor", "#FFFFFF", [""]]]; +if (_iconFile isEqualTo "") then { + _iconFile = DEFAULT_ICON; }; _text = if (GVAR(UseListMenu)) then { - format ["%3", _icon, _textSettings, _text] + format ["%4", _iconFile, _iconColor, _textSettings, _text] } else { - format ["
%3", _icon, _textSettings, "ace_break_line" callExtension _text]; + format ["
%4", _iconFile, _iconColor, _textSettings, "ace_break_line" callExtension _text]; }; [_ctrl, GVAR(iconCount), _text] call FUNC(ctrlSetParsedTextCached); From 7781c721a80913f5e71929d06896c9e0fa41c210 Mon Sep 17 00:00:00 2001 From: BaerMitUmlaut Date: Thu, 31 May 2018 18:07:31 +0200 Subject: [PATCH 137/235] Fix NVG adjustable brightness (#6291) Nightvision - Fix adjustable brightness --- .../functions/fnc_changeNVGBrightness.sqf | 19 ++++++++++--------- addons/nightvision/functions/fnc_pfeh.sqf | 7 ++++--- addons/nightvision/script_component.hpp | 4 ++-- 3 files changed, 16 insertions(+), 14 deletions(-) diff --git a/addons/nightvision/functions/fnc_changeNVGBrightness.sqf b/addons/nightvision/functions/fnc_changeNVGBrightness.sqf index b6ea640564..8bc6521ebc 100644 --- a/addons/nightvision/functions/fnc_changeNVGBrightness.sqf +++ b/addons/nightvision/functions/fnc_changeNVGBrightness.sqf @@ -19,22 +19,23 @@ params ["_player", "_changeInBrightness"]; TRACE_2("changeNVGBrightness",_player,_changeInBrightness); -private _areEffectsDisabled = GVAR(effectScaling) == 0; -private _brightness = _player getVariable [QGVAR(NVGBrightness), [0, -3] select _areEffectsDisabled]; +private _effectsEnabled = GVAR(effectScaling) != 0; +private _defaultBrightness = [-3, 0] select _effectsEnabled; +private _brightness = _player getVariable [QGVAR(NVGBrightness), _defaultBrightness]; _brightness = ((_brightness + _changeInBrightness) min 0) max -6; - _player setVariable [QGVAR(NVGBrightness), _brightness, false]; -[format [(localize LSTRING(NVGBrightness)), _brightness]] call EFUNC(common,displayTextStructured); +// Display default setting as 0 +[format [LLSTRING(NVGBrightness), _brightness - _defaultBrightness]] call EFUNC(common,displayTextStructured); playSound "ACE_Sound_Click"; -// handle only brightness if effects are disabled -if (_areEffectsDisabled) exitWith { - // here we take (-6; 0) _brightness range and alter it to (0.4; 1.6) - GVAR(ppEffectNVGBrightness) ppEffectAdjust [1, (_brightness+3)/5 + 1, 0, [0, 0, 0, 0], [0, 0, 0, 1], [0, 0, 0, 1]]; +// Handle brightness only if effects are disabled +if (!_effectsEnabled) exitWith { + _brightness = linearConversion [-6, 0, _brightness, 0.4, 1.6, true]; + GVAR(ppEffectNVGBrightness) ppEffectAdjust [1, _brightness, 0, [0, 0, 0, 0], [0, 0, 0, 1], [0, 0, 0, 1]]; GVAR(ppEffectNVGBrightness) ppEffectCommit 0; }; -// Trigger full ppEffects update next time run in the PFEH: +// Trigger full ppEffects update next time run in the PFEH GVAR(nextEffectsUpdate) = -1; diff --git a/addons/nightvision/functions/fnc_pfeh.sqf b/addons/nightvision/functions/fnc_pfeh.sqf index 5c8e378c4d..0784b4f88a 100644 --- a/addons/nightvision/functions/fnc_pfeh.sqf +++ b/addons/nightvision/functions/fnc_pfeh.sqf @@ -80,9 +80,6 @@ if (CBA_missionTime < GVAR(nextEffectsUpdate)) then { private _grainIntensityFinal = _effectMod * linearConversion [1, 0, _effectiveLight, ST_NVG_NOISEINTENSITY_MIN, ST_NVG_NOISEINTENSITY_MAX, true]; private _noiseSharpnessFinal = linearConversion [1, 0, _effectiveLight, ST_NVG_NOISESHARPNESS_MIN, ST_NVG_NOISESHARPNESS_MAX, true]; - private _playerBrightSetting = ACE_player getVariable [QGVAR(NVGBrightness), 0]; - _brightFinal = _brightFinal + (_playerBrightSetting / 20); - private _fogApply = linearConversion [0, 1, _effectiveLight, ST_NVG_MAXFOG, ST_NVG_MINFOG, true]; // Modify blur if looking down scope @@ -97,6 +94,10 @@ if (CBA_missionTime < GVAR(nextEffectsUpdate)) then { _brightFinal = linearConversion [0, 1, GVAR(effectScaling), 1, _brightFinal]; _contrastFinal = linearConversion [0, 1, GVAR(effectScaling), 1, _contrastFinal]; + // Add adjusted NVG brightness + private _playerBrightSetting = ACE_player getVariable [QGVAR(NVGBrightness), 0]; + _brightFinal = _brightFinal + (_playerBrightSetting / 20); + // Scale grain effects based on ace_nightvision_noiseScaling setting _grainIntensityFinal = _grainIntensityFinal * GVAR(noiseScaling); _noiseSharpnessFinal = linearConversion [0, 1, GVAR(noiseScaling), 2.5, _noiseSharpnessFinal]; diff --git a/addons/nightvision/script_component.hpp b/addons/nightvision/script_component.hpp index 0fd46d1fa3..2f431c5407 100644 --- a/addons/nightvision/script_component.hpp +++ b/addons/nightvision/script_component.hpp @@ -26,7 +26,7 @@ #define ST_NVG_CAMERA_BLUR_SIGHTS_RIFLE 6 #define ST_NVG_CAMERA_BLUR_SIGHTS_PISTOL 2 -#define ST_NVG_MINFOG 0.2 +#define ST_NVG_MINFOG 0.2 #define ST_NVG_MAXFOG 0.3 #define ST_NVG_GRAIN_MIN 2.25 @@ -45,4 +45,4 @@ #define ST_NVG_NOISEINTENSITY_MAX 0.55 #define ST_NVG_NOISESHARPNESS_MIN 1.2 -#define ST_NVG_NOISESHARPNESS_MAX 1 +#define ST_NVG_NOISESHARPNESS_MAX 1 From 0db28f89b7f4d9aa10fcacbb4c77be8058bfda15 Mon Sep 17 00:00:00 2001 From: Tim Beswick Date: Thu, 31 May 2018 23:57:40 +0100 Subject: [PATCH 138/235] Hellfire submunition (#6299) Hellfire - Update to use 1.82 submunition --- addons/frag/CfgAmmo.hpp | 20 ++++++++++---------- addons/hellfire/CfgAmmo.hpp | 10 ++++------ 2 files changed, 14 insertions(+), 16 deletions(-) diff --git a/addons/frag/CfgAmmo.hpp b/addons/frag/CfgAmmo.hpp index e8ba51a451..00d2d62ad8 100644 --- a/addons/frag/CfgAmmo.hpp +++ b/addons/frag/CfgAmmo.hpp @@ -134,16 +134,6 @@ class CfgAmmo { GVAR(gurney_c) = 2700; GVAR(gurney_k) = 1/2; }; - class ACE_Hellfire_AGM114K: M_PG_AT { - // Source: http://www.designation-systems.net/dusrm/m-114.html - GVAR(enabled) = 1; - - GVAR(classes)[] = {QGVAR(medium), QGVAR(medium_HD)}; - GVAR(metal) = 8000; - GVAR(charge) = 2400; - GVAR(gurney_c) = 2700; - GVAR(gurney_k) = 1/2; - }; class RocketBase; class R_80mm_HE: RocketBase { GVAR(skip) = 1; @@ -174,6 +164,16 @@ class CfgAmmo { GVAR(gurney_c) = 2700; GVAR(gurney_k) = 1/2; }; + class ACE_Hellfire_AGM114K: M_Scalpel_AT { + // Source: http://www.designation-systems.net/dusrm/m-114.html + GVAR(enabled) = 1; + + GVAR(classes)[] = {QGVAR(medium), QGVAR(medium_HD)}; + GVAR(metal) = 8000; + GVAR(charge) = 2400; + GVAR(gurney_c) = 2700; + GVAR(gurney_k) = 1/2; + }; class M_Air_AA: MissileBase { GVAR(skip) = 1; }; diff --git a/addons/hellfire/CfgAmmo.hpp b/addons/hellfire/CfgAmmo.hpp index 234d9edeeb..a5d7214292 100644 --- a/addons/hellfire/CfgAmmo.hpp +++ b/addons/hellfire/CfgAmmo.hpp @@ -1,7 +1,7 @@ class CfgAmmo { - class M_PG_AT; + class M_Scalpel_AT; - class ACE_Hellfire_AGM114K: M_PG_AT { + class ACE_Hellfire_AGM114K: M_Scalpel_AT { displayName = "AGM-114K"; displayNameShort = "AGM-114K"; description = "AGM-114K"; @@ -10,9 +10,6 @@ class CfgAmmo { model = "\A3\Weapons_F\Ammo\Missile_AT_03_fly_F"; proxyShape = "\A3\Weapons_F\Ammo\Missile_AT_03_F"; - hit = 1400; - indirectHit = 71; - indirectHitRange = 4.5; effectsMissile = "missile2"; irLock = 0; @@ -47,7 +44,7 @@ class CfgAmmo { seekerAccuracy = 1; // seeker accuracy multiplier seekerMinRange = 1; - seekerMaxRange = 5000; // Range from the missile which the seeker can visually search + seekerMaxRange = 8000; // Range from the missile which the seeker can visually search // Attack profile type selection defaultAttackProfile = "hellfire"; @@ -62,6 +59,7 @@ class CfgAmmo { hit = 200; indirectHit = 200; indirectHitRange = 12; + submunitionAmmo = ""; explosionEffects = "BombExplosion"; class ace_missileguidance: ace_missileguidance { enabled = 1; // Missile Guidance must be explicitly enabled From 9618c2de95020a05e80b24f621c41e040efed459 Mon Sep 17 00:00:00 2001 From: Josuan Albin Date: Fri, 1 Jun 2018 01:00:29 +0200 Subject: [PATCH 139/235] Various ACE Arsenal additions and fixes (#6347) Arsenal - Various additions and fixes --- addons/arsenal/ACE_Arsenal_Stats.hpp | 4 +- addons/arsenal/XEH_PREP.hpp | 1 + .../arsenal/functions/fnc_fillLeftPanel.sqf | 6 + .../functions/fnc_fillLoadoutsList.sqf | 8 + .../arsenal/functions/fnc_fillRightPanel.sqf | 10 +- .../functions/fnc_loadoutsChangeTab.sqf | 2 + .../arsenal/functions/fnc_onLoadoutsClose.sqf | 2 + .../arsenal/functions/fnc_onLoadoutsOpen.sqf | 2 + .../functions/fnc_onSelChangedLeft.sqf | 204 +++++++++--------- addons/arsenal/functions/fnc_removeStat.sqf | 8 +- .../fnc_statBarStatement_accuracy.sqf | 31 +++ .../fnc_statTextStatement_accuracy.sqf | 15 +- 12 files changed, 175 insertions(+), 118 deletions(-) create mode 100644 addons/arsenal/functions/fnc_statBarStatement_accuracy.sqf diff --git a/addons/arsenal/ACE_Arsenal_Stats.hpp b/addons/arsenal/ACE_Arsenal_Stats.hpp index ca8f236e94..619bc181a7 100644 --- a/addons/arsenal/ACE_Arsenal_Stats.hpp +++ b/addons/arsenal/ACE_Arsenal_Stats.hpp @@ -33,7 +33,7 @@ class GVAR(stats) { displayName= "$STR_a3_rscdisplayarsenal_stat_rof"; showBar = 1; showText = 1; - barStatement = QUOTE([ARR_3((_this select 0) select 0, _this select 1, [ARR_3([ARR_2(-1.4, 0.31)], [ARR_2(1, 0.01)], true)])] call FUNC(statBarStatement_default)); + barStatement = QUOTE([ARR_3((_this select 0) select 0, _this select 1, [ARR_2([ARR_2(-1.4, 0.31)], [ARR_2(1, 0.01)])])] call FUNC(statBarStatement_default)); textStatement = QUOTE([ARR_3((_this select 0) select 0, _this select 1, [ARR_2([ARR_2(-1.4, 0.31)], false)])] call FUNC(statTextStatement_rateOfFire)); tabs[] = {{0,1}, {}}; }; @@ -44,7 +44,7 @@ class GVAR(stats) { displayName = "$STR_a3_rscdisplayarsenal_stat_dispersion"; showBar = 1; showText = 1; - barStatement = QUOTE([ARR_3((_this select 0) select 0, _this select 1, [ARR_3([ARR_2(-4, -1.7)], [ARR_2(1, 0.01)], true)])] call FUNC(statBarStatement_default)); + barStatement = QUOTE([ARR_3((_this select 0) select 0, _this select 1, [ARR_3([ARR_2(-4, -1.7)], [ARR_2(1, 0.01)], true)])] call FUNC(statBarStatement_accuracy)); textStatement = QUOTE([ARR_3((_this select 0) select 0, _this select 1, [ARR_2([ARR_2(-4, -1.7)], false)])] call FUNC(statTextStatement_accuracy)); tabs[] = {{0,1}, {}}; }; diff --git a/addons/arsenal/XEH_PREP.hpp b/addons/arsenal/XEH_PREP.hpp index 52b3d2e242..0b70be1ca6 100644 --- a/addons/arsenal/XEH_PREP.hpp +++ b/addons/arsenal/XEH_PREP.hpp @@ -47,6 +47,7 @@ PREP(removeVirtualItems); PREP(scanConfig); PREP(showItem); PREP(sortPanel); +PREP(statBarStatement_accuracy); PREP(statBarStatement_default); PREP(statBarStatement_impact); PREP(statTextStatement_accuracy); diff --git a/addons/arsenal/functions/fnc_fillLeftPanel.sqf b/addons/arsenal/functions/fnc_fillLeftPanel.sqf index 83a4336ea0..357b1594e0 100644 --- a/addons/arsenal/functions/fnc_fillLeftPanel.sqf +++ b/addons/arsenal/functions/fnc_fillLeftPanel.sqf @@ -29,6 +29,12 @@ private _ctrlPanel = _display displayCtrl IDC_leftTabContent; _ctrlBackground ctrlSetFade 0; _ctrlBackground ctrlCommit FADE_DELAY; +// Force a "refresh" animation of the panel +_ctrlPanel ctrlSetFade 1; +_ctrlPanel ctrlCommit 0; +_ctrlPanel ctrlSetFade 0; +_ctrlPanel ctrlCommit FADE_DELAY; + _ctrlPanel lbSetCurSel -1; // Handle icons and filling diff --git a/addons/arsenal/functions/fnc_fillLoadoutsList.sqf b/addons/arsenal/functions/fnc_fillLoadoutsList.sqf index 118581c160..4388881eba 100644 --- a/addons/arsenal/functions/fnc_fillLoadoutsList.sqf +++ b/addons/arsenal/functions/fnc_fillLoadoutsList.sqf @@ -22,6 +22,12 @@ _textEditBoxCtrl ctrlSetText ""; private _sharingEnabled = (GVAR(allowSharedLoadouts) && {isMultiplayer}); private _sharedLoadoutsVars = GVAR(sharedLoadoutsNamespace) getVariable QGVAR(sharedLoadoutsVars); +// Force a "refresh" animation of the panel +_contentPanelCtrl ctrlSetFade 1; +_contentPanelCtrl ctrlCommit 0; +_contentPanelCtrl ctrlSetFade 0; +_contentPanelCtrl ctrlCommit FADE_DELAY; + _contentPanelCtrl lnbSetCurSelRow -1; lnbClear _contentPanelCtrl; @@ -115,4 +121,6 @@ if (GVAR(currentLoadoutsTab) != IDC_buttonSharedLoadouts) then { } foreach (_sharedLoadoutsVars apply {GVAR(sharedLoadoutsNamespace) getVariable _x}); }; +[QGVAR(loadoutsListFilled), [_display, _control]] call CBA_fnc_localEvent; + _contentPanelCtrl lnbSort [1, false]; diff --git a/addons/arsenal/functions/fnc_fillRightPanel.sqf b/addons/arsenal/functions/fnc_fillRightPanel.sqf index c62ea3cab8..449b616e52 100644 --- a/addons/arsenal/functions/fnc_fillRightPanel.sqf +++ b/addons/arsenal/functions/fnc_fillRightPanel.sqf @@ -134,6 +134,12 @@ switch (GVAR(currentLeftPanel)) do { }; }; +// Force a "refresh" animation of the panel +_ctrlPanel ctrlSetFade 1; +_ctrlPanel ctrlCommit 0; +_ctrlPanel ctrlSetFade 0; +_ctrlPanel ctrlCommit FADE_DELAY; + _itemsToCheck = _itemsToCheck apply {toLower _x}; _compatibleItems = _compatibleItems apply {toLower _x}; @@ -280,9 +286,7 @@ switch (_ctrlIDC) do { }; }; -if (GVAR(currentRightPanel) != _ctrlIDC) then { - (_display displayCtrl IDC_rightSearchbar) ctrlSetText ""; -}; +(_display displayCtrl IDC_rightSearchbar) ctrlSetText ""; GVAR(currentRightPanel) = _ctrlIDC; diff --git a/addons/arsenal/functions/fnc_loadoutsChangeTab.sqf b/addons/arsenal/functions/fnc_loadoutsChangeTab.sqf index 7842df8704..1546d3ed6c 100644 --- a/addons/arsenal/functions/fnc_loadoutsChangeTab.sqf +++ b/addons/arsenal/functions/fnc_loadoutsChangeTab.sqf @@ -74,4 +74,6 @@ switch (ctrlIDC _control) do { GVAR(currentLoadoutsTab) = ctrlIDC _control; +[QGVAR(loadoutsTabChanged), [_display, _control]] call CBA_fnc_localEvent; + [_display, _control] call FUNC(fillLoadoutsList); diff --git a/addons/arsenal/functions/fnc_onLoadoutsClose.sqf b/addons/arsenal/functions/fnc_onLoadoutsClose.sqf index 777af3aed1..4560fbe384 100644 --- a/addons/arsenal/functions/fnc_onLoadoutsClose.sqf +++ b/addons/arsenal/functions/fnc_onLoadoutsClose.sqf @@ -28,4 +28,6 @@ _mouseBlockCtrl ctrlCommit 0; [_arsenalDisplay] call FUNC(buttonHide); +[QGVAR(loadoutsDisplayClosed), []] call CBA_fnc_localEvent; + [_arsenalDisplay , _arsenalDisplay displayCtrl GVAR(currentLeftPanel)] call FUNC(fillLeftPanel); diff --git a/addons/arsenal/functions/fnc_onLoadoutsOpen.sqf b/addons/arsenal/functions/fnc_onLoadoutsOpen.sqf index ec025b0bc1..613621e405 100644 --- a/addons/arsenal/functions/fnc_onLoadoutsOpen.sqf +++ b/addons/arsenal/functions/fnc_onLoadoutsOpen.sqf @@ -57,4 +57,6 @@ if !(GVAR(allowSharedLoadouts) && {isMultiplayer}) then { _buttonShareLoadoutsBackgroundCtrl ctrlCommit 0; }; +[QGVAR(loadoutsDisplayOpened), [_display]] call CBA_fnc_localEvent; + [_display, _display displayCtrl IDC_buttonMyLoadouts] call FUNC(loadoutsChangeTab); diff --git a/addons/arsenal/functions/fnc_onSelChangedLeft.sqf b/addons/arsenal/functions/fnc_onSelChangedLeft.sqf index 5c4d49b5d1..ebfaeb0666 100644 --- a/addons/arsenal/functions/fnc_onSelChangedLeft.sqf +++ b/addons/arsenal/functions/fnc_onSelChangedLeft.sqf @@ -28,28 +28,33 @@ private _selectCorrectPanelWeapon = [_weaponDefaultRightPanel, _display displayC private _containerDefaultRightPanel = _display displayCtrl IDC_buttonMisc; private _selectCorrectPanelContainer = [_containerDefaultRightPanel, _display displayCtrl GVAR(currentRightPanel)] select (!(isNil QGVAR(currentRightPanel)) && {GVAR(currentRightPanel) in [RIGHT_PANEL_ITEMS_IDCS]}); +private _fnc_clearPreviousWepMags = { + private _compatibleMags = getArray (configfile >> "cfgweapons" >> _baseWeapon >> "magazines"); + { + GVAR(center) removeMagazines _x; + } foreach _compatibleMags; + + GVAR(currentItems) set [15, uniformItems GVAR(center)]; + GVAR(currentItems) set [16, vestItems GVAR(center)]; + GVAR(currentItems) set [17, backpackItems GVAR(center)]; +}; + switch (GVAR(currentLeftPanel)) do { case IDC_buttonPrimaryWeapon : { private _baseWeapon = ((GVAR(currentItems) select 0) call bis_fnc_baseWeapon); - if ((GVAR(currentItems) select 0) != _item && {_baseWeapon != _item}) then { + if (_item == "") then { + call _fnc_clearPreviousWepMags; - private _compatibleMags = getArray (configfile >> "cfgweapons" >> _baseWeapon >> "magazines"); - { - GVAR(center) removeMagazines _x; - } foreach _compatibleMags; + GVAR(center) removeWeapon (primaryWeapon GVAR(center)); + GVAR(currentItems) set [18, ["", "", "", "", "", ""]]; + GVAR(currentItems) set [0, _item]; - GVAR(currentItems) set [15, uniformItems GVAR(center)]; - GVAR(currentItems) set [16, vestItems GVAR(center)]; - GVAR(currentItems) set [17, backpackItems GVAR(center)]; - - if (_item == "") then { - - GVAR(center) removeWeapon (primaryWeapon GVAR(center)); - GVAR(currentItems) set [18, ["", "", "", "", "", ""]]; - GVAR(currentItems) set [0, _item]; - } else { + TOGGLE_RIGHT_PANEL_HIDE + } else { + if ((GVAR(currentItems) select 0) != _item && {_baseWeapon != _item}) then { + call _fnc_clearPreviousWepMags; private _compatibleItems = (_item call bis_fnc_compatibleItems) apply {tolower _x}; GVAR(center) addWeapon _item; @@ -65,11 +70,7 @@ switch (GVAR(currentLeftPanel)) do { GVAR(currentItems) set [18, (primaryWeaponItems GVAR(center)) + ([_primaryMags + [""], _primaryMags] select (count _primaryMags > 1))]; GVAR(currentItems) set [0, _item]; }; - }; - if (_item == "") then { - TOGGLE_RIGHT_PANEL_HIDE - } else { TOGGLE_RIGHT_PANEL_WEAPON [_display, _selectCorrectPanelWeapon] call FUNC(fillRightPanel); }; @@ -81,23 +82,17 @@ switch (GVAR(currentLeftPanel)) do { case IDC_buttonHandgun : { private _baseWeapon = ((GVAR(currentItems) select 2) call bis_fnc_baseWeapon); - if ((GVAR(currentItems) select 2) != _item && {_baseWeapon != _item}) then { + if (_item == "") then { + call _fnc_clearPreviousWepMags; - private _compatibleMags = getArray (configfile >> "cfgweapons" >> _baseWeapon >> "magazines"); - { - GVAR(center) removeMagazines _x; - } foreach _compatibleMags; + GVAR(center) removeWeapon (handgunWeapon GVAR(center)); + GVAR(currentItems) set [18, ["", "", "", "", "", ""]]; + GVAR(currentItems) set [2, _item]; - GVAR(currentItems) set [15, uniformItems GVAR(center)]; - GVAR(currentItems) set [16, vestItems GVAR(center)]; - GVAR(currentItems) set [17, backpackItems GVAR(center)]; - - if (_item == "") then { - - GVAR(center) removeWeapon (handgunWeapon GVAR(center)); - GVAR(currentItems) set [18, ["", "", "", "", "", ""]]; - GVAR(currentItems) set [2, _item]; - } else { + TOGGLE_RIGHT_PANEL_HIDE + } else { + if ((GVAR(currentItems) select 2) != _item && {_baseWeapon != _item}) then { + call _fnc_clearPreviousWepMags; private _compatibleItems = (_item call bis_fnc_compatibleItems) apply {tolower _x}; GVAR(center) addWeapon _item; @@ -113,11 +108,7 @@ switch (GVAR(currentLeftPanel)) do { GVAR(currentItems) set [20, (handgunItems GVAR(center)) + ([_handgunMags + [""], _handgunMags] select (count _handgunMags > 1))]; GVAR(currentItems) set [2, _item]; }; - }; - if (_item == "") then { - TOGGLE_RIGHT_PANEL_HIDE - } else { TOGGLE_RIGHT_PANEL_WEAPON [_display, [_selectCorrectPanelWeapon, _weaponDefaultRightPanel] select (GVAR(currentRightPanel) == IDC_buttonCurrentMag2)] call FUNC(fillRightPanel); }; @@ -129,23 +120,16 @@ switch (GVAR(currentLeftPanel)) do { case IDC_buttonSecondaryWeapon : { private _baseWeapon = ((GVAR(currentItems) select 1) call bis_fnc_baseWeapon); - if ((GVAR(currentItems) select 1) != _item && {_baseWeapon != _item}) then { + if (_item == "") then { + call _fnc_clearPreviousWepMags; - private _compatibleMags = getArray (configfile >> "cfgweapons" >> _baseWeapon >> "magazines"); - { - GVAR(center) removeMagazines _x; - } foreach _compatibleMags; - - GVAR(currentItems) set [15, uniformItems GVAR(center)]; - GVAR(currentItems) set [16, vestItems GVAR(center)]; - GVAR(currentItems) set [17, backpackItems GVAR(center)]; - - if (_item == "") then { - - GVAR(center) removeWeapon (secondaryWeapon GVAR(center)); - GVAR(currentItems) set [18, ["", "", "", "", "", ""]]; - GVAR(currentItems) set [1, _item]; - } else { + GVAR(center) removeWeapon (secondaryWeapon GVAR(center)); + GVAR(currentItems) set [18, ["", "", "", "", "", ""]]; + GVAR(currentItems) set [1, _item]; + TOGGLE_RIGHT_PANEL_HIDE + } else { + if ((GVAR(currentItems) select 1) != _item && {_baseWeapon != _item}) then { + call _fnc_clearPreviousWepMags; private _compatibleItems = (_item call bis_fnc_compatibleItems) apply {tolower _x}; GVAR(center) addWeapon _item; @@ -161,11 +145,7 @@ switch (GVAR(currentLeftPanel)) do { GVAR(currentItems) set [19, (secondaryWeaponItems GVAR(center)) + ([_secondaryMags + [""], _secondaryMags] select (count _secondaryMags > 1))]; GVAR(currentItems) set [1, _item]; }; - }; - if (_item == "") then { - TOGGLE_RIGHT_PANEL_HIDE - } else { TOGGLE_RIGHT_PANEL_WEAPON [_display, [_selectCorrectPanelWeapon, _weaponDefaultRightPanel] select (GVAR(currentRightPanel) == IDC_buttonCurrentMag2)] call FUNC(fillRightPanel); }; @@ -175,14 +155,18 @@ switch (GVAR(currentLeftPanel)) do { }; case IDC_buttonHeadgear : { + if (_item == "") then { removeHeadgear GVAR(center); GVAR(currentItems) set [3, _item]; } else { - GVAR(center) addHeadgear _item; - GVAR(currentItems) set [3, _item]; + if ((GVAR(currentItems) select 3) != _item) then { + GVAR(center) addHeadgear _item; + GVAR(currentItems) set [3, _item]; + }; }; call FUNC(showItem); + TOGGLE_RIGHT_PANEL_HIDE [_display, _control, _curSel, (configFile >> "CfgWeapons" >> _item)] call FUNC(itemInfo); }; @@ -196,17 +180,19 @@ switch (GVAR(currentLeftPanel)) do { TOGGLE_RIGHT_PANEL_HIDE } else { - GVAR(center) forceAddUniform _item; + if ((GVAR(currentItems) select 4) != _item) then { + GVAR(center) forceAddUniform _item; - while {count uniformItems GVAR(center) > 0} do { - GVAR(center) removeItemFromUniform (uniformItems GVAR(center) select 0); - }; //--- Remove default config contents + while {count uniformItems GVAR(center) > 0} do { + GVAR(center) removeItemFromUniform (uniformItems GVAR(center) select 0); + }; //--- Remove default config contents - {GVAR(center) addItemtoUniform _x} foreach (GVAR(currentItems) select 15); - GVAR(currentItems) set [4, _item]; + {GVAR(center) addItemtoUniform _x} foreach (GVAR(currentItems) select 15); + GVAR(currentItems) set [4, _item]; - [GVAR(center), ""] call bis_fnc_setUnitInsignia; - [GVAR(center), GVAR(currentInsignia)] call bis_fnc_setUnitInsignia; + [GVAR(center), ""] call bis_fnc_setUnitInsignia; + [GVAR(center), GVAR(currentInsignia)] call bis_fnc_setUnitInsignia; + }; TOGGLE_RIGHT_PANEL_CONTAINER [_display, _selectCorrectPanelContainer] call FUNC(fillRightPanel); @@ -225,13 +211,15 @@ switch (GVAR(currentLeftPanel)) do { TOGGLE_RIGHT_PANEL_HIDE } else { - GVAR(center) addVest _item; - while {count vestItems GVAR(center) > 0} do { - GVAR(center) removeItemFromVest (VestItems GVAR(center) select 0); - }; //--- Remove default config contents - {GVAR(center) addItemToVest _x} foreach (GVAR(currentItems) select 16); + if ((GVAR(currentItems) select 5) != _item) then { + GVAR(center) addVest _item; + while {count vestItems GVAR(center) > 0} do { + GVAR(center) removeItemFromVest (VestItems GVAR(center) select 0); + }; //--- Remove default config contents + {GVAR(center) addItemToVest _x} foreach (GVAR(currentItems) select 16); - GVAR(currentItems) set [5, _item]; + GVAR(currentItems) set [5, _item]; + }; TOGGLE_RIGHT_PANEL_CONTAINER [_display, _selectCorrectPanelContainer] call FUNC(fillRightPanel); @@ -250,14 +238,16 @@ switch (GVAR(currentLeftPanel)) do { TOGGLE_RIGHT_PANEL_HIDE } else { - removeBackpack GVAR(center); - GVAR(center) addBackpack _item; - while {count backpackItems GVAR(center) > 0} do { - GVAR(center) removeItemFromBackpack (backpackItems GVAR(center) select 0); - }; //--- Remove default config contents - {GVAR(center) addItemToBackpack _x} foreach (GVAR(currentItems) select 17); + if ((GVAR(currentItems) select 6) != _item) then { + removeBackpack GVAR(center); + GVAR(center) addBackpack _item; + while {count backpackItems GVAR(center) > 0} do { + GVAR(center) removeItemFromBackpack (backpackItems GVAR(center) select 0); + }; //--- Remove default config contents + {GVAR(center) addItemToBackpack _x} foreach (GVAR(currentItems) select 17); - GVAR(currentItems) set [6, _item]; + GVAR(currentItems) set [6, _item]; + }; TOGGLE_RIGHT_PANEL_CONTAINER [_display, _selectCorrectPanelContainer] call FUNC(fillRightPanel); @@ -272,8 +262,10 @@ switch (GVAR(currentLeftPanel)) do { removeGoggles GVAR(center); GVAR(currentItems) set [7, _item]; } else { - GVAR(center) addGoggles _item; - GVAR(currentItems) set [7, _item]; + if ((GVAR(currentItems) select 7) != _item) then { + GVAR(center) addGoggles _item; + GVAR(currentItems) set [7, _item]; + }; }; call FUNC(showItem); @@ -286,8 +278,10 @@ switch (GVAR(currentLeftPanel)) do { GVAR(center) unlinkItem (GVAR(currentItems) select 8); GVAR(currentItems) set [8, _item]; } else { - GVAR(center) linkItem _item; - GVAR(currentItems) set [8, _item]; + if ((GVAR(currentItems) select 8) != _item) then { + GVAR(center) linkItem _item; + GVAR(currentItems) set [8, _item]; + }; }; call FUNC(showItem); @@ -300,10 +294,12 @@ switch (GVAR(currentLeftPanel)) do { GVAR(center) removeWeapon (binocular GVAR(center)); GVAR(currentItems) set [9, _item]; } else { - GVAR(center) addWeapon _item; - GVAR(currentItems) set [9, _item]; - call FUNC(showItem); - ADDBINOCULARSMAG + if ((GVAR(currentItems) select 9) != _item) then { + GVAR(center) addWeapon _item; + GVAR(currentItems) set [9, _item]; + call FUNC(showItem); + ADDBINOCULARSMAG + }; }; call FUNC(showItem); TOGGLE_RIGHT_PANEL_HIDE @@ -315,8 +311,10 @@ switch (GVAR(currentLeftPanel)) do { GVAR(center) unlinkItem (GVAR(currentItems) select 10) select 0; GVAR(currentItems) set [10, _item]; } else { - GVAR(center) linkItem _item; - GVAR(currentItems) set [10, _item]; + if ((GVAR(currentItems) select 10) != _item) then { + GVAR(center) linkItem _item; + GVAR(currentItems) set [10, _item]; + }; }; call FUNC(showItem); @@ -329,8 +327,10 @@ switch (GVAR(currentLeftPanel)) do { GVAR(center) unlinkItem (GVAR(currentItems) select 11) select 0; GVAR(currentItems) set [11, _item]; } else { - GVAR(center) linkItem _item; - GVAR(currentItems) set [11, _item]; + if ((GVAR(currentItems) select 11) != _item) then { + GVAR(center) linkItem _item; + GVAR(currentItems) set [11, _item]; + }; }; call FUNC(showItem); @@ -343,8 +343,10 @@ switch (GVAR(currentLeftPanel)) do { GVAR(center) unlinkItem (GVAR(currentItems) select 12) select 0; GVAR(currentItems) set [12, _item]; } else { - GVAR(center) linkItem _item; - GVAR(currentItems) set [12, _item]; + if ((GVAR(currentItems) select 12) != _item) then { + GVAR(center) linkItem _item; + GVAR(currentItems) set [12, _item]; + }; }; call FUNC(showItem); @@ -357,8 +359,10 @@ switch (GVAR(currentLeftPanel)) do { GVAR(center) unlinkItem (GVAR(currentItems) select 13); GVAR(currentItems) set [13, _item]; } else { - GVAR(center) linkItem _item; - GVAR(currentItems) set [13, _item]; + if ((GVAR(currentItems) select 13) != _item) then { + GVAR(center) linkItem _item; + GVAR(currentItems) set [13, _item]; + }; }; call FUNC(showItem); @@ -371,8 +375,10 @@ switch (GVAR(currentLeftPanel)) do { GVAR(center) unlinkItem (GVAR(currentItems) select 14) select 0; GVAR(currentItems) set [14, _item]; } else { - GVAR(center) linkItem _item; - GVAR(currentItems) set [14, _item]; + if ((GVAR(currentItems) select 14) != _item) then { + GVAR(center) linkItem _item; + GVAR(currentItems) set [14, _item]; + }; }; call FUNC(showItem); diff --git a/addons/arsenal/functions/fnc_removeStat.sqf b/addons/arsenal/functions/fnc_removeStat.sqf index c13808e3a9..86eecd839d 100644 --- a/addons/arsenal/functions/fnc_removeStat.sqf +++ b/addons/arsenal/functions/fnc_removeStat.sqf @@ -33,13 +33,7 @@ call FUNC(compileStats); }; { - private _currentPage = _x; - - { - if (_x select 0 == _currentID) then { - _currentPage deleteAt _forEachIndex; - }; - } foreach _currentPage; + _x deleteAt (_x findIf {_x select 0 == _currentID}); } foreach _tabToChange; } foreach _IDList; diff --git a/addons/arsenal/functions/fnc_statBarStatement_accuracy.sqf b/addons/arsenal/functions/fnc_statBarStatement_accuracy.sqf new file mode 100644 index 0000000000..511eb37344 --- /dev/null +++ b/addons/arsenal/functions/fnc_statBarStatement_accuracy.sqf @@ -0,0 +1,31 @@ +/* + * Author: Alganthe + * Accuracy bar statement. + * + * Arguments: + * 0: stats array (ARRAY) + * 1: item config path (CONFIG) + * 2: Args + * 2.1: Stat limits (ARRAY of BOOL) + * 2.2: Bar limits (ARRAY of SCALAR) + * + * Return Value: + * Number + * + * Public: No +*/ +#include "script_component.hpp" + +params ["_stat", "_config", "_args"]; +_args params ["_statMinMax", "_barLimits"]; + +private _fireModes = getArray (_config >> "modes"); +private _dispersion = []; + +{ + _dispersion pushBackUnique log (getNumber (_config >> _x >> "dispersion")); +} foreach _fireModes; + +_dispersion sort true; + +linearConversion [_statMinMax select 0, _statMinMax select 1, _dispersion select 0, _barLimits select 0, _barLimits select 1] diff --git a/addons/arsenal/functions/fnc_statTextStatement_accuracy.sqf b/addons/arsenal/functions/fnc_statTextStatement_accuracy.sqf index 0f69236bb3..12f278442f 100644 --- a/addons/arsenal/functions/fnc_statTextStatement_accuracy.sqf +++ b/addons/arsenal/functions/fnc_statTextStatement_accuracy.sqf @@ -19,13 +19,14 @@ params ["_stat", "_config", "_args"]; _args params ["_statMinMax", "_configExtremeBool"]; -private _statValues = [ - [_config], - [_stat], - [_configExtremeBool], - [_statMinMax select 0] -] call BIS_fnc_configExtremes; +private _fireModes = getArray (_config >> "modes"); +private _dispersion = []; -private _dispersion = (_statValues select 1) select 0; +{ + _dispersion pushBackUnique (getNumber (_config >> _x >> "dispersion")); +} foreach _fireModes; + +_dispersion sort true; +_dispersion = _dispersion select 0; format ["%1 MIL (%2 MOA)", (_dispersion * 1000) toFixed 2, (_dispersion / pi * 10800) ToFixed 1]; From 77b4ce7585d1f6632f5a45ce1adefde78b19a3f5 Mon Sep 17 00:00:00 2001 From: mharis001 <34453221+mharis001@users.noreply.github.com> Date: Thu, 31 May 2018 19:05:35 -0400 Subject: [PATCH 140/235] Dogtags - Allow dogtags display to be repositioned (#6351) * Allow dogtags display to be repositioned * Update IGUI preview image * Use common grid macros --- addons/dogtags/CfgUIGrids.hpp | 29 ++++++++++++++++ addons/dogtags/{Dogtag.hpp => RscTitles.hpp} | 34 +++++++------------ addons/dogtags/config.cpp | 3 +- addons/dogtags/script_component.hpp | 2 ++ addons/dogtags/stringtable.xml | 3 ++ addons/dogtags/ui/igui_preview.paa | Bin 0 -> 37429 bytes 6 files changed, 49 insertions(+), 22 deletions(-) create mode 100644 addons/dogtags/CfgUIGrids.hpp rename addons/dogtags/{Dogtag.hpp => RscTitles.hpp} (56%) create mode 100644 addons/dogtags/ui/igui_preview.paa diff --git a/addons/dogtags/CfgUIGrids.hpp b/addons/dogtags/CfgUIGrids.hpp new file mode 100644 index 0000000000..f9216ac2ea --- /dev/null +++ b/addons/dogtags/CfgUIGrids.hpp @@ -0,0 +1,29 @@ +class CfgUIGrids { + class IGUI { + class Presets { + class Arma3 { + class Variables { + GVAR(grid)[] = { + { + (safeZoneX + safeZoneW) - 12.9 * GUI_GRID_W, + safeZoneY + 0.175 * safeZoneH, + 8 * GUI_GRID_W, + 8 * GUI_GRID_H + }, + GUI_GRID_W, + GUI_GRID_H + }; + }; + }; + }; + class Variables { + class GVAR(grid) { + displayName = COMPONENT_NAME; + description = CSTRING(IGUI_Description); + preview = QPATHTOF(ui\igui_preview.paa); + saveToProfile[] = {0, 1}; + canResize = 0; + }; + }; + }; +}; diff --git a/addons/dogtags/Dogtag.hpp b/addons/dogtags/RscTitles.hpp similarity index 56% rename from addons/dogtags/Dogtag.hpp rename to addons/dogtags/RscTitles.hpp index d783ec15b0..97549c856e 100644 --- a/addons/dogtags/Dogtag.hpp +++ b/addons/dogtags/RscTitles.hpp @@ -6,34 +6,30 @@ class RscTitles { idd = -1; onLoad = QUOTE(uiNamespace setVariable [ARR_2(QQGVAR(tag),_this select 0)]); onUnload = QUOTE(uiNamespace setVariable [ARR_2(QQGVAR(tag),nil)]); - movingEnable = false; - duration = 5; fadeIn = 0.2; fadeOut = 0.2; - + duration = 5; + movingEnable = 0; class controls { class background: RscPicture { idc = 1000; - text = QUOTE(PATHTOF(data\dogtagSingle.paa)); - sizeEx = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)"; + x = profileNamespace getVariable ['TRIPLES(IGUI,GVAR(grid),X)', (safeZoneX + safeZoneW) - 12.9 * GUI_GRID_W]; + y = profileNamespace getVariable ['TRIPLES(IGUI,GVAR(grid),Y)', safeZoneY + 0.175 * safeZoneH]; + w = 8 * GUI_GRID_W; + h = 8 * GUI_GRID_H; + text = QPATHTOF(data\dogtagSingle.paa); colorText[] = {1, 1, 1, 1}; - colorBackground[] = {0, 0, 0, 0}; - x = ((safezoneX + safezoneW) - (10 * (((safezoneW / safezoneH) min 1.2) / 40)) - 2.9 * (((safezoneW / safezoneH) min 1.2) / 40)); - y = safeZoneY + 0.175 * safezoneH; - w = (8 * (((safezoneW / safezoneH) min 1.2) / 40)); - h = (8 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25)); - font = "EtelkaMonospacePro"; }; class nickname: RscStructuredText { idc = 1001; text = ""; - sizeEx = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)"; + sizeEx = GUI_GRID_H; colorText[] = {1, 1, 1, 1}; colorBackground[] = {0, 0, 0, 0}; - x = ((safezoneX + safezoneW) - (8.4 * (((safezoneW / safezoneH) min 1.2) / 40)) - 2.9 * (((safezoneW / safezoneH) min 1.2) / 40)); - y = safeZoneY + 0.24 * safezoneH; - w = (5.9 * (((safezoneW / safezoneH) min 1.2) / 40)); - h = (3 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25)); + x = 1.6 * GUI_GRID_W + (profileNamespace getVariable ['TRIPLES(IGUI,GVAR(grid),X)', (safeZoneX + safeZoneW) - 12.9 * GUI_GRID_W]); + y = 0.065 * safeZoneH + (profileNamespace getVariable ['TRIPLES(IGUI,GVAR(grid),Y)', safeZoneY + 0.175 * safeZoneH]); + w = 5.9 * GUI_GRID_W; + h = 3 * GUI_GRID_H; font = "RobotoCondensed"; class Attributes { font = "RobotoCondensed"; @@ -48,13 +44,9 @@ class RscTitles { }; }; class GVAR(doubleTag): GVAR(singleTag) { - idd = -1; - onLoad = QUOTE(uiNamespace setVariable [ARR_2(QQGVAR(tag),_this select 0)]); - onUnload = QUOTE(uiNamespace setVariable [ARR_2(QQGVAR(tag),nil)]); - class controls: controls { class background: background { - text = QUOTE(PATHTOF(data\dogtagDouble.paa)); + text = QPATHTOF(data\dogtagDouble.paa); }; class nickname: nickname { class Attributes: Attributes { diff --git a/addons/dogtags/config.cpp b/addons/dogtags/config.cpp index 183b59e67e..dad0107953 100644 --- a/addons/dogtags/config.cpp +++ b/addons/dogtags/config.cpp @@ -17,4 +17,5 @@ class CfgPatches { #include "CfgEventHandlers.hpp" #include "CfgWeapons.hpp" #include "CfgVehicles.hpp" -#include "Dogtag.hpp" +#include "RscTitles.hpp" +#include "CfgUIGrids.hpp" diff --git a/addons/dogtags/script_component.hpp b/addons/dogtags/script_component.hpp index 0060f9579f..67e70b9dd2 100644 --- a/addons/dogtags/script_component.hpp +++ b/addons/dogtags/script_component.hpp @@ -16,6 +16,8 @@ #include "\z\ace\addons\main\script_macros.hpp" +#include "\a3\ui_f\hpp\defineCommonGrids.inc" + #define DOGTAG_SHOW_DELAY 1 #define RUSTLING_SOUNDS [\ diff --git a/addons/dogtags/stringtable.xml b/addons/dogtags/stringtable.xml index 3b712bc9eb..3c7e759c7c 100644 --- a/addons/dogtags/stringtable.xml +++ b/addons/dogtags/stringtable.xml @@ -79,5 +79,8 @@ 已經有人把他的兵籍牌拿走了... 已经有人把他的兵籍牌拿走了... + + Onscreen display for checking dogtags + diff --git a/addons/dogtags/ui/igui_preview.paa b/addons/dogtags/ui/igui_preview.paa new file mode 100644 index 0000000000000000000000000000000000000000..2ea65eb1291b4b9607fc329e3256d9dfef3d9016 GIT binary patch literal 37429 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 v>^~%pW|Y#vVFIr`QMP?3(fZp{Fr%VA%~bz=f#i Date: Thu, 31 May 2018 19:11:16 -0400 Subject: [PATCH 141/235] Change repair to use icon color not multiple files (#6318) --- .../repair/functions/fnc_addRepairActions.sqf | 3 +-- .../functions/fnc_modifyInteraction.sqf | 21 +++++++++--------- .../fnc_modifySelectionInteraction.sqf | 21 +++++++----------- addons/repair/script_component.hpp | 2 ++ addons/repair/ui/damage_0_ca.paa | Bin 5625 -> 0 bytes addons/repair/ui/damage_1_ca.paa | Bin 5625 -> 0 bytes addons/repair/ui/damage_2_ca.paa | Bin 5625 -> 0 bytes addons/repair/ui/damage_3_ca.paa | Bin 5625 -> 0 bytes addons/repair/ui/damage_4_ca.paa | Bin 5625 -> 0 bytes addons/repair/ui/damage_5_ca.paa | Bin 5625 -> 0 bytes addons/repair/ui/damage_6_ca.paa | Bin 5625 -> 0 bytes addons/repair/ui/damage_7_ca.paa | Bin 5625 -> 0 bytes addons/repair/ui/damage_8_ca.paa | Bin 5625 -> 0 bytes addons/repair/ui/repair_0_ca.paa | Bin 5625 -> 0 bytes addons/repair/ui/repair_1_ca.paa | Bin 5625 -> 0 bytes addons/repair/ui/repair_2_ca.paa | Bin 5625 -> 0 bytes addons/repair/ui/repair_3_ca.paa | Bin 5625 -> 0 bytes addons/repair/ui/repair_4_ca.paa | Bin 5625 -> 0 bytes addons/repair/ui/repair_5_ca.paa | Bin 5625 -> 0 bytes addons/repair/ui/repair_6_ca.paa | Bin 5625 -> 0 bytes addons/repair/ui/repair_7_ca.paa | Bin 5625 -> 0 bytes addons/repair/ui/repair_8_ca.paa | Bin 5625 -> 0 bytes 22 files changed, 21 insertions(+), 26 deletions(-) delete mode 100644 addons/repair/ui/damage_0_ca.paa delete mode 100644 addons/repair/ui/damage_1_ca.paa delete mode 100644 addons/repair/ui/damage_2_ca.paa delete mode 100644 addons/repair/ui/damage_3_ca.paa delete mode 100644 addons/repair/ui/damage_4_ca.paa delete mode 100644 addons/repair/ui/damage_5_ca.paa delete mode 100644 addons/repair/ui/damage_6_ca.paa delete mode 100644 addons/repair/ui/damage_7_ca.paa delete mode 100644 addons/repair/ui/damage_8_ca.paa delete mode 100644 addons/repair/ui/repair_0_ca.paa delete mode 100644 addons/repair/ui/repair_1_ca.paa delete mode 100644 addons/repair/ui/repair_2_ca.paa delete mode 100644 addons/repair/ui/repair_3_ca.paa delete mode 100644 addons/repair/ui/repair_4_ca.paa delete mode 100644 addons/repair/ui/repair_5_ca.paa delete mode 100644 addons/repair/ui/repair_6_ca.paa delete mode 100644 addons/repair/ui/repair_7_ca.paa delete mode 100644 addons/repair/ui/repair_8_ca.paa diff --git a/addons/repair/functions/fnc_addRepairActions.sqf b/addons/repair/functions/fnc_addRepairActions.sqf index 9428cdb1a0..503c11bd97 100644 --- a/addons/repair/functions/fnc_addRepairActions.sqf +++ b/addons/repair/functions/fnc_addRepairActions.sqf @@ -35,8 +35,7 @@ private _hitPointsAddedNames = []; private _hitPointsAddedStrings = []; private _hitPointsAddedAmount = []; private _processedHitpoints = []; -private _icon = QPATHTOF(ui\repair_0_ca.paa); - +private _icon = ["a3\ui_f\data\igui\cfg\actions\repair_ca.paa", "#FFFFFF"]; // Custom position can be defined via config for associated hitpoint private _hitpointPositions = getArray (configFile >> "CfgVehicles" >> _type >> QGVAR(hitpointPositions)); diff --git a/addons/repair/functions/fnc_modifyInteraction.sqf b/addons/repair/functions/fnc_modifyInteraction.sqf index 5b49089268..5795f0c584 100644 --- a/addons/repair/functions/fnc_modifyInteraction.sqf +++ b/addons/repair/functions/fnc_modifyInteraction.sqf @@ -1,18 +1,18 @@ /* - * Author: PabstMirror - * Modifies the base interaction point for repair items to show it's current damage. + * Author: PabstMirror, mharis001 + * Modifies the base interaction point for repair items to show its current damage. * * Arguments: * 0: Target - * 1: Player - * 2: Args + * 1: Player (not used) + * 2: Args (not used) * 3: Action Data * * Return Value: * None * * Example: - * [cursorObject, ace_player, [], []] call ace_repair_fnc_modifyInteraction; + * [cursorObject, ACE_player, [], []] call ace_repair_fnc_modifyInteraction * * Public: No */ @@ -20,9 +20,8 @@ params ["_target", "", "", "_actionData"]; -// Interaction dots numbered 0..8, white to red. -// Convert damage to number (rounding up), so that even slight damage can bee seen - -private _fileName = format [QPATHTOF(ui\damage_%1_ca.paa), ceil (linearConversion [0, 1, damage _target, 0, 8, true])]; -TRACE_2("modifyInteraction",_target,_fileName); -_actionData set [2, _fileName]; +// Convert damage to number (round up to show even slight damage) +private _color = ceil linearConversion [0, 1, damage _target, 0, 8, true]; +TRACE_2("Modifying icon color",_target,_color); +(_actionData select 2) set [1, DAMAGE_COLOR_SCALE select _color]; + diff --git a/addons/repair/functions/fnc_modifySelectionInteraction.sqf b/addons/repair/functions/fnc_modifySelectionInteraction.sqf index 5698d55e24..b4e3ed031b 100644 --- a/addons/repair/functions/fnc_modifySelectionInteraction.sqf +++ b/addons/repair/functions/fnc_modifySelectionInteraction.sqf @@ -1,10 +1,10 @@ /* - * Author: 654wak654 - * Modifies interaction color of vehicle selection to show it's current damage. + * Author: 654wak654, mharis001 + * Modifies interaction icon color of vehicle selection to show its current damage. * * Arguments: * 0: Target - * 1: Player + * 1: Player (not used) * 2: Args * 3: Action Data * @@ -12,7 +12,7 @@ * None * * Example: - * [cursorObject, ace_player, [], []] call ace_repair_fnc_modifySelectionInteraction; + * [cursorObject, ACE_player, [], []] call ace_repair_fnc_modifySelectionInteraction * * Public: No */ @@ -20,12 +20,7 @@ params ["_target", "", "_args", "_actionData"]; -// Interaction wrenches numbered 0..8, white to red. -// Convert damage to number (rounding up), so that even slight damage can bee seen - -private _fileName = format [ - QPATHTOF(ui\repair_%1_ca.paa), - ceil (linearConversion [0, 1, _target getHitPointDamage (_args select 0), 0, 8, true]) -]; -TRACE_2("modifyInteraction",_target,_fileName); -_actionData set [2, _fileName]; +// Convert damage to number (round up to show even slight damage) +private _color = ceil linearConversion [0, 1, _target getHitPointDamage (_args select 0), 0, 8, true]; +TRACE_2("Modifying icon color",_target,_color); +(_actionData select 2) set [1, DAMAGE_COLOR_SCALE select _color]; diff --git a/addons/repair/script_component.hpp b/addons/repair/script_component.hpp index 678f8fe04e..7ec3be3233 100644 --- a/addons/repair/script_component.hpp +++ b/addons/repair/script_component.hpp @@ -17,3 +17,5 @@ #include "\z\ace\addons\main\script_macros.hpp" #define TRACK_HITPOINTS ["hitltrack", "hitrtrack"] + +#define DAMAGE_COLOR_SCALE ["#FFFFFF", "#FFFF7E", "#FFEC4D", "#FFD52C", "#FCB121", "#FF9916", "#FF7D16", "#FF4400", "#FF0000"] diff --git a/addons/repair/ui/damage_0_ca.paa b/addons/repair/ui/damage_0_ca.paa deleted file mode 100644 index f7c2348f295c6d520b850ae48fae5112b281bd7a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5625 zcmeHLUr19?82@&s=}?)-2ENEHSPwqCd3X(5VkQaJlDq&Ub&`pYxqR z_tdlAUjOCOy+MB+0IaXCpEU5G{~Te4g>bJwAQQIWL->*`pO>(%;q$N+V8Q_~=>%B8 zr?Mh}1b_^?g%t8Sy=%A@k6J$bjzDcb{C_^YY9DKThDDxBg)^y+*_3bxy>WRWqEEgkv!O-Anwf!r{Kc3r4 zvV0QV&5A8Hi)Fw4E#(`}u?-*7eWY(xm85d^Rl9#YhtB5{hW{3et?J{C{-g7{i~N@) z_0Y%PssBh6)}o&%A6rg%CQHX_zp+zi-y3|z1=2S<7z$Q5o&)H99cKQDFm+SkN zJ*f3i_Jf)|W&~>SujL<~3-ms!`5=M_KsO9#IjUwJwta1jsqmN_*}3)=e@hfkeNRT+ zp;$3C?Vc3?dNTG6j)yb=ls~s@FD#kzp$mJp-?Osyp5;w_Hj7o@lZ#r2yA*p?*hZ4+ z*gNf3r8HV(7A{{YM!qB~&@pe?Em$qKQhlWu<(ZG=T_mriCACt0rSffyYtgLtW`^Qf z?@^SV40&Q-BYps3*2JvU#M)5XqOX{~A2#GKgcPNeuZGPCP!y@wN>_n&$!HedyjR>c zBTtxVJM4a96NIiAd%hMahF@^O4z^`M#Mq z``Aj>(&E~;t)C> zJG^GMB#;2m!{nlX{5RdpxU5IH9|{VT_rve^!&6hYF@(z!3U|cAhZ+v=5pjmdb(Tc9 za^ToamS+7X?@*)YNXFjeP|OtjVD>Hna3tgDI~)%KSQ7UWdQaA=+P9rnRDbtxJl6c> z$9P3}JdPKtKI@S0n(&d0oG+{Ywp-8vq}WrlO|L@@v<%b8n0OcPcSd?mk5kM^=Jh_^ zU8qw1wfm!h@eJ_?Yu^^@L8e>_x|a&uN1g@74%GaldiB|?2A;+2`Tm(6_L0@OCxf}= z6tA`2*U34Tif?f|NAhbVHxW_$*`ODM0{@x#%+S)Q_lXATM}yVYSI9p_Es0xRt4Ny7 zR}a;n(>~%Hec5#VF~#fjwYQeK-o^279tF;Z55{R8)yc@X9yYq3{e#P4;e@y7Dpd+Fv~F@KKv`^XY{7TAxkK(2=+ksbW}`sjYD zm)JPu#r|dNRj`Bl7hs8o<%b3h4|^>MmbrSv94C9_beq=_THO$z^f#3+kH_Pq*9DpX z<@lNcW&O+j$M*u=|CN3)gBgInFlg&vNxRhfdeV5z{}K4O>r1!MJA}tvQ}brZA;s#e z2ShBlsbA-x#9ayi+8g56@=?{kZT`npQ{;JsUwz>xWv zbI-ZwJLleea_y|EEBNcrU6EiD0BkRgbr?7r{Dm+>A>0+*5h5($LwHvx6qfN_!{@XM z;M_8R zxQD1~J^8eK=@oZ)M>jYSki;rI~y zi4kAZVbV{MzBg+70~Q$eV(~1XKWFaN>c><0uqu9k@qS|bw?!W)UrAq^lgBgLc)yho ze{p5y?r>!(`HRG&y;kQxP?HkoR?}+k>n;;1 zQ~sY#4phjVDB2t|`)6YrHqlJ_nwE{v)ql7YI?{n{2Jvb4;ol+&E!tei$UcBLWMJ?I zOst&@vZuT{z_#Kd*OYX+5{0=bx)<4 zl{*PXWsR#(Tb8YQd6+#ox{>rj6xv#KHa4ib?iyH=qujvvnr{oVfD91SvE%Y5UNH9Z z4M6vZflpO+6Wg1E`tc(_pbFs;T-!l?U^NXP+-#@)w2An<4cnHug^NEj=9qwGcvEZ0 EM}+x`NB{r; diff --git a/addons/repair/ui/damage_3_ca.paa b/addons/repair/ui/damage_3_ca.paa deleted file mode 100644 index 88bc0b87ab65b4d3b8c4999702edeacfa421d9d6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5625 zcmeHLOK1~O6umQPY=cCDpBfQ0sb-^<+C?G+q!S7$f|8<63>YK^L=dY5K|~ibq9VAk zDrO=0S%@D31yRUCghWLVRN75tBqo;n-)N+z5}M?B?@XSGP-|0RK=NS79CF{i@0@$z zXP%XHbp^I|c7+2C0I=%$Xq%2BflY)NHo{$jjX}Z!K7_XfgCPmuReVl508TFeNGt?+ zh0pYw1QGyxs5T17-|4rG>w47d;im%i`S9oY@X&e8k;LXsrh2leU9An9Ex3j#%iXz@ zwSVtrW@T5M^3WR5pVwZLP|RzUH!gWLfIput+~9Z^z@59DvxSNsy8X68s_yUhrTd1z z@)*wukH@iD`B{d1m!x*D=6qSpr*6Rl@Tl_8<+YIp#t1#gI4sLD$JZ;zE2P(CnCuf| z-x9Ihgju@3XeRm{;eLqk;SD41Eu*C zFC2~Znw@`t{$si{k=EpVeZA3 zcuXMs?x-x!H2(kI-$7S_bjfJ6TFdnJ{>|E~W2KT_w(TB4gl5fMYGg$!%l3$*a`Q>c zvRNw*uqXT1l0Armr&(j8R}{ws9jj7=JNQ@QZGt9{00J7GxP0*sjII0(&^@T*qh-y& v*2aK#aNi0vAv}n4JD~L~r7naUt+bvtke>Ho!#tO8ZY5*8#$f^8)ava!7|xbb diff --git a/addons/repair/ui/damage_4_ca.paa b/addons/repair/ui/damage_4_ca.paa deleted file mode 100644 index 24584de084ad68182bc521982637110b08ae0072..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5625 zcmeHLO=uHQ5T4x_ZIEd2r$$6gT6?lmdq{+Ubc2#2D2eFSfI(uc2*qka5YfY~SP(o| z6?+i;IVh-sf+*x5LZTHBRO&@piHW8DAHwjT;+HWz?-|7bA*d6hW@rgs$uWug}bIb zeUxW}`{UTE{4B$Gm!$Trj!&L&N!G`Y!9VKxM)MH_ z$B+D18sB961@aiY@?{bElcc!i`S%YEetsL;-$?c7Z1DB+`BVMl^1aUSbonUT>+lb? z3_or;usM7@{;Bf8<3)QAS5Np1 zdzpA_S@QJS?2S&t->A;5Ti>tp^T?Zgkl2n#Am_uID-OJS+OeJTC9ZlVWBoGrq^FbW z7htxDmD^4e56a#g8##NylO=ui&^FndT-=x~+xs;?wSvW#&eUHrD~N4VGdc2MhCN<#?S?X;iHAU^NFhIt<0%nHWVe}V;gQ)|d~(D|Wp diff --git a/addons/repair/ui/damage_5_ca.paa b/addons/repair/ui/damage_5_ca.paa deleted file mode 100644 index 41a7e5b42d1588c1d3917025773ea7fe7c2b42fe..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5625 zcmeHLU1$?o6h1R!v_YalYmJDSwDxH$wGW99STaFK5tKx9YQP{dvIt_eAc*M0jPyb9 zVY`2QSnvnTgAyo+LLNj&G$4XXeNjeYVyU`6AehpigigGkGn2bYpw_06;*tZGnJ;tZ z{Cwx!J2%(H`ul@>xAzYOmjJ-p-=}*`91ZRw%uopT2X}@D3pfbx35CKk-fK9{IRSod z2N+!g@EphdLj_>1|{RgNbBJcSztd$;%hcc z`Tg{&$DCV2**Ye?; zTxZ-JH&&Csfmn2i=iID(>;3tQ|747rjM>i)yCCrV=gOzi=l-HPb(p(j>e;Io;GD!Uku-wAxEr*3C6i!EOSsK{mw1&dB>}Iu$d8q?1`depW8p1&an5(NMF;k@rC*imqN#SX`6xk z+q{axTxd~po*?@G;+ToS=eMwSI$Ta(_Ghh7**5W V^ET{Q29B_)IKCaKsrH45tKx9YQV6>6cLuK78aJG4>RI} z;Dc4M4}w1reNX}gQOJV`i3UVasV^=g*rYd(KR*N}$%JlA`3oF!PZ! z=R4;+=ia%wHrCe{*tesvKd=M<)()4tO&kgACd_aU?hEV+5*F|xyf+vO$@r|{b;=2F zW;MX*8i0TCn%|H?20#zBL4^F7?k(KXqty?e6==!dS*!;?r3W|N1y2KMa0 zHALOy$t7*$e_mmdG3HX9ZV~-?{T~CxoT_Bp%5ngIK3lxT@g#sJcQa=Xm3vM5{ll8+ z@8;#ZmcQyWuL$Skc(LlU5%XQ2JiM9b%R1hK1qlG-cYEy;YG6g!VPq;Z6l4ugRSFf- zYc@>wDKhVfNY`Ph=`R{f1M)etw>CVh*Mm&C7IbeG_7(2Or+;5DL-iW2OMJ2%TlD(-3X|_%1dn!6KRPWF_sz=RV%2()p|ET-YUE&*xMEjdv?|MF5kK)IZ2eY&uZBjAg4%iB7&aS}t z+#uP#JpcLX!Sh9b5YtY3O@HZFbYtS&_Uw&8lW)4py*F>YtIwZf{yp*}?#B<{Cy?vm z$(1KwKKbJS)l1y+RKfmb?D5DT^)JA33#+#s7M@f*Iaa!G*_|bOZFs-pNv!M2*8F{$ zFX!X@=yg%n{}#WcKuiBt|M9s%_aCJn+~5YF69#MiC}B4{-cS*@`5)rXGbQ{Rqj+u1 z)w7Lan5qo4jf+@r*O(Nm;bR&A+B>ort7*$V8pfZ@(Wt(z)PoeOUd3(ZK$~3>MLyYP z+g7+zYEfmCUb2s+HLXV9a9g@k<^Nb^#2|m7DB0)cXQdSTxQy&IEgf4Zf2bHd(v8~; z($nTu6y`#YlJhU}4hj%wCf&Y87pI3N<9%-m8 Xq~{&jxymh^|BbOs30C7ttvUV&%!a`o diff --git a/addons/repair/ui/damage_7_ca.paa b/addons/repair/ui/damage_7_ca.paa deleted file mode 100644 index 087359e3244761b1df1eefa90d84dedc8d87c7f2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5625 zcmeHLO=uHQ5T4yM+91*3PmPGWsrF>0^^gbw=>{Q1P!iFt0fWSV2x4nN5YfY~R1iE^ z6?+i;Ie1V41yRUBgpC$NP^lMXB_@{Q|HWvFC2i8@%x<1apw_06qU6D{`(c`8Lyj_c6`%cl*kH%U^Mn zSA_F%JXiHuje1um53J{US>wmBU;{vXlGkCw99R*`<1ju+L6)$DnDR9hCVQRC8zZ)x zFwgWCjimtjoasBOUY6&BOnENoTrKPyei$F!yKs`~)#q(;@+fAi_fPZT8(vX(Fj!bZ zd>zq9H`iP(z2$uV><7Itp;JFgPKO|H{nP2G^u9l0w97kd(?yj79e z=A-0K_YJpwdD3$EKJj%&q8-()cR3%fNAVNMeQ8>c)~Kks5n5r{xrJ08usOV3|4j42 z^`bwBX=l8qzf>%`I&pq;`c|jOH(KQ0tGC{j>*tuik35No@jdto<5}iQWSF6GfY2dVV&dv$6SPuW6~+Z23dEU{?!nGbo>Suc9z~ zd4kP#g!}`D{U!#V-@@AQP;SxXm$*$J`*2iIX3PJ-KkuSXf%K8l8kM$b`ST6Nyq-dV z+IFC|Nf4pI@D%2=JhtUPYed$#`IK$hVB`ncqrPtA z&z8Ek<#mZ~UXN<|@1A@dnK`oNJH>0r)nr?;e@oQIJ-MmyaJ;ad_&P(u-mm0LI z^{=oeGnFXJCMcf;o0a3{da>Mi|3ME=M*h;pzRASb8y3at`;X2)9i;dR9A{ne_?|@rh!%>hX6^PJDjv>uJXRIBZR>p_Pumd$Rq@v)1dQ#Mc`Pbyhq6I3GpM#*e0G zK5CG0)HOmIY`C+4sDHH-krMBt?|ti=d4$4{OkJb>yb0| zIC2=5Kw7Uz4`(_*{^7;(!xS&R<)wuA%h>b5Zo&YoOIW^dE8z*rnP$^hZwM*EO5Y*L z8QavHD%<md z@88?$D3A^rOJzQxD#P{as)0gbnEsC1nm8WnRcE1=tg8{53$qf1lGc!xvU|Oqv+X<63vtz1cMl!z#ryMoe}3P0&e=KN z*(cZ4SuUQgYqaDdgyQk|@dUnPX&_j}jo>=VSu4Rh{1SY@YCUhp-){VN7b0~35JC?Q zBlH2kJ8NcSMhII-HR2Gy$=}^#qmQ>=W?NUOz903J%F$Aa)%^L9+qC8-;t4+3-pTN7 z=Nw?*n5~!*tly=jhzR^}5IJS|0j$PfM!G`sfIK4caT zlBH5PF&z@)SsUW*;d@dc#8X2so4=IC8(w*xpyc@XMP1^QNty(#b$n|6jlw*)7;_8( zUszSU#YRCECkC5>ps(g%>;6h)>nXSOmIL1sLGo?{T8jaz<)cK9<3&ddVUVvx^}U|BpX8LNLFT`N;P1%aoroUM0@dezxl?<5l8p=btG*WxPt9seP^W z@%~5lt6W&$MuBfR@%1BtiSv&#UL`IOMh0HGqT?W+w0DQ@r&`CS=HDo@*Q%^-6~JE^ z-%hbn=#oPC2n_br{A=Cc9}RFD_y`PqYh+vR6I;(~ih~7~AU^T}t_?Li?rz4iZKk~b zGac{#s7ai~M_`cGIzBc3j4;h@;3F{b&Ak3`iL>|!4EEIgYu#`3vD{JqDji?s$Hniu zj@EOk{QS81UDH$fBHu6*e4d^!s`@E`?dGctl_5lK7?SNzY6cJAQp-DNS#NfCNkOkf z%M!Dj?O5(~EQ7wmGs1))?p@i=csjXN)=>-g+1OyRhQ$9M%&TLugNYh4g&EH?=Ug|F z9tM^8Qr$G|N^DS+HI2S?PKWs5btEjOT3-k?yx*8~L+<$#2)_Nn| e|Dq}Q=oFm|x%d|q=d=FGxtkMtD|GKqdixD#!sg5X diff --git a/addons/repair/ui/repair_1_ca.paa b/addons/repair/ui/repair_1_ca.paa deleted file mode 100644 index bb6d85eca98cf7710d3a0c2efd9b6733ca4b89d3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5625 zcmeHLUr1YL6#rtpwquKNEFllAC{)%G#yX{mLXlh<#5vY^VfQY5$jEA;w%bhZlTU`k z!sy$gjxoj{~9k5@?pH{FG^KP6ip^8WT=6zH8AXQ zmeedOe}%+-TL~D3`BS1umdG3AWvz-~tKC-AvF!W;!+wpoZu-OdRW*nD27zExs~X`# z>;y8?pAt(QUdS&3wQkyTk7N3M#2$~wbiSGVy&j*;PpG-o2-vTo{=wcX)f?zK^QUuK zk}l6C`xXcFBREcoJ<~e_*n5@n6QYHBv-t$gqW8f5fF%8rkLB*i^t;Fp+vnM9{VSF4 zPAx}r-pC2mKNys?;;GW;D*X;32u#=M4Yb?3L=b*YicvHPqBK(nRS7K4CT|aX2rA6eQ&a_)a^43UE9=-&Nv|s1D()G>kuT=g)pMPk- z;h}QxgM;qBO7%PR|DpeJ2mY_|5BU%CRW;^6Fq3zuk{7h`>#Uwp20{U|_-{+!jNXZ9 zKFojC_RO>)?<&iuAg`1H4{H8%|LX18yr=4@za~TdTj(mv`P*#Vof?cT_;Qa?p55j- z@b%wh{+@~@FxIOj4rze1^g7*A zS-eP6K%C6`a5_*!}>Q_QwUjs<~M6$*y(f?rm)iQ_$I;uCrLtUX|MH@KB)L z@^2$)Bm}=O7*tNIYb<%;Y%&aeoJti%mihRgK9|s0TfzbHac|F){_qnV7l2%2H|rO_ zj4mLyT5T1#?JZ;8$htRtmdTf8MVJ`H9ui2UTtEtI@4gjaFDDdDS{ z;9~m${wUhGUHf**|6i{U`~Q!$`XcS`IeC7P*((U4K&=9s?_2X3_GhLI{@qKPr@l{K z`~yM|1-1mFk8xFm&yma$vWIS4`Ihw!i1A1;XhKa&@ap*#qG zg^$DGOBkO8jPnPFuRqK_JFxS2V>CK{%f{jn!rwIh>+n-xskkT|i{^Aq-%L0K*<7Q? z9aCa+`qihCZ|grJKI3qievRUW{o!ZH$TL(s$n!imY#&&>9c5~HESA!O<-(L3fyqfD zo51uSHw=?+8`%J+n`VRN^lz&FQr{!gSDbPjZ(gQ1re5#6gV^bEoOwR%kCLPKS=2I~ zymZ?8(bvc(2r_RO|NNWzPtSqc8s#{f1;(#@yV3J8VqO*m%lHo;%zf29kJw`4xN3N# V!hUvLdG`~g=IKxPw*$yn?QiL3ZX5sr diff --git a/addons/repair/ui/repair_2_ca.paa b/addons/repair/ui/repair_2_ca.paa deleted file mode 100644 index e5ed37905ab6037d20114042adfad4846014b216..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5625 zcmeHLUr1YL6#uUA+LkTGv4lLdqEJ~yx^I)V7<+ee%hW zSQvd<)H22x!-qWxvy2W(`nXFw+Je+>*8jTgVTom~G!d6-Xl}lp^Ia2IAzZuEDZ|6P z_S3az`0H-F^x&1w!1>{*D(h2RGvPz1}VX zo}+MIt|8fu7{05a2`60Qa>oG$^jtlM%ABKjS~E|<%c-%S2?k5A?&Qn|+=X1^pUN>7&Rb##sS z(=jc}=V#-+iv#*Tw1*H|re_AQ`x2W^NIKAy&BtgKy$AODW%=iPBzGsG-=ee=_s_N6 z`j;!eDX|>NxkHChe??K#g;RBrHqvi_o)HC+Bw7jR$ICHZ8yI}e1i?X;RZ^t zPyrTeO=e@cs?b5y-yi7L%!F3QJ(DR~4w=q5h>Fy80XHFU!-8o|#C^9F)9>Gf>T)pS>G8yom#8z*#y% zH&QHKWZ5rGmSMR)>+`Cl+Va=*FAR(&K$#HK$ee>jfNL4 z*Ro^ATdl=?!x;rz@pr4(@l0D&tz~WbCn2_;KOlcGqxUB2<8sUkPti*iYYucR$gp9{q@a+kuSL{sxcX9I^la diff --git a/addons/repair/ui/repair_3_ca.paa b/addons/repair/ui/repair_3_ca.paa deleted file mode 100644 index 24940192f4088a534cdd7034d30d44f5ac43efd0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5625 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 diff --git a/addons/repair/ui/repair_7_ca.paa b/addons/repair/ui/repair_7_ca.paa deleted file mode 100644 index 4cf28c97e42f7663c7b5a1a20fba6e8cc2ff2e4d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5625 zcmeHLZ)jUp6u+n56}YC=A2rGXVUia1-Av@l9u6;dnCKJY!W4^QG+SU0uF`_xYj zNe8lTrmcvG$UgX?V25lV*+(CnY=g2+yZ&$04<;Sdv82?jP4<%OIrlXI2jQ(|wMBY( zA@9dM_uO;tIp>{wE>AlGvY}TZr9mx9NN{`8z#6RhUfa4@1m;P+#fG(tHD5 z2X}z|GqQYcF5bU1ls|x&5L>2i7O>|6<0m8?=*t#jG>hH?`~9-~OCh4)isWyw`3{GB zr}eK?ep6y4q5w@Boz(V{&32o`C#^1IUY&FrsK z{$8KIZ@=N8a^Hi!?!QX)+xP#z|8WQYukjD{59?Jm);};)XiCJ-q$e)1^Ncna@SDYd zTk=ZydL-?|`e$j+%oy@6uzCveN+ocw*1x7-Jv|#YQ+d=sttyI{y=LQ0iJ|bKSHFky zY*zQ4KmSb?Zl>@EjQT2Y0EY7~_0qN95zF$7qi;4+HxEZ%#2GlvotwKIImn{f@P@&la$=q1@iQmmLFnULIZablAv%X*I@FCw;BtQEKIE#schx+i#&$yZfPoE*a*63CU~GqT)$#}k8`V^|Exa?AKw zc=2LAOEcbTE$tg}6m7--r^SvZ+L~G|Yb!hovGx1`QLNSI`pZA&x7rq-ckFQ6LdkQ( z_!Re>5}~RQ9=0FgkD`rFYu|SH|LgT(|Nl`|pQi&oM^8^Ndqpweuhn4ly=z{>{>+TQ z|Ln@K zXT0|i%7gINgeW9m%(xaX@(+@4AjqyASpHoe3ol%?vUr5>H;w-~yb3HGE=p<9oUG}e z4JM$PzmYp^pO%`FuRNG~JAW7P3A@wuHi{qd1s}&lk5O$!5Cne2Hn?;x%+zvoTxr2_ zVakufgZy)u1j95@bk(>D8gZZ!8 e7Z7t+p09>4D(q+1`FB6jY99QAtJ#5!)&2(jy9JE^ diff --git a/addons/repair/ui/repair_8_ca.paa b/addons/repair/ui/repair_8_ca.paa deleted file mode 100644 index 1db3809543e0347a0c8047cb0098ddbfe8cdbed2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5625 zcmeHLU1%Fe5Z<$VPD*>0n@Z>*F*d|B!IY*pk!%P?X9{v%np)7iDi2qbI1ndoE!~r! zEF=d?-Xhzjlu}9_`rrqLl0Z=&d&DIPn7FND`M>EyB?sIP$+(J7Sf}gEo+M~MoE=A1 zC>~DSecIXCncbP4on`f&o^IjYo{zh02_c6L<=&$BO!sNTIuPQX?hibO8TcXo$m8kb z;X4AqD-DEPwGr}_osd=d?T&cD69N(ngaa18@%`L*m5{TMn!iDsN|dxr*2!p-zR^Un z!(LLeto(HnajQ|(MkRBCKvu~+qo{h+=ykkz#&eUq-I zJuZqD7h;1eBiaG9hY)LKU>>mRGUX>E?H|bIqk5LEo+|i6@wa?9cQ>p}73R-bY5n&q zzcsNI%(;R`QC~@t)9^M(MSC%>c86ONZf$C!aS`P?ot(AM`}yOuAfQt5A&}nDmfrCe zUB9}`!&sfkY&2IFJdFDL{KJZw{hdjD^T4s!R**lQ>9Ppqz44+v+yskMDg7%g-^~6> zk6&&1`}P-Bpv-zy5Rv{-^#A`496|E#^P4lW$GL&ZVcXLAoNUGVJ%6 z`G05fM(B1p?M8k}S0--AyG-*b$SbA5mo@*j{_g7Ex|7mS|FkSgX7-x3wdx>`w#E z>eqBNMg2t-eZp+som+q-F!DQhP(KuQm#Uo)JGN$0`L$pI^%bB1+I#&I&Mmk#JU6O# zD1fSMpXvCky!AM#gZU?_oK^@~hvGNOP;9q5irvev&pH&ps)h0k!W>lgCmI+Fts7L% z3Lgb}QSskQnhC)h27}6pbxg+2or(pZj)QGXk!3zIqAf->T9&Xte8koNXejUq+r2=J z$s3I;Ux$_vTP)n3%l7t3S8&r6I7Q{lvf`bYz#0;Ws9Z)A`|i7<5OWmEeo<_noCqyn zX{2Gsa$ITNC`Zv)c<&V3pDAnVm8>=YG)Twu`MutHMc;hmC#_Jnu&lkpWs6Q;8O5hK z-#X!ITHry9>rpgur}piZ|Gyp|=Ko)5^;LbS|Ja#XYOmMp_th&f`R)z3VSgrW@V~gU zdHjdi`9Hx0Q9ii8x9>j8Y*?oLEs7b=I|KNh(JqR9xqb3xXc1fx`N947ydDnl|G#4A z52HMAe}#`g@I{Sl0VDn(_=W=X+JVO3^@-5ZO^*5_xWB3YH{exZ>2OgBi?(Fl;CvuK zv-uI*oYaBbRTBNpz|#w8$kCiGq-I^K1_Ko4E~DaOLMj(ZEO1Vxwi*zBX&A$C!g(qkQ~Ho zQD!=J;e_kcZ*_eNb~Bl0roa4d>5J2#_7p@H$3Xj~@1OR6hM1SVUS|5oPZq!FT0+cl aEL#gZD$Hl^r4K(>>K^}$f7^hJ(f$GSKDqV) From 0ae93aa2e71112a487a552a0310cfca5244eec5f Mon Sep 17 00:00:00 2001 From: BaerMitUmlaut Date: Fri, 1 Jun 2018 01:13:17 +0200 Subject: [PATCH 142/235] Hide "Activate Mine" action (#6353) --- addons/explosives/config.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/addons/explosives/config.cpp b/addons/explosives/config.cpp index 57bcdfd204..a35137733e 100644 --- a/addons/explosives/config.cpp +++ b/addons/explosives/config.cpp @@ -31,6 +31,9 @@ class CfgPatches { class CfgActions { class None; + class ActivateMine: None { + show = 0; + }; class Deactivate:None { show = 0; }; From f5cd682ce39d14953ea9c48d65ac89ce7cec23f0 Mon Sep 17 00:00:00 2001 From: Dedmen Miller Date: Fri, 1 Jun 2018 03:46:48 +0200 Subject: [PATCH 143/235] Arsenal - Add magazineWell support (#6355) * ACE Arsenal magazineWell support * Fix case sensitivity problems as --- .../arsenal/functions/fnc_fillRightPanel.sqf | 18 +++++++------- addons/arsenal/functions/fnc_scanConfig.sqf | 24 ++++++++++++------- 2 files changed, 25 insertions(+), 17 deletions(-) diff --git a/addons/arsenal/functions/fnc_fillRightPanel.sqf b/addons/arsenal/functions/fnc_fillRightPanel.sqf index 449b616e52..e3d730f859 100644 --- a/addons/arsenal/functions/fnc_fillRightPanel.sqf +++ b/addons/arsenal/functions/fnc_fillRightPanel.sqf @@ -80,15 +80,17 @@ private _compatibleMagazines = [[[], []], [[], []], [[], []]]; { private _subIndex = _forEachIndex; { - // Magazine group - if !(isClass (configFile >> "CfgMagazines" >> _x)) then { - private _magazineGroups = uiNamespace getVariable [QGVAR(magazineGroups),["#CBA_HASH#",[],[],[]]]; - private _magArray = [_magazineGroups, _x] call CBA_fnc_hashGet; - {((_compatibleMagazines select _index) select _subIndex) pushBackUnique _x} forEach _magArray; - } else { - ((_compatibleMagazines select _index) select _subIndex) pushBackUnique (configName (configFile >> "CfgMagazines" >> _x)) - } + ((_compatibleMagazines select _index) select _subIndex) pushBackUnique (configName (configFile >> "CfgMagazines" >> _x)) } foreach ([getArray (_weaponConfig >> _x >> "magazines"), getArray (_weaponConfig >> "magazines")] select (_x == "this")); + + // Magazine groups + { + private _magazineGroups = uiNamespace getVariable [QGVAR(magazineGroups),["#CBA_HASH#",[],[],[]]]; + private _magArray = [_magazineGroups, toLower _x] call CBA_fnc_hashGet; + {((_compatibleMagazines select _index) select _subIndex) pushBackUnique _x} forEach _magArray; + } foreach ([getArray (_weaponConfig >> _x >> "magazineWell"), getArray (_weaponConfig >> "magazineWell")] select (_x == "this")); + + } foreach getArray (_weaponConfig >> "muzzles"); }; } foreach [primaryWeapon GVAR(center), handgunWeapon GVAR(center), secondaryWeapon GVAR(center)]; diff --git a/addons/arsenal/functions/fnc_scanConfig.sqf b/addons/arsenal/functions/fnc_scanConfig.sqf index c7457ae4ec..bf0c95248f 100644 --- a/addons/arsenal/functions/fnc_scanConfig.sqf +++ b/addons/arsenal/functions/fnc_scanConfig.sqf @@ -34,7 +34,6 @@ private _cargo = [ ]; private _configCfgWeapons = configFile >> "CfgWeapons"; //Save this lookup in variable for perf improvement -private _magazineGroups = [[],[]] call CBA_fnc_hashCreate; { private _configItemInfo = _x >> "ItemInfo"; @@ -158,14 +157,6 @@ private _putList = []; (_cargo select 16) pushBackUnique _className; }; }; - - if (isArray (_x >> "magazineGroup")) then { - { - private _entry = [_magazineGroups, _x] call CBA_fnc_hashGet; - _entry pushBackUnique _className; - [_magazineGroups, _x, _entry] call CBA_fnc_hashSet; - } forEach getArray (_x >> "magazineGroup") - }; } foreach configProperties [(configFile >> "CfgMagazines"), "isClass _x && {(if (isNumber (_x >> 'scopeArsenal')) then {getNumber (_x >> 'scopeArsenal')} else {getNumber (_x >> 'scope')}) == 2} && {getNumber (_x >> 'ace_arsenal_hide') != 1}", true]; { @@ -178,5 +169,20 @@ private _putList = []; (_cargo select 7) pushBackUnique (configName _x); } foreach configProperties [(configFile >> "CfgGlasses"), "isClass _x && {(if (isNumber (_x >> 'scopeArsenal')) then {getNumber (_x >> 'scopeArsenal')} else {getNumber (_x >> 'scope')}) == 2} && {getNumber (_x >> 'ace_arsenal_hide') != 1}", true]; +private _magazineGroups = [[],[]] call CBA_fnc_hashCreate; + +private _cfgMagazines = configFile >> "CfgMagazines"; + +{ + private _magList = []; + { + private _magazines = (getArray _x) select {isClass (_cfgMagazines >> _x)}; //filter out non-existent magazines + _magazines = _magazines apply {configName (_cfgMagazines >> _x)}; //Make sure classname case is correct + _magList append _magazines; + } foreach configProperties [_x, "isArray _x", true]; + + [_magazineGroups, toLower configName _x, _magList arrayIntersect _magList] call CBA_fnc_hashSet; +} foreach configProperties [(configFile >> "CfgMagazineWells"), "isClass _x", true]; + uiNamespace setVariable [QGVAR(configItems), _cargo]; uiNamespace setVariable [QGVAR(magazineGroups), _magazineGroups]; From 93e187e3ecfeb7bb4d8172ec42ab7bb67ad6fd98 Mon Sep 17 00:00:00 2001 From: xrufix Date: Fri, 1 Jun 2018 03:52:45 +0200 Subject: [PATCH 144/235] Added hearing config for CSAT, Stealth and Racing Helmets (#6300) Hearing - Added config for CSAT, Stealth and Racing Helmets --- addons/hearing/CfgWeapons.hpp | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/addons/hearing/CfgWeapons.hpp b/addons/hearing/CfgWeapons.hpp index 6920e2691b..5328ff8e9d 100644 --- a/addons/hearing/CfgWeapons.hpp +++ b/addons/hearing/CfgWeapons.hpp @@ -68,8 +68,24 @@ class CfgWeapons { HEARING_PROTECTION_PELTOR }; + class H_HelmetB_TI_tna_F: H_HelmetB { + HEARING_PROTECTION_PELTOR + }; + class H_Tank_base_F; class H_Tank_black_F: H_Tank_base_F { HEARING_PROTECTION_VICCREW }; + + class H_RacingHelmet_1_F: H_HelmetB_camo { + HEARING_PROTECTION_VICCREW + }; + + class H_HelmetO_ocamo: H_HelmetB { + HEARING_PROTECTION_PELTOR + }; // Defender and Assasin Helmet inherit. + + class H_HelmetO_ViperSP_hex_f: H_HelmetB { + HEARING_PROTECTION_PELTOR + }; }; From d4767eba73c837b3b088579b4bfcd69d268ac0e4 Mon Sep 17 00:00:00 2001 From: mharis001 <34453221+mharis001@users.noreply.github.com> Date: Thu, 31 May 2018 22:17:30 -0400 Subject: [PATCH 145/235] Zeus - Add ability to unload cargo (#6226) * Add ability to unload cargo * Handle array index being out of bounds --- .../zeus/functions/fnc_ui_attributeCargo.sqf | 68 +++++++++++++++++-- addons/zeus/stringtable.xml | 5 +- addons/zeus/ui/RscAttributes.hpp | 13 +++- 3 files changed, 78 insertions(+), 8 deletions(-) diff --git a/addons/zeus/functions/fnc_ui_attributeCargo.sqf b/addons/zeus/functions/fnc_ui_attributeCargo.sqf index aa4ed00090..e973e0df76 100644 --- a/addons/zeus/functions/fnc_ui_attributeCargo.sqf +++ b/addons/zeus/functions/fnc_ui_attributeCargo.sqf @@ -1,6 +1,6 @@ /* * Author: PabstMirror, mharis001 - * Initalises the ace_cargo attribute of the zeus vehicle attributes display + * Initializes the ace_cargo attribute of the zeus vehicle attributes display. * (the display shown on double click) * * Arguments: @@ -19,14 +19,15 @@ params ["_control"]; TRACE_1("params",_control); -private _veh = GETMVAR(BIS_fnc_initCuratorAttributes_target,objNull); -TRACE_1("",_veh); +private _vehicle = GETMVAR(BIS_fnc_initCuratorAttributes_target,objNull); +TRACE_1("",_vehicle); -private _loaded = _veh getVariable [QEGVAR(cargo,loaded), []]; +private _loaded = _vehicle getVariable [QEGVAR(cargo,loaded), []]; TRACE_1("",_loaded); -_control ctrlRemoveAllEventHandlers "setFocus"; +_control ctrlRemoveAllEventHandlers "SetFocus"; +// Init cargo list private _listbox = _control controlsGroupCtrl 80086; { @@ -34,3 +35,60 @@ private _listbox = _control controlsGroupCtrl 80086; private _displayName = getText (configFile >> "CfgVehicles" >> _class >> "displayName"); _listbox lbAdd _displayName; } forEach _loaded; + +// Init unload button +private _button = _control controlsGroupCtrl 80087; + +private _fnc_onButtonUnload = { + params ["_button"]; + + // Validate vehicle + private _vehicle = GETMVAR(BIS_fnc_initCuratorAttributes_target,objNull); + if (isNull _vehicle || {!alive _vehicle}) exitWith { + LOG("Vehicle deleted or killed, cannot unload"); + }; + + // Handle selection + private _index = lbCurSel ((ctrlParent _button) displayCtrl 80086); + private _cargoArray = _vehicle getVariable [QEGVAR(cargo,loaded), []]; + if ((_index < 0) || {_index >= (count _cargoArray)}) exitWith { + [LSTRING(SelectCargo)] call FUNC(showMessage); + }; + + // Unload selected cargo + private _item = _cargoArray select _index; + private _class = if (_item isEqualType "") then {_item} else {typeOf _item}; + private _itemName = getText (configFile >> "CfgVehicles" >> _class >> "displayName"); + if ([_item, _vehicle] call EFUNC(cargo,unloadItem)) then { + private _vehicleName = getText (configFile >> "CfgVehicles" >> typeOf _vehicle >> "displayName"); + private _message = [localize ELSTRING(cargo,UnloadedItem), "
", " "] call CBA_fnc_replace; + [_message, _itemName, _vehicleName] call FUNC(showMessage); + } else { + private _message = [localize ELSTRING(cargo,UnloadingFailed), "
", " "] call CBA_fnc_replace; + [_message, _itemName] call FUNC(showMessage); + }; +}; + +_button ctrlAddEventHandler ["ButtonClick", _fnc_onButtonUnload]; + +// Add PFH to update cargo list +[{ + params ["_args", "_pfhID"]; + _args params ["_vehicle", "_listbox"]; + + // Display closed or vehicle deleted + if (isNull _listbox || {isNull _vehicle || {!alive _vehicle}}) exitWith { + [_pfhID] call CBA_fnc_removePerFrameHandler; + LOG("Display closed or vehicle deleted, PFH removed"); + }; + + // Update cargo list + private _loaded = _vehicle getVariable [QEGVAR(cargo,loaded), []]; + + lbClear _listbox; + { + private _class = if (_x isEqualType "") then {_x} else {typeOf _x}; + private _displayName = getText (configFile >> "CfgVehicles" >> _class >> "displayName"); + _listbox lbAdd _displayName; + } forEach _loaded; +}, 0.25, [_vehicle, _listbox]] call CBA_fnc_addPerFrameHandler; diff --git a/addons/zeus/stringtable.xml b/addons/zeus/stringtable.xml index 7be670ec00..df2c1e6364 100644 --- a/addons/zeus/stringtable.xml +++ b/addons/zeus/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -961,6 +961,9 @@ 货物: 貨物: + + Select cargo to unload + Task Radius Rayon de la tâche diff --git a/addons/zeus/ui/RscAttributes.hpp b/addons/zeus/ui/RscAttributes.hpp index 8af743b897..24114623d5 100644 --- a/addons/zeus/ui/RscAttributes.hpp +++ b/addons/zeus/ui/RscAttributes.hpp @@ -10,6 +10,7 @@ class RscActivePicture; class RscMapControl; class RscPicture; class ctrlToolbox; +class RscButton; class RscDisplayAttributes { class Controls { @@ -430,7 +431,7 @@ class GVAR(AttributeCargo): RscControlsGroupNoScrollbars { x = 0; y = 0; w = W_PART(10); - h = H_PART(3); + h = H_PART(2); colorBackground[] = {0,0,0,0.5}; }; class Background: RscText { @@ -448,7 +449,15 @@ class GVAR(AttributeCargo): RscControlsGroupNoScrollbars { w = W_PART(16); h = H_PART(3); }; - + class Unload: RscButton { + idc = 80087; + text = ECSTRING(cargo,unloadObject); + x = 0; + y = H_PART(2); + w = W_PART(10); + h = H_PART(1); + colorBackground[] = {0, 0, 0, 0.7}; + }; }; }; From dc3a9fcccaa4e3c8300ce961a8ddba144c9fc966 Mon Sep 17 00:00:00 2001 From: xrufix Date: Fri, 1 Jun 2018 04:18:47 +0200 Subject: [PATCH 146/235] Fix Mavericks and KH25ML diving into the ground. (#6315) * Fix issue with missiles diving into the ground before reaching the target * More modest steering deflection for Maverick and Kh25ML --- addons/maverick/CfgAmmo.hpp | 12 ++++++------ .../functions/fnc_attackProfile_LIN.sqf | 11 +++-------- 2 files changed, 9 insertions(+), 14 deletions(-) diff --git a/addons/maverick/CfgAmmo.hpp b/addons/maverick/CfgAmmo.hpp index 27d96d7573..2b48618e82 100644 --- a/addons/maverick/CfgAmmo.hpp +++ b/addons/maverick/CfgAmmo.hpp @@ -16,9 +16,9 @@ class CfgAmmo { class ace_missileguidance { enabled = 1; - minDeflection = 0.0005; - maxDeflection = 0.01; - incDeflection = 0.005; + minDeflection = 0; + maxDeflection = 0.002; + incDeflection = 0.001; canVanillaLock = 0; @@ -49,9 +49,9 @@ class CfgAmmo { class ace_missileguidance { enabled = 1; - minDeflection = 0.0005; - maxDeflection = 0.01; - incDeflection = 0.005; + minDeflection = 0; + maxDeflection = 0.002; + incDeflection = 0.001; canVanillaLock = 0; diff --git a/addons/missileguidance/functions/fnc_attackProfile_LIN.sqf b/addons/missileguidance/functions/fnc_attackProfile_LIN.sqf index de8061a27c..2d25340622 100644 --- a/addons/missileguidance/functions/fnc_attackProfile_LIN.sqf +++ b/addons/missileguidance/functions/fnc_attackProfile_LIN.sqf @@ -48,15 +48,10 @@ if ((((ASLtoAGL _projectilePos) select 2) < 5) && {_distanceToShooter < 15}) the }; }; -// Handle arcing terminal low for high decent (when projectile above target) +// Projectile above target if ((_projectilePos select 2) > (_seekerTargetPos select 2)) then { - if (_distanceToTarget < 100) then { - _addHeight = _addHeight vectorDiff [0,0, ((_projectilePos select 2) - (_seekerTargetPos select 2)) * 0.5]; - TRACE_1("above - close",_addHeight); - } else { - TRACE_1("above - far",_addHeight); - _addHeight = _addHeight vectorAdd [0,0, _distanceToTarget*0.02]; - }; + TRACE_1("above - far",_addHeight); + _addHeight = _addHeight vectorAdd [0,0, _distanceToTarget / 50]; }; private _returnTargetPos = _seekerTargetPos vectorAdd _addHeight; From a4e0e83972e9e40e1cccbdd1491469a46be44d4c Mon Sep 17 00:00:00 2001 From: xrufix Date: Fri, 1 Jun 2018 05:12:24 +0200 Subject: [PATCH 147/235] Realistic names for new assets from Tanks DLC (#6252) * LSV AT variants * Angara > Armata, Nyx > Wiesel 2 * Fix some errors in last to commits * Zamak MRL -> KamAZ MRL * Vorona -> Metis-M * Vehicle Vorona -> Metis-M * Wiesel vehicle weapons * Fix wrong inheritance * Rooikat GT12 cannon * Armata weaponry * MB 4WD -> Jeep Wrangler * Optics Attachments * Fixed Type "Grenn" -> "Green" * Rooikat SPMG -> MG4 * New Marid v2 -> Otokar ARMA * Removed unnecessary inheritance. * Simplify ace_vehicles config --- addons/realisticnames/CfgVehicles.hpp | 82 ++++++++++++- addons/realisticnames/CfgWeapons.hpp | 136 +++++++++++++++++++++ addons/realisticnames/stringtable.xml | 165 ++++++++++++++++++++++++++ addons/vehicles/CfgVehicles.hpp | 50 ++++++++ addons/vehicles/CfgWeapons.hpp | 15 +++ 5 files changed, 447 insertions(+), 1 deletion(-) diff --git a/addons/realisticnames/CfgVehicles.hpp b/addons/realisticnames/CfgVehicles.hpp index 2845e62a9f..9b0ab1b95a 100644 --- a/addons/realisticnames/CfgVehicles.hpp +++ b/addons/realisticnames/CfgVehicles.hpp @@ -186,6 +186,13 @@ class CfgVehicles { class O_APC_Wheeled_02_base_F : APC_Wheeled_02_base_F { displayName = CSTRING(APC_Wheeled_02_rcws_Name); }; + class APC_Wheeled_02_base_v2_F; + class O_APC_Wheeled_02_rcws_v2_F : APC_Wheeled_02_base_v2_F { + displayName = CSTRING(APC_Wheeled_02_rcws_Name); + }; + class O_T_APC_Wheeled_02_rcws_v2_ghex_F : APC_Wheeled_02_base_v2_F { + displayName = CSTRING(APC_Wheeled_02_rcws_Name); + }; class I_APC_Wheeled_03_base_F; class I_APC_Wheeled_03_cannon_F: I_APC_Wheeled_03_base_F { @@ -257,6 +264,10 @@ class CfgVehicles { class I_Truck_02_box_F: Truck_02_box_base_F { displayName = CSTRING(Truck_02_box_Name); }; + class Truck_02_MRL_base_F; + class I_Truck_02_MRL_F: Truck_02_MRL_base_F { + displayName = CSTRING(Truck_02_MRL_Name); + }; class I_Truck_02_medical_F: Truck_02_medical_base_F { displayName = CSTRING(Truck_02_medical_Name); }; @@ -726,13 +737,26 @@ class CfgVehicles { // APEX/Tanoa // Jeep Wrangler - class Offroad_02_unarmed_base_F; + class Offroad_02_base_F; + class Offroad_02_unarmed_base_F : Offroad_02_base_F {}; class C_Offroad_02_unarmed_F: Offroad_02_unarmed_base_F { displayName = CSTRING(C_Offroad_02_unarmed); }; class I_C_Offroad_02_unarmed_F: Offroad_02_unarmed_base_F { displayName = CSTRING(C_Offroad_02_unarmed); }; + class Offroad_02_at_base_F: Offroad_02_base_F { + displayName = CSTRING(C_Offroad_02_at); + }; + class I_C_Offroad_02_at_F: Offroad_02_at_base_F { + displayName = CSTRING(C_Offroad_02_at); + }; + class Offroad_02_lmg_base_F: Offroad_02_base_F { + displayName = CSTRING(C_Offroad_02_lmg); + }; + class I_C_Offroad_02_lmg_F: Offroad_02_lmg_base_F { + displayName = CSTRING(C_Offroad_02_lmg); + }; // Cessna class Plane_Civil_01_base_F; @@ -763,6 +787,9 @@ class CfgVehicles { class LSV_01_light_base_F : LSV_01_base_F { displayName = CSTRING(lsv_01_light); }; + class LSV_01_AT_base_F : LSV_01_base_F { + displayName = CSTRING(lsv_01_at); + }; // Light Strike Vehicle Mk. II (Qilin) class LSV_02_base_F; @@ -772,5 +799,58 @@ class CfgVehicles { class LSV_02_unarmed_base_F : LSV_02_base_F { displayName = CSTRING(lsv_02_unarmed); }; + class LSV_02_AT_base_F : LSV_02_base_F { + displayName = CSTRING(lsv_02_at); + }; + + // Rooikat 120 (Rhino MGS) + class AFV_Wheeled_01_base_F; + class B_AFV_Wheeled_01_cannon_F : AFV_Wheeled_01_base_F { + displayName = CSTRING(afv_wheeled_01); + }; + class B_T_AFV_Wheeled_01_cannon_F : AFV_Wheeled_01_base_F { + displayName = CSTRING(afv_wheeled_01); + }; + class AFV_Wheeled_01_up_base_F; + class B_AFV_Wheeled_01_up_cannon_F : AFV_Wheeled_01_up_base_F { + displayName = CSTRING(afv_wheeled_01_up); + }; + class B_T_AFV_Wheeled_01_up_cannon_F : AFV_Wheeled_01_up_base_F { + displayName = CSTRING(afv_wheeled_01_up); + }; + + // T-14 Armata (T-140 Angara) + class MBT_04_cannon_base_F; + class O_MBT_04_cannon_F : MBT_04_cannon_base_F { + displayName = CSTRING(MBT_04_cannon); + }; + class O_T_MBT_04_cannon_F : MBT_04_cannon_base_F { + displayName = CSTRING(MBT_04_cannon); + }; + class MBT_04_command_base_F; // Keep "K" designation for command variant. + class O_MBT_04_command_F : MBT_04_command_base_F { + displayName = CSTRING(MBT_04_command); + }; + class O_T_MBT_04_command_F : MBT_04_command_base_F { + displayName = CSTRING(MBT_04_command); + }; + + // Wiesel 2 (AWC 302 Nyx) + class LT_01_AA_base_F; + class I_LT_01_AA_F : LT_01_AA_base_F { + displayName = CSTRING(LT_01_AA); + }; + class LT_01_AT_base_F; + class I_LT_01_AT_F : LT_01_AT_base_F { + displayName = CSTRING(LT_01_AT); + }; + class LT_01_cannon_base_F; + class I_LT_01_cannon_F : LT_01_cannon_base_F { + displayName = CSTRING(LT_01_cannon); + }; + class LT_01_scout_base_F; + class I_LT_01_scout_F : LT_01_scout_base_F { + displayName = CSTRING(LT_01_scout); + }; }; diff --git a/addons/realisticnames/CfgWeapons.hpp b/addons/realisticnames/CfgWeapons.hpp index 0e1287c716..6959334fb6 100644 --- a/addons/realisticnames/CfgWeapons.hpp +++ b/addons/realisticnames/CfgWeapons.hpp @@ -192,6 +192,14 @@ class CfgWeapons { displayName = CSTRING(launch_NLAW_Name); }; + class launch_Vorona_base_F; + class launch_O_Vorona_brown_F : launch_Vorona_base_F { + displayName = CSTRING(launch_Vorona_brown); + }; + class launch_O_Vorona_green_F : launch_Vorona_base_F { + displayName = CSTRING(launch_Vorona_green); + }; + // marksmen marksman class DMR_02_base_F: Rifle_Long_Base_F { displayName = CSTRING(DMR_02); //MAR-10 .338; @@ -356,6 +364,9 @@ class CfgWeapons { class Missile_AGM_01_Plane_CAS_02_F: Missile_AGM_02_Plane_CAS_01_F { displayName = "Kh-25MTP"; }; + class missiles_Vorona : MissileLauncher { + displayName = CSTRING(missiles_vorona); + }; // rockets class Rocket_04_HE_Plane_CAS_01_F: RocketPods { @@ -444,6 +455,11 @@ class CfgWeapons { }; }; + class HMG_127_APC : HMG_127 {}; + class ACE_HMG_127_KORD : HMG_127_APC { + displayName = "6P49 Kord"; + }; + class HMG_01: HMG_127 { displayName = "XM312"; }; @@ -487,6 +503,10 @@ class CfgWeapons { displayName = "Mini-Spike"; }; + class missiles_SAAMI : MissileLauncher { + displayName = "FIM-92F"; + }; + // mortar class mortar_155mm_AMOS: CannonCore { displayName = "L/52"; @@ -508,6 +528,10 @@ class CfgWeapons { class player: player {}; }; + class ACE_cannon_120mm_GT12: cannon_120mm { + displayName = "GT12"; + }; + class cannon_105mm: CannonCore { displayName = "M68"; class player: Mode_SemiAuto { @@ -518,6 +542,10 @@ class CfgWeapons { class cannon_125mm: CannonCore { displayName = "2A46"; }; + + class cannon_125mm_advanced : cannon_125mm { + displayName = "2A82-1M"; + }; // coax machine guns class LMG_coax: LMG_RCWS { @@ -533,6 +561,12 @@ class CfgWeapons { class ACE_LMG_coax_L94A1_mem3: LMG_coax { displayName = "L94A1"; }; + class ACE_LMG_coax_ext_MG3: LMG_coax_ext { + displayName = "H&K MG3"; + }; + class ACE_LMG_coax_DenelMG4 : LMG_coax { + displayName = "Denel MG4"; + }; // more autocannons class autocannon_Base_F; @@ -578,6 +612,24 @@ class CfgWeapons { displayName = "L21A1 RARDEN"; }; }; + + class autocannon_30mm_RCWS : autocannon_Base_F { + displayName = "2A42"; + }; + + class cannon_20mm : autocannon_Base_F { + class AP : autocannon_Base_F {}; + class HE : autocannon_Base_F {}; + }; + class ACE_cannon_20mm_Rh202 : cannon_20mm { + displayName = "MK20 Rh 202"; + class AP: AP { + displayName = "MK20 Rh 202"; + }; + class HE: HE { + displayName = "MK20 Rh 202"; + }; + }; //attachments @@ -587,6 +639,90 @@ class CfgWeapons { displayName = "UTG Defender 126"; }; + class optic_hamr : ItemCore { + displayName = CSTRING(optic_hamr); + }; + class optic_Hamr_khk_F : optic_hamr { + displayName = CSTRING(optic_hamr_khk); + }; + + class optic_Arco : ItemCore { + displayName = CSTRING(optic_arco); + }; + class optic_Arco_blk_F : optic_Arco { + displayName = CSTRING(optic_arco_blk); + }; + class optic_Arco_ghex_F : optic_Arco { + displayName = CSTRING(optic_arco_ghex); + }; + + class optic_ERCO_blk_f : optic_Arco { + displayName = CSTRING(optic_erco_blk); + }; + class optic_ERCO_khk_f : optic_ERCO_blk_f { + displayName = CSTRING(optic_erco_khk); + }; + class optic_ERCO_snd_f : optic_ERCO_blk_f { + displayName = CSTRING(optic_erco_snd); + }; + + class optic_LRPS : ItemCore { + displayName = CSTRING(optic_lrps); + }; + class optic_LRPS_ghex_F : optic_LRPS { + displayName = CSTRING(optic_lrps_ghex); + }; + class optic_LRPS_tna_F : optic_LRPS { + displayName = CSTRING(optic_lrps_tna); + }; + + class optic_DMS : ItemCore { + displayName = CSTRING(optic_dms); + }; + class optic_DMS_ghex_F : optic_DMS { + displayName = CSTRING(optic_dms_ghex); + }; + + class optic_holosight : ItemCore { + displayName = CSTRING(optic_holosight); + }; + class optic_Holosight_blk_F : optic_holosight { + displayName = CSTRING(optic_holosight_blk); + }; + class optic_Holosight_khk_F : optic_holosight { + displayName = CSTRING(optic_holosight_khk); + }; + class optic_Holosight_smg : ItemCore { + displayName = CSTRING(optic_holosight_smg); + }; + class optic_Holosight_smg_blk_F : optic_Holosight_smg { + displayName = CSTRING(optic_holosight_smg_blk); + }; + class optic_Holosight_smg_khk_F : optic_Holosight_smg { + displayName = CSTRING(optic_holosight_smg_khk); + }; + + class optic_MRCO : ItemCore { + displayName = CSTRING(optic_MRCO); + }; + + class optic_Yorris : ItemCore { + displayName = CSTRING(optic_Yorris); + }; + + class optic_ACO : ItemCore { + displayName = CSTRING(optic_ACO); + }; + class optic_ACO_grn : ItemCore { + displayName = CSTRING(optic_ACO_grn); + }; + class optic_ACO_smg : ItemCore { + displayName = CSTRING(optic_ACO_smg); + }; + class optic_ACO_grn_smg : ItemCore { + displayName = CSTRING(optic_ACO_grn_smg); + }; + // APEX/Tanoa // QBZ-95 and variants diff --git a/addons/realisticnames/stringtable.xml b/addons/realisticnames/stringtable.xml index e89f674bf1..931f090f0f 100644 --- a/addons/realisticnames/stringtable.xml +++ b/addons/realisticnames/stringtable.xml @@ -657,6 +657,10 @@ "卡瑪斯"卡車 (醫療) "卡玛斯"卡车 (医疗) + + KamAZ MRL + KamAS MRL + Karatel Karatel @@ -1599,6 +1603,24 @@ "迷你長釘"導彈發射器 (反坦克) "迷你长钉"导弹发射器 (反坦克) + + Metis-M + Metis-M + Metis-M + Метис-М + + + Metis-M (Brown) + Metis-M (Braun) + Metis-M (Brun) + Метис-М (Кори́чневый) + + + Metis-M (Green) + Metis-M (Grün) + Metis-M (Verde) + Метис-М (Зелёный) + MX MX @@ -2591,6 +2613,14 @@ "牧馬人"吉普車 "牧马人"吉普车 + + Jeep Wrangler (SPG-9) + Jeep Wrangler (SPG-9) + + + Jeep Wrangler (LMG) + Jeep Wrangler (LMG) + Cessna TTx Cessna TTx @@ -3142,6 +3172,10 @@ "北極星"先進佈署越野車 (XM312重機槍) "北极星"先进布署越野车 (XM312重机枪) + + Polaris DAGOR (Mini-Spike AT) + Polaris DAGOR (Mini-Spike PzAbw) + Polaris DAGOR Polaris DAGOR @@ -3163,6 +3197,10 @@ 輕型突擊車2式 (M134迷你機炮) 轻型突击车2式 (M134迷你机炮) + + LSV Mk. II (Metis-M) + LSV Mk. II (Metis-M) + LSV Mk. II LSV Mk. II @@ -3170,5 +3208,132 @@ 輕型突擊車2式 轻型突击车2式 + + Rooikat 120 + Rooikat 120 + + + Rooikat 120 UP + Rooikat 120 UP + + + T-14 Armata + T-14 Armata + Т-14 Армата + + + T-14K Armata + T-14K Armata + Т-14К Армата + + + Wiesel 2 Ozelot (AA) + Wiesel 2 Ozelot (FlaRaWaTrg) + + + Wiesel 2 (ATGM) + Wiesel 2 (PzAbw) + + + Wiesel 2 (MK20) + Wiesel 2 (MK20) + + + Wiesel 2 RFCV (Radar) + Wiesel 2 AFF (Radar) + + + Leupold Mark 4 HAMR + Leupold Mark 4 HAMR + + + Leupold Mark 4 HAMR (Khaki) + Leupold Mark 4 HAMR (Khaki) + + + ELCAN SpecterOS (Tan) + ELCAN SpecterOS (Beige) + + + ELCAN SpecterOS (Black) + ELCAN SpecterOS (Schwarz) + + + ELCAN SpecterOS (Green Hex) + + + SIG BRAVO4 / ROMEO3 (Black) + SIG BRAVO4 / ROMEO3 (Schwarz) + + + SIG BRAVO4 / ROMEO3 (Khaki) + SIG BRAVO4 / ROMEO3 (Khaki) + + + SIG BRAVO4 / ROMEO3 (Sand) + SIG BRAVO4 / ROMEO3 (Beige) + + + Nightforce NXS + + + Nightforce NXS (Green Hex) + + + Nightforce NXS (Jungle) + Nightforce NXS (Dschungel) + + + Burris XTR II + + + Burris XTR II (Green Hex) + + + EOTech XPS3 (Tan) + EOTech XPS3 (Beige) + + + EOTech XPS3 (Black) + EOTech XPS3 (Schwarz) + + + EOTech XPS3 (Khaki) + EOTech XPS3 (Khaki) + + + EOTech XPS3 SMG (Tan) + EOTech XPS3 SMG (Beige) + + + EOTech XPS3 SMG (Black) + EOTech XPS3 SMG (Schwarz) + + + EOTech XPS3 SMG (Khaki) + EOTech XPS3 SMG (Khaki) + + + IOR-Valada Pitbull 2 + + + Burris FastFire 2 + + + C-More Railway (Red) + C-More Railway (Rot) + + + C-More Railway (Green) + C-More Railway (Grün) + + + C-More Railway SMG (Red) + C-More Railway SMG (Rot) + + + C-More Railway SMG (Green) + C-More Railway SMG (Grün) + diff --git a/addons/vehicles/CfgVehicles.hpp b/addons/vehicles/CfgVehicles.hpp index f2e76377d2..ff79ed26f4 100644 --- a/addons/vehicles/CfgVehicles.hpp +++ b/addons/vehicles/CfgVehicles.hpp @@ -229,4 +229,54 @@ class CfgVehicles { }; }; }; + + // Tanks DLC Wiesel 2 + class LT_01_base_F : Tank_F { + class Turrets : Turrets { + class MainTurret : MainTurret {}; + }; + }; + class LT_01_cannon_base_F : LT_01_base_F { + class Turrets : Turrets { + class MainTurret : MainTurret { + weapons[] = { + "SmokeLauncher", + "ACE_LMG_coax_ext_MG3", + "ACE_cannon_20mm_Rh202" + }; + }; + }; + }; + + // Tanks DLC Rooikat 120 + class AFV_Wheeled_01_base_F : wheeled_APC_F { + class Turrets : Turrets { + class MainTurret: MainTurret { + weapons[] = {"ACE_cannon_120mm_GT12","ACE_LMG_coax_DenelMG4"}; + magazines[] = {"12Rnd_120mm_APFSDS_shells_Tracer_Red","8Rnd_120mm_HE_shells_Tracer_Red","8Rnd_120mm_HEAT_MP_T_Red","4Rnd_120mm_LG_cannon_missiles","200Rnd_762x51_Belt_T_Red","200Rnd_762x51_Belt_T_Red","200Rnd_762x51_Belt_T_Red","200Rnd_762x51_Belt_T_Red"}; + }; + }; + }; + + // Tanks DLC Armata + class MBT_04_base_F : Tank_F { + class Turrets : Turrets { + class MainTurret : MainTurret { + class Turrets : Turrets { + class CommanderOptics: CommanderOptics {}; + }; + }; + }; + }; + class MBT_04_cannon_base_F : MBT_04_base_F { + class Turrets : Turrets { + class MainTurret : MainTurret { + class Turrets : Turrets { + class CommanderOptics: CommanderOptics { + weapons[] = {"ACE_HMG_127_KORD","SmokeLauncher"}; + }; + }; + }; + }; + }; }; diff --git a/addons/vehicles/CfgWeapons.hpp b/addons/vehicles/CfgWeapons.hpp index b0c2f36cc9..4c1c4575b9 100644 --- a/addons/vehicles/CfgWeapons.hpp +++ b/addons/vehicles/CfgWeapons.hpp @@ -9,6 +9,8 @@ class CfgWeapons { class ACE_LMG_coax_L94A1_mem3: LMG_coax {}; class ACE_LMG_coax_MAG58_mem3: LMG_coax {}; class ACE_LMG_coax_ext_MAG58: LMG_coax_ext {}; + class ACE_LMG_coax_ext_MG3: LMG_coax_ext {}; + class ACE_LMG_coax_DenelMG4 : LMG_coax {}; class LMG_Minigun: LMG_RCWS { // Add the following: "2000Rnd_762x51_Belt_T_Green","2000Rnd_762x51_Belt_T_Red","2000Rnd_762x51_Belt_T_Yellow","5000Rnd_762x51_Belt","5000Rnd_762x51_Yellow_Belt" @@ -25,4 +27,17 @@ class CfgWeapons { reloadTime = 0.23; }; }; + + class HMG_127_APC : HMG_127 {}; + class ACE_HMG_127_KORD : HMG_127_APC {}; + + // Tanks DLC: weapons for Wiesel and Rooikat + class CannonCore; + class autocannon_Base_F : CannonCore {}; + class cannon_20mm : autocannon_Base_F {}; + class ACE_cannon_20mm_Rh202 : cannon_20mm {}; + + class cannon_120mm : CannonCore {}; + class ACE_cannon_120mm_GT12 : cannon_120mm {}; + }; From f9943658e9a75b2a93078ff6008247866a0436c4 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Fri, 1 Jun 2018 05:48:19 +0200 Subject: [PATCH 148/235] Cargo - Support of object without `ace_cargo_size` defined in config or `-1` config value (#6364) * Add: Now findUnloadPosition support also cargo object - use of ace_cargo_fnc_getSizeItem to determine size of item - prefer the config way instead of manually set size - This will also take into account object manually added to the cargo system with ace_cargo_fnc_setsize - use the cargo object for ace_cargo_fnc_unloadItem. * FIX: old work around * FIX: error when cargo module is not loaded * As suggested by @orbis2358 This fix handle the case when cargo module is not loaded for scheduled and unscheduled environnement. * Use ACE framework to check if module is present * FIX: EFUNC and isEqualto - _itemSize here is always number - here we are in common module (addons/common/functions/fnc_findUnloadPosition) so FUNC is ace_common_fnc * FIX case where config value is `-1` - if the config value is -1, get the `ace_cargo_size` from the `ace_cargo_fnc_getSizeItem - https://github.com/acemod/ACE3/issues/6357#issuecomment-393525374 --- addons/cargo/functions/fnc_unloadItem.sqf | 4 +--- .../functions/fnc_findUnloadPosition.sqf | 22 ++++++++++++++----- 2 files changed, 17 insertions(+), 9 deletions(-) diff --git a/addons/cargo/functions/fnc_unloadItem.sqf b/addons/cargo/functions/fnc_unloadItem.sqf index 702f145405..f63e4367aa 100644 --- a/addons/cargo/functions/fnc_unloadItem.sqf +++ b/addons/cargo/functions/fnc_unloadItem.sqf @@ -20,10 +20,8 @@ params ["_item", "_vehicle", ["_unloader", objNull]]; TRACE_3("params",_item,_vehicle,_unloader); -private _itemClass = if (_item isEqualType "") then {_item} else {typeOf _item}; - //This covers testing vehicle stability and finding a safe position -private _emptyPosAGL = [_vehicle, _itemClass, _unloader] call EFUNC(common,findUnloadPosition); +private _emptyPosAGL = [_vehicle, _item, _unloader] call EFUNC(common,findUnloadPosition); TRACE_1("findUnloadPosition",_emptyPosAGL); if ((count _emptyPosAGL) != 3) exitWith { diff --git a/addons/common/functions/fnc_findUnloadPosition.sqf b/addons/common/functions/fnc_findUnloadPosition.sqf index 85818cbda1..818b15a864 100644 --- a/addons/common/functions/fnc_findUnloadPosition.sqf +++ b/addons/common/functions/fnc_findUnloadPosition.sqf @@ -5,7 +5,7 @@ * * Arguments: * 0: Source Vehicle - * 1: Cargo Classname + * 1: Cargo or * 2: Unloader (player) (default: objNull) * 3: Max Distance (meters) (default: 10) * 4: Check Vehicle is Stable (default: true) @@ -27,8 +27,8 @@ //Manual collision tests (count and radius): #define COL_TEST_COUNT 12 -params ["_vehicle", "_typeOfCargo", ["_theUnloader", objNull], ["_maxDistance", 10], ["_checkVehicleIsStable", true]]; -TRACE_5("params",_vehicle,_typeOfCargo,_theUnloader,_maxDistance,_checkVehicleIsStable); +params ["_vehicle", "_cargo", ["_theUnloader", objNull], ["_maxDistance", 10], ["_checkVehicleIsStable", true]]; +TRACE_5("params",_vehicle,_cargo,_theUnloader,_maxDistance,_checkVehicleIsStable); scopeName "main"; @@ -40,12 +40,22 @@ if (_checkVehicleIsStable) then { }; private _radiusOfItem = 1; -if (_typeOfCargo isKindOf "CAManBase") then { +if (_cargo isKindOf "CAManBase") then { _radiusOfItem = 1.1; } else { //`sizeOf` is unreliable, and does not work with object types that don't exist on map, so estimate size based on cargo size - if (isNumber (configFile >> "CfgVehicles" >> _typeOfCargo >> QEGVAR(cargo,size))) then { - _radiusOfItem = (((getNumber (configFile >> "CfgVehicles" >> _typeOfCargo >> QEGVAR(cargo,size))) ^ 0.35) max 0.75); + private _typeOfCargo = if (_cargo isEqualType "") then {_cargo} else {typeOf _cargo}; + private _itemSize = if (isNumber (configFile >> "CfgVehicles" >> _typeOfCargo >> QEGVAR(cargo,size)) && {getNumber (configFile >> "CfgVehicles" >> _typeOfCargo >> QEGVAR(cargo,size)) != -1}) then { + getNumber (configFile >> "CfgVehicles" >> _typeOfCargo >> QEGVAR(cargo,size)); + } else { + if (["ace_cargo"] call FUNC(isModLoaded)) then { + [_cargo] call EFUNC(cargo,getSizeItem); + } else { + _radiusOfItem; + }; + }; + if (_itemSize != -1) then { + _radiusOfItem = (_itemSize ^ 0.35) max 0.75; }; }; From 11df315ce41dc5027573f774e1757eb54cda67b1 Mon Sep 17 00:00:00 2001 From: Josuan Albin Date: Sat, 9 Jun 2018 19:43:53 +0200 Subject: [PATCH 149/235] Arsenal - Fix Rate Of Fire stat (#6385) * Fix the ROF stat in ace arsenal Previous one was wrong when the ROF set as default was different than the one in firemodes * Add missing ) --- addons/arsenal/ACE_Arsenal_Stats.hpp | 2 +- addons/arsenal/XEH_PREP.hpp | 1 + .../fnc_statBarStatement_rateOfFIre.sqf | 31 +++++++++++++++++++ .../fnc_statTextStatement_rateOfFire.sqf | 19 +++++++----- 4 files changed, 44 insertions(+), 9 deletions(-) create mode 100644 addons/arsenal/functions/fnc_statBarStatement_rateOfFIre.sqf diff --git a/addons/arsenal/ACE_Arsenal_Stats.hpp b/addons/arsenal/ACE_Arsenal_Stats.hpp index 619bc181a7..885daa843f 100644 --- a/addons/arsenal/ACE_Arsenal_Stats.hpp +++ b/addons/arsenal/ACE_Arsenal_Stats.hpp @@ -33,7 +33,7 @@ class GVAR(stats) { displayName= "$STR_a3_rscdisplayarsenal_stat_rof"; showBar = 1; showText = 1; - barStatement = QUOTE([ARR_3((_this select 0) select 0, _this select 1, [ARR_2([ARR_2(-1.4, 0.31)], [ARR_2(1, 0.01)])])] call FUNC(statBarStatement_default)); + barStatement = QUOTE([ARR_3((_this select 0) select 0, _this select 1, [ARR_2([ARR_2(-1.4, 0.31)], [ARR_2(1, 0.01)])])] call FUNC(statBarStatement_rateOfFIre)); textStatement = QUOTE([ARR_3((_this select 0) select 0, _this select 1, [ARR_2([ARR_2(-1.4, 0.31)], false)])] call FUNC(statTextStatement_rateOfFire)); tabs[] = {{0,1}, {}}; }; diff --git a/addons/arsenal/XEH_PREP.hpp b/addons/arsenal/XEH_PREP.hpp index 0b70be1ca6..6b3ace5c1d 100644 --- a/addons/arsenal/XEH_PREP.hpp +++ b/addons/arsenal/XEH_PREP.hpp @@ -50,6 +50,7 @@ PREP(sortPanel); PREP(statBarStatement_accuracy); PREP(statBarStatement_default); PREP(statBarStatement_impact); +PREP(statBarStatement_rateOfFIre); PREP(statTextStatement_accuracy); PREP(statTextStatement_mass); PREP(statTextStatement_rateOfFire); diff --git a/addons/arsenal/functions/fnc_statBarStatement_rateOfFIre.sqf b/addons/arsenal/functions/fnc_statBarStatement_rateOfFIre.sqf new file mode 100644 index 0000000000..abf87c3fc6 --- /dev/null +++ b/addons/arsenal/functions/fnc_statBarStatement_rateOfFIre.sqf @@ -0,0 +1,31 @@ +/* + * Author: Alganthe + * Rate of fire bar statement. + * + * Arguments: + * 0: stats array (ARRAY) + * 1: item config path (CONFIG) + * 2: Args + * 2.1: Stat limits (ARRAY of BOOL) + * 2.2: Bar limits (ARRAY of SCALAR) + * + * Return Value: + * Number + * + * Public: No +*/ +#include "script_component.hpp" + +params ["_stat", "_config", "_args"]; +_args params ["_statMinMax", "_barLimits"]; + +private _fireModes = getArray (_config >> "modes"); +private _fireRate = []; + +{ + _fireRate pushBackUnique log (getNumber (_config >> _x >> "reloadTime")); +} foreach _fireModes; + +_fireRate sort true; + +linearConversion [_statMinMax select 0, _statMinMax select 1, _fireRate select 0, _barLimits select 0, _barLimits select 1] diff --git a/addons/arsenal/functions/fnc_statTextStatement_rateOfFire.sqf b/addons/arsenal/functions/fnc_statTextStatement_rateOfFire.sqf index a34a2f7d7b..8523756da2 100644 --- a/addons/arsenal/functions/fnc_statTextStatement_rateOfFire.sqf +++ b/addons/arsenal/functions/fnc_statTextStatement_rateOfFire.sqf @@ -1,6 +1,6 @@ /* * Author: Alganthe - * ROF text statement. + * Rate of fire text statement. * * Arguments: * 0: stat (STRING) @@ -19,11 +19,14 @@ params ["_stat", "_config", "_args"]; _args params ["_statMinMax", "_configExtremeBool"]; -private _statValues = [ - [_config], - [_stat], - [_configExtremeBool], - [_statMinMax select 0] -] call BIS_fnc_configExtremes; +private _fireModes = getArray (_config >> "modes"); +private _fireRate = []; -format ["%1 rpm", round (60 / ((_statValues select 1) select 0))] +{ + _fireRate pushBackUnique (getNumber (_config >> _x >> "reloadTime")); +} foreach _fireModes; + +_fireRate sort true; +_fireRate = _fireRate select 0; + +format ["%1 rpm", round (60 / _fireRate)] From 3917092540b7f30d3460bf61a119d7c023c95b68 Mon Sep 17 00:00:00 2001 From: Josuan Albin Date: Sun, 10 Jun 2018 07:14:14 +0200 Subject: [PATCH 150/235] Fix possible issue with weapons without firemodes (#6386) Apparently that's a thing --- addons/arsenal/functions/fnc_statBarStatement_accuracy.sqf | 2 +- addons/arsenal/functions/fnc_statBarStatement_rateOfFIre.sqf | 2 +- addons/arsenal/functions/fnc_statTextStatement_accuracy.sqf | 2 +- addons/arsenal/functions/fnc_statTextStatement_rateOfFire.sqf | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/addons/arsenal/functions/fnc_statBarStatement_accuracy.sqf b/addons/arsenal/functions/fnc_statBarStatement_accuracy.sqf index 511eb37344..f426cbd963 100644 --- a/addons/arsenal/functions/fnc_statBarStatement_accuracy.sqf +++ b/addons/arsenal/functions/fnc_statBarStatement_accuracy.sqf @@ -28,4 +28,4 @@ private _dispersion = []; _dispersion sort true; -linearConversion [_statMinMax select 0, _statMinMax select 1, _dispersion select 0, _barLimits select 0, _barLimits select 1] +linearConversion [_statMinMax select 0, _statMinMax select 1, _dispersion param [0, 0], _barLimits select 0, _barLimits select 1] diff --git a/addons/arsenal/functions/fnc_statBarStatement_rateOfFIre.sqf b/addons/arsenal/functions/fnc_statBarStatement_rateOfFIre.sqf index abf87c3fc6..3557cd7ed5 100644 --- a/addons/arsenal/functions/fnc_statBarStatement_rateOfFIre.sqf +++ b/addons/arsenal/functions/fnc_statBarStatement_rateOfFIre.sqf @@ -28,4 +28,4 @@ private _fireRate = []; _fireRate sort true; -linearConversion [_statMinMax select 0, _statMinMax select 1, _fireRate select 0, _barLimits select 0, _barLimits select 1] +linearConversion [_statMinMax select 0, _statMinMax select 1, _fireRate param [0, 0], _barLimits select 0, _barLimits select 1] diff --git a/addons/arsenal/functions/fnc_statTextStatement_accuracy.sqf b/addons/arsenal/functions/fnc_statTextStatement_accuracy.sqf index 12f278442f..8f2045bdcf 100644 --- a/addons/arsenal/functions/fnc_statTextStatement_accuracy.sqf +++ b/addons/arsenal/functions/fnc_statTextStatement_accuracy.sqf @@ -27,6 +27,6 @@ private _dispersion = []; } foreach _fireModes; _dispersion sort true; -_dispersion = _dispersion select 0; +_dispersion = _dispersion param [0, 0]; format ["%1 MIL (%2 MOA)", (_dispersion * 1000) toFixed 2, (_dispersion / pi * 10800) ToFixed 1]; diff --git a/addons/arsenal/functions/fnc_statTextStatement_rateOfFire.sqf b/addons/arsenal/functions/fnc_statTextStatement_rateOfFire.sqf index 8523756da2..c57306f5af 100644 --- a/addons/arsenal/functions/fnc_statTextStatement_rateOfFire.sqf +++ b/addons/arsenal/functions/fnc_statTextStatement_rateOfFire.sqf @@ -27,6 +27,6 @@ private _fireRate = []; } foreach _fireModes; _fireRate sort true; -_fireRate = _fireRate select 0; +_fireRate = _fireRate param [0, 0]; format ["%1 rpm", round (60 / _fireRate)] From 0a313ce41ffc03810a235e824e31289f76f0bf6c Mon Sep 17 00:00:00 2001 From: Josuan Albin Date: Mon, 11 Jun 2018 05:29:07 +0200 Subject: [PATCH 151/235] Fix right tab listNbox not showing last item on first load (#6390) Go figure why that happens tho :/ --- addons/arsenal/defines.hpp | 4 ---- addons/arsenal/ui/RscAttributes.hpp | 4 ++-- 2 files changed, 2 insertions(+), 6 deletions(-) diff --git a/addons/arsenal/defines.hpp b/addons/arsenal/defines.hpp index 1a3c94d1ca..31d9a27802 100644 --- a/addons/arsenal/defines.hpp +++ b/addons/arsenal/defines.hpp @@ -237,8 +237,6 @@ _buttonCurrentMag2Ctrl ctrlCommit FADE_DELAY;\ ];\ _x ctrlCommit 0;\ } foreach [\ - IDC_rightTabContent,\ - IDC_rightTabContentListnBox,\ IDC_blockRightFrame,\ IDC_blockRighttBackground\ ]; @@ -284,8 +282,6 @@ _buttonCurrentMag2Ctrl ctrlCommit FADE_DELAY;\ ];\ _x ctrlCommit 0;\ } foreach [\ - IDC_rightTabContent,\ - IDC_rightTabContentListnBox,\ IDC_blockRightFrame,\ IDC_blockRighttBackground\ ]; diff --git a/addons/arsenal/ui/RscAttributes.hpp b/addons/arsenal/ui/RscAttributes.hpp index 50a1d7f93c..2794e42119 100644 --- a/addons/arsenal/ui/RscAttributes.hpp +++ b/addons/arsenal/ui/RscAttributes.hpp @@ -490,7 +490,7 @@ class GVAR(display) { onSetFocus = QUOTE(GVAR(rightTabFocus) = true); onKillFocus = QUOTE(GVAR(rightTabFocus) = false); x = QUOTE(safezoneX + safezoneW - 93 * GRID_W); - h = QUOTE(safezoneH - 34.5 * GRID_H); + h = QUOTE(safezoneH - 28 * GRID_H); }; class rightTabContentListnBox : RscListNBox { idc = IDC_rightTabContentListnBox; @@ -512,7 +512,7 @@ class GVAR(display) { x = QUOTE(safezoneX + safezoneW - 93 * GRID_W); y = QUOTE(safezoneY + 14 * GRID_H); w = QUOTE(80 * GRID_W); - h = QUOTE(safezoneH - 34.5 * GRID_H); + h = QUOTE(safezoneH - 34 * GRID_H); sizeEx = QUOTE(7 * GRID_H); }; class sortLeftTab: RscCombo { From c0b9a31debc4716a13d61f58d073ee84dbeaf821 Mon Sep 17 00:00:00 2001 From: Tim Beswick Date: Mon, 18 Jun 2018 21:01:09 +0100 Subject: [PATCH 152/235] Cargo load ignore interaction distance parameter (#6395) * Added force parameter to cargo load * Specifically ignore interaction distance * Fixed old brackets * Removed old trace --- addons/cargo/functions/fnc_canLoadItemIn.sqf | 5 +++-- addons/cargo/functions/fnc_loadItem.sqf | 5 +++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/addons/cargo/functions/fnc_canLoadItemIn.sqf b/addons/cargo/functions/fnc_canLoadItemIn.sqf index 8780689241..7d5d98dc0c 100644 --- a/addons/cargo/functions/fnc_canLoadItemIn.sqf +++ b/addons/cargo/functions/fnc_canLoadItemIn.sqf @@ -5,6 +5,7 @@ * Arguments: * 0: Item * 1: Holder Object (Vehicle) + * 2: Ignore interaction distance * * Return Value: * Can load in @@ -16,7 +17,7 @@ */ #include "script_component.hpp" -params [["_item", "", [objNull,""]], "_vehicle"]; +params [["_item", "", [objNull,""]], "_vehicle", ["_ignoreInteraction", false]]; if (speed _vehicle > 1 || {((getPos _vehicle) select 2) > 3}) exitWith {TRACE_1("vehicle not stable",_vehicle); false}; @@ -34,7 +35,7 @@ if (_item isEqualType "") then { } else { _validItem = (alive _item) && - {([_item, _vehicle] call EFUNC(interaction,getInteractionDistance)) < MAX_LOAD_DISTANCE}; + {_ignoreInteraction || {([_item, _vehicle] call EFUNC(interaction,getInteractionDistance)) < MAX_LOAD_DISTANCE}}; }; _validItem && diff --git a/addons/cargo/functions/fnc_loadItem.sqf b/addons/cargo/functions/fnc_loadItem.sqf index f8b00478e6..cb4772b791 100644 --- a/addons/cargo/functions/fnc_loadItem.sqf +++ b/addons/cargo/functions/fnc_loadItem.sqf @@ -6,6 +6,7 @@ * Arguments: * 0: Item * 1: Vehicle + * 2: Ignore interaction distance * * Return Value: * Object loaded @@ -17,10 +18,10 @@ */ #include "script_component.hpp" -params [["_item","",[objNull,""]], ["_vehicle",objNull,[objNull]]]; +params [["_item","",[objNull,""]], ["_vehicle",objNull,[objNull]], ["_ignoreInteraction", false]]; TRACE_2("params",_item,_vehicle); -if !([_item, _vehicle] call FUNC(canLoadItemIn)) exitWith {TRACE_2("cannot load",_item,_vehicle); false}; +if !([_item, _vehicle, _ignoreInteraction] call FUNC(canLoadItemIn)) exitWith {TRACE_2("cannot load",_item,_vehicle); false}; private _loaded = _vehicle getVariable [QGVAR(loaded), []]; _loaded pushBack _item; From fdf6100fb6fb23dd946072f87ef6a6d3f2934967 Mon Sep 17 00:00:00 2001 From: mharis001 <34453221+mharis001@users.noreply.github.com> Date: Mon, 18 Jun 2018 16:01:32 -0400 Subject: [PATCH 153/235] Add ACE Flags (#6394) --- addons/common/CfgVehicles.hpp | 28 ++++++++++++++++++ addons/common/config.cpp | 2 +- addons/common/data/ace_flag_black_ca.paa | Bin 0 -> 68168 bytes addons/common/data/ace_flag_black_preview.jpg | Bin 0 -> 6486 bytes addons/common/data/ace_flag_white_ca.paa | Bin 0 -> 68371 bytes addons/common/data/ace_flag_white_preview.jpg | Bin 0 -> 6361 bytes addons/common/stringtable.xml | 6 ++++ 7 files changed, 35 insertions(+), 1 deletion(-) create mode 100644 addons/common/data/ace_flag_black_ca.paa create mode 100644 addons/common/data/ace_flag_black_preview.jpg create mode 100644 addons/common/data/ace_flag_white_ca.paa create mode 100644 addons/common/data/ace_flag_white_preview.jpg diff --git a/addons/common/CfgVehicles.hpp b/addons/common/CfgVehicles.hpp index a3ddef155e..396d80b5c1 100644 --- a/addons/common/CfgVehicles.hpp +++ b/addons/common/CfgVehicles.hpp @@ -147,4 +147,32 @@ class CfgVehicles { scope = 1; maximumLoad = 1E6; }; + + class FlagCarrier_Asym; + class ACE_Flag_Black: FlagCarrier_Asym { + author = CSTRING(ACETeam); + displayName = CSTRING(FlagBlack); + scope = 2; + scopeCurator = 2; + editorPreview = QPATHTOF(data\ace_flag_black_preview.jpg); + class EventHandlers { + init = QUOTE((_this select 0) setFlagTexture QUOTE(QPATHTOF(data\ace_flag_black_ca.paa))); + }; + class ACE_Actions { + class ACE_MainActions { + displayName = ECSTRING(interaction,MainAction); + condition = "true"; + position = "[-0.1, -0.35, -2.6]"; + distance = 2; + }; + }; + }; + class ACE_Flag_White: ACE_Flag_Black { + author = CSTRING(ACETeam); + displayName = CSTRING(FlagWhite); + editorPreview = QPATHTOF(data\ace_flag_white_preview.jpg); + class EventHandlers { + init = QUOTE((_this select 0) setFlagTexture QUOTE(QPATHTOF(data\ace_flag_white_ca.paa))); + }; + }; }; diff --git a/addons/common/config.cpp b/addons/common/config.cpp index 72e3f78621..44af1ee7ce 100644 --- a/addons/common/config.cpp +++ b/addons/common/config.cpp @@ -3,7 +3,7 @@ class CfgPatches { class ADDON { name = COMPONENT_NAME; - units[] = {"ACE_Box_Misc", "ACE_bananaItem"}; + units[] = {"ACE_Box_Misc", "ACE_bananaItem", "ACE_Flag_Black", "ACE_Flag_White"}; weapons[] = {"ACE_ItemCore","ACE_FakePrimaryWeapon", "ACE_Banana"}; requiredVersion = REQUIRED_VERSION; requiredAddons[] = {"ace_main","ace_modules"}; diff --git a/addons/common/data/ace_flag_black_ca.paa b/addons/common/data/ace_flag_black_ca.paa new file mode 100644 index 0000000000000000000000000000000000000000..54d314bd84f34884fd36b83fb9cdf957252cbdc4 GIT binary patch literal 68168 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%0DlOviQ@K#OEvGXa<$VyHX7EnY^LHzk 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 literal 0 HcmV?d00001 diff --git a/addons/common/data/ace_flag_white_ca.paa b/addons/common/data/ace_flag_white_ca.paa new file mode 100644 index 0000000000000000000000000000000000000000..5c665922b46a9bbac5a633ac6ef787943dcafefd GIT binary patch literal 68371 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 J5gp0j{{z;_V9x*m literal 0 HcmV?d00001 diff --git a/addons/common/data/ace_flag_white_preview.jpg b/addons/common/data/ace_flag_white_preview.jpg new file mode 100644 index 0000000000000000000000000000000000000000..3dba63e1909c97772e57e479012fa80212972411 GIT binary patch literal 6361 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 U!{(<6Mn#}t@OMfAF#Xei0p4CqPXGV_ literal 0 HcmV?d00001 diff --git a/addons/common/stringtable.xml b/addons/common/stringtable.xml index acbf73d2e7..b164112e71 100644 --- a/addons/common/stringtable.xml +++ b/addons/common/stringtable.xml @@ -1179,5 +1179,11 @@ 允许ACE脚本去控制音乐的音量。 ACE スプリントへ音量低下を許可します。 + + Flag (ACE - Black) + + + Flag (ACE - White) + From 205abec28606544b00a6e1d929b16dfde2816e5e Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Wed, 20 Jun 2018 22:17:27 -0500 Subject: [PATCH 154/235] Fastroping - Disable ACRE features from helper objects (#6387) --- addons/fastroping/CfgVehicles.hpp | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/addons/fastroping/CfgVehicles.hpp b/addons/fastroping/CfgVehicles.hpp index e5894be6d0..05ef487325 100644 --- a/addons/fastroping/CfgVehicles.hpp +++ b/addons/fastroping/CfgVehicles.hpp @@ -79,6 +79,10 @@ class CfgVehicles { class ACE_SelfActions {}; EGVAR(cargo,hasCargo) = 0; EGVAR(cargo,space) = 0; + // ACRE 2.6.0 Compatibility + acre_hasInfantryPhone = 0; + class AcreRacks {}; + class AcreIntercoms {}; }; class ACE_friesAnchorBar: ACE_friesBase { author = "jokoho48"; @@ -160,6 +164,10 @@ class CfgVehicles { class TransportItems {}; EGVAR(cargo,hasCargo) = 0; EGVAR(cargo,space) = 0; + // ACRE 2.6.0 Compatibility + acre_hasInfantryPhone = 0; + class AcreRacks {}; + class AcreIntercoms {}; }; class Helicopter_Base_H; From b2be3d683f6cd1f0d3b58c43e9ea86c5d91680bf Mon Sep 17 00:00:00 2001 From: xrufix Date: Thu, 21 Jun 2018 17:44:56 +0200 Subject: [PATCH 155/235] Fix typo (#6399) --- addons/realisticnames/stringtable.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/realisticnames/stringtable.xml b/addons/realisticnames/stringtable.xml index 931f090f0f..5f215bb7d1 100644 --- a/addons/realisticnames/stringtable.xml +++ b/addons/realisticnames/stringtable.xml @@ -3314,7 +3314,7 @@ EOTech XPS3 SMG (Khaki) - IOR-Valada Pitbull 2 + IOR-Valdada Pitbull 2 Burris FastFire 2 From bbbfabec035c87d73280f2ec7130005546c1a677 Mon Sep 17 00:00:00 2001 From: Unknown Date: Fri, 22 Jun 2018 15:41:43 -0400 Subject: [PATCH 156/235] Add new explosive timer UI --- addons/explosives/ACE_Arsenal_Stats.hpp | 2 +- addons/explosives/ACE_Triggers.hpp | 28 +++-- addons/explosives/CfgEventHandlers.hpp | 1 - addons/explosives/ExplosivesUI.hpp | 80 +-------------- addons/explosives/TimerDialog.hpp | 97 ++++++++++++++++++ addons/explosives/UI/seven_segment_0.paa | Bin 0 -> 11666 bytes addons/explosives/UI/seven_segment_1.paa | Bin 0 -> 11421 bytes addons/explosives/UI/seven_segment_2.paa | Bin 0 -> 11591 bytes addons/explosives/UI/seven_segment_3.paa | Bin 0 -> 11590 bytes addons/explosives/UI/seven_segment_4.paa | Bin 0 -> 11550 bytes addons/explosives/UI/seven_segment_5.paa | Bin 0 -> 11594 bytes addons/explosives/UI/seven_segment_6.paa | Bin 0 -> 11634 bytes addons/explosives/UI/seven_segment_7.paa | Bin 0 -> 11481 bytes addons/explosives/UI/seven_segment_8.paa | Bin 0 -> 11681 bytes addons/explosives/UI/seven_segment_9.paa | Bin 0 -> 11650 bytes .../explosives/UI/seven_segment_separator.paa | Bin 0 -> 11498 bytes addons/explosives/XEH_PREP.hpp | 12 +-- addons/explosives/config.cpp | 16 ++- .../functions/fnc_openTimerSetUI.sqf | 44 -------- .../explosives/functions/fnc_openTimerUI.sqf | 77 ++++++++++++++ .../explosives/functions/fnc_startTimer.sqf | 14 +-- addons/explosives/script_component.hpp | 15 +++ addons/explosives/stringtable.xml | 3 + 23 files changed, 232 insertions(+), 157 deletions(-) create mode 100644 addons/explosives/TimerDialog.hpp create mode 100644 addons/explosives/UI/seven_segment_0.paa create mode 100644 addons/explosives/UI/seven_segment_1.paa create mode 100644 addons/explosives/UI/seven_segment_2.paa create mode 100644 addons/explosives/UI/seven_segment_3.paa create mode 100644 addons/explosives/UI/seven_segment_4.paa create mode 100644 addons/explosives/UI/seven_segment_5.paa create mode 100644 addons/explosives/UI/seven_segment_6.paa create mode 100644 addons/explosives/UI/seven_segment_7.paa create mode 100644 addons/explosives/UI/seven_segment_8.paa create mode 100644 addons/explosives/UI/seven_segment_9.paa create mode 100644 addons/explosives/UI/seven_segment_separator.paa delete mode 100644 addons/explosives/functions/fnc_openTimerSetUI.sqf create mode 100644 addons/explosives/functions/fnc_openTimerUI.sqf diff --git a/addons/explosives/ACE_Arsenal_Stats.hpp b/addons/explosives/ACE_Arsenal_Stats.hpp index 61534b0f9d..cde27f3bde 100644 --- a/addons/explosives/ACE_Arsenal_Stats.hpp +++ b/addons/explosives/ACE_Arsenal_Stats.hpp @@ -4,7 +4,7 @@ class EGVAR(arsenal,stats) { scope = 2; priority = 1; stats[] = {QGVAR(Range)}; - displayName= CSTRING(statExploRange); + displayName = CSTRING(statExploRange); showText = 1; textStatement = QUOTE(params [ARR_2('_stat', '_config')]; private _exploRangeStat = getNumber (_config >> _stat select 0); format [ARR_3('%1m (%2ft)', _exploRangeStat, (_exploRangeStat / 0.3048) toFixed 1)]); condition = QUOTE(params [ARR_2('', '_config')]; (getNumber (_config >> QQGVAR(Detonator))) > 0); diff --git a/addons/explosives/ACE_Triggers.hpp b/addons/explosives/ACE_Triggers.hpp index b62e593261..e9c717504e 100644 --- a/addons/explosives/ACE_Triggers.hpp +++ b/addons/explosives/ACE_Triggers.hpp @@ -1,13 +1,19 @@ class ACE_Triggers { - /* onPlace parameters: -0: OBJECT - unit placing -1: OBJECT - Placed explosive -2: STRING - Magazine classname -3: ARRAY - vars -Last Index: ACE_Triggers config of trigger type. -onSetup parameters: -0: STRING - Magazine Classname - */ + /* onPlace Parameters: + * 0: Unit placing + * 1: Explosive + * 2: Magazine classname + * 3: Additional arguments + * - Same as those passed to FUNC(placeExplosive) for specific trigger type + * - Last element is ACE_Triggers config of the trigger type + * + * onSetup Parameters: + * 0: Explosive + * 1: Magazine classname + * + * For both, expected return type is BOOL. + * True indicates manual handling of explosive setup/placement. + */ class Command { isAttachable = 1; displayName = CSTRING(clacker_displayName); @@ -50,8 +56,8 @@ onSetup parameters: isAttachable = 1; displayName = CSTRING(timerName); picture = QPATHTOF(data\UI\Timer.paa); - onPlace = QUOTE([ARR_2(_this select 1,(_this select 3) select 0)] call FUNC(startTimer);false); - onSetup = QUOTE(_this call FUNC(openTimerSetUI);true); + onPlace = QUOTE([ARR_2(_this select 1, _this select 3 select 0)] call FUNC(startTimer); false); + onSetup = QUOTE(_this call FUNC(openTimerUI)); }; class Tripwire { isAttachable = 0; diff --git a/addons/explosives/CfgEventHandlers.hpp b/addons/explosives/CfgEventHandlers.hpp index 37df24577d..e25f1e14ab 100644 --- a/addons/explosives/CfgEventHandlers.hpp +++ b/addons/explosives/CfgEventHandlers.hpp @@ -1,4 +1,3 @@ - class Extended_PreStart_EventHandlers { class ADDON { init = QUOTE(call COMPILE_FILE(XEH_preStart)); diff --git a/addons/explosives/ExplosivesUI.hpp b/addons/explosives/ExplosivesUI.hpp index 7b0b2c6629..cd06abff5b 100644 --- a/addons/explosives/ExplosivesUI.hpp +++ b/addons/explosives/ExplosivesUI.hpp @@ -1,19 +1,4 @@ -#define GUI_GRID_X (0) -#define GUI_GRID_Y (0) -#define GUI_GRID_W (0.025) -#define GUI_GRID_H (0.04) - -#define ST_CENTER 0x02 -#define X_OFFSET 0.25 - -class RscText; -class RscButton; -class RscXSliderH; -class IGUIBack; -class RscPicture; -class RscEdit; - -class Rsc_ACE_CallScreen_Edit:RscEdit { +class Rsc_ACE_CallScreen_Edit: RscEdit { canModify = 1; colorBackground[] = {0,0,0,0}; colorText[] = {0,0,0,1}; @@ -32,7 +17,7 @@ class Rsc_ACE_CallScreen_Edit:RscEdit { w = 0.0825 * safezoneW; h = 0.044 * safezoneH; }; -class Rsc_ACE_HiddenButton:RscButton { +class Rsc_ACE_HiddenButton: RscButton { colorText[] = {0, 0, 0, 0}; colorDisabled[] = {0, 0, 0, 0}; colorBackground[] = {0, 0, 0, 0}; @@ -46,66 +31,7 @@ class Rsc_ACE_HiddenButton:RscButton { shadow = 0; }; -class Rsc_ACE_Timer_Slider:RscXSliderH { - x = 0.4; - y = 0.2; - w = 0.3; - h = "1*((((safezoneW / safezoneH) min 1.2) / 1.2) / 25)"; - colorBackground[] = {0,0,0,0.5}; -}; - -class RscACE_SelectTimeUI { - idd = 8854; - movingEnable = 0; - class controls { - class back:IGUIBack { - x = X_OFFSET; - y = 0; - w = 0.5; - h = 0.2; - colorBackground[] = {0, 0, 0, 0.5}; - }; - class header: RscText{ - idc = 8870; - x = X_OFFSET + 0.005; - y = 0.005; - w = 0.49; - h = 0.05; - style = ST_CENTER; - text = ""; - }; - class slider: Rsc_ACE_Timer_Slider { - idc = 8845; - x = X_OFFSET + 0.005; - y = 0.06; - w = 0.49; - h = 0.025; - onSliderPosChanged = "_mins = floor((_this select 1)/60);_secs=floor((_this select 1) - (_mins*60));ctrlSetText [8870, format[localize 'STR_ACE_Explosives_TimerMenu',_mins, _secs]];"; - }; - class cancelBtn: RscButton { - idc = 8855; - x = X_OFFSET + 0.005; - w = 0.15; - h = 0.1; - y = 0.09; - style = ST_CENTER; - text = CSTRING(Cancel); - action = "closeDialog 0;"; - }; - class approveBtn: RscButton { - idc = 8860; - x = X_OFFSET + 0.345; - y = 0.09; - h = 0.1; - w = 0.15; - style = ST_CENTER; - text = CSTRING(SetTime); - action = "closeDialog 0;"; - }; - }; -}; - -class Rsc_ACE_NumKeyButton: Rsc_ACE_HiddenButton{}; +class Rsc_ACE_NumKeyButton: Rsc_ACE_HiddenButton {}; class Rsc_ACE_PhoneInterface { idd = 8855; movingEnable = 1; diff --git a/addons/explosives/TimerDialog.hpp b/addons/explosives/TimerDialog.hpp new file mode 100644 index 0000000000..a3ab96af06 --- /dev/null +++ b/addons/explosives/TimerDialog.hpp @@ -0,0 +1,97 @@ +class GVAR(timerUI) { + idd = -1; + movingEnable = 1; + enableSimulation = 1; + onLoad = QUOTE(uiNamespace setVariable [ARR_2(QQGVAR(timerDisplay), _this select 0)]); + class controlsBackground { + class Header: RscText { + idc = -1; + text = CSTRING(ExplosiveTimer); + x = 13.5 * GUI_GRID_W + GUI_GRID_CENTER_X; + y = 5 * GUI_GRID_H + GUI_GRID_CENTER_Y; + w = 13 * GUI_GRID_W; + h = GUI_GRID_H; + colorBackground[] = GUI_BCG_COLOR; + moving = 1; + }; + class Background: RscText { + idd = -1; + x = 13.5 * GUI_GRID_W + GUI_GRID_CENTER_X; + y = 6.1 * GUI_GRID_H + GUI_GRID_CENTER_Y; + w = 13 * GUI_GRID_W; + h = 6.5 * GUI_GRID_H; + colorBackground[] = {0, 0, 0, 0.8}; + }; + }; + class controls { + class DigitBackground_1: RscPicture { + idc = -1; + text = QPATHTOF(UI\seven_segment_8.paa); + x = 14 * GUI_GRID_W + GUI_GRID_CENTER_X; + y = 6.6 * GUI_GRID_H + GUI_GRID_CENTER_Y; + w = 4 * GUI_GRID_W; + h = 4 * GUI_GRID_H; + colorText[] = {0.3, 0.3, 0.3, 0.5}; + }; + class DigitBackground_2: DigitBackground_1 { + x = 16.4 * GUI_GRID_W + GUI_GRID_CENTER_X; + }; + class DigitBackground_3: DigitBackground_1 { + x = 19.7 * GUI_GRID_W + GUI_GRID_CENTER_X; + }; + class DigitBackground_4: DigitBackground_1 { + x = 22.1 * GUI_GRID_W + GUI_GRID_CENTER_X; + }; + class DigitSeparator: DigitBackground_1 { + text = QPATHTOF(UI\seven_segment_separator.paa); + x = 18.025 * GUI_GRID_W + GUI_GRID_CENTER_X; + colorText[] = {1, 0.05, 0.05, 1}; + }; + class Digit_1: DigitBackground_1 { + idc = IDC_TIMER_DIGIT_1; + text = QPATHTOF(UI\seven_segment_0.paa); + colorText[] = {1, 0.05, 0.05, 1}; + }; + class Digit_2: Digit_1 { + idc = IDC_TIMER_DIGIT_2; + x = 16.4 * GUI_GRID_W + GUI_GRID_CENTER_X; + }; + class Digit_3: Digit_1 { + idc = IDC_TIMER_DIGIT_3; + x = 19.7 * GUI_GRID_W + GUI_GRID_CENTER_X; + }; + class Digit_4: Digit_1 { + idc = IDC_TIMER_DIGIT_4; + x = 22.1 * GUI_GRID_W + GUI_GRID_CENTER_X; + }; + class Slider: ctrlXSliderH { + idc = IDC_TIMER_SLIDER; + x = 14 * GUI_GRID_W + GUI_GRID_CENTER_X; + y = 11.1 * GUI_GRID_H + GUI_GRID_CENTER_Y; + w = 12 * GUI_GRID_W; + h = GUI_GRID_H; + color[] = {0.3, 0.3, 0.3, 0.7}; + colorActive[] = {0.3, 0.3, 0.3, 0.7}; + sliderRange[] = {TIMER_VALUE_MIN, TIMER_VALUE_MAX}; + sliderPosition = TIMER_VALUE_DEFAULT; + }; + class CancelButton: RscButton { + idc = -1; + text = CSTRING(Cancel); + onButtonClick = QUOTE(closeDialog 0); + x = 13.5 * GUI_GRID_W + GUI_GRID_CENTER_X; + y = 12.7 * GUI_GRID_H + GUI_GRID_CENTER_Y; + w = 5 * GUI_GRID_W; + h = GUI_GRID_H; + colorActive[] = {0, 0, 0, 1}; + colorBackground[] = {0, 0, 0, 0.8}; + colorFocused[] = {0, 0, 0, 0.8}; + }; + class ConfirmButton: CancelButton { + idc = IDC_TIMER_CONFIRM; + text = CSTRING(SetTime); + onButtonClick = ""; + x = 21.5 * GUI_GRID_W + GUI_GRID_CENTER_X; + }; + }; +}; diff --git a/addons/explosives/UI/seven_segment_0.paa b/addons/explosives/UI/seven_segment_0.paa new file mode 100644 index 0000000000000000000000000000000000000000..39c56516b0905726477781a6248fd90c58238e39 GIT binary patch literal 11666 zcmeGiOK2Tc^tAJu8E9o<5kD}AH$jP}iP5Ii-|M?CSP~bC3rmThh#=@j-AF-5YZQd4 z2yWaZSVW`?yAec@Nx7Phpzs#D9J6Ru>Srx8?+EW?r-wXo3Pe11zvD1j9(-W= zrkK4Mc+*Jx&yzQ^y$iQa1>W~AdoFA3;A}bYCe~cv8GH{G_dom6gDCIU$Sn_h zqE2q&i2sdvN>F@u25@E9{qVzx1R}d%Y{-e)+c2ca$UI-0G`V zdEMg5FHVhsOz_t&eb({BA6B=He^xzO$B|wb2`WDEV$1xZ#H{Ldu$6LJ?MuT+AKaES z)&IEt$-OQ&a+=ovR>(=SGp(QWD(b&x|JyuW)IUZ2leTWU?Wc8S6&@|>Er$@`5E^mG#}D8^)M!Eh4%`DrpMO`if<$T@38%k+5S*H+*GGF z^fmVPic`Hy^GI^?evakEPwCeh4}IEg=SztE>Z!c!P2;2Hf&Q@R;O`Hn$tn8v9QQg8 zRj2}ZU2j*l&~(rCs!kf6k;e&Qc4^vf+vU*;1%NPg^)$X&`;A-`$@}71y@s`i5NR;x zzIy+e$2OhhTl-M_Rgc${zP^@EbXo088&}BR{`ogw6-X*B()?um$zPoQunAGW>Uc|+ z1{EW7%!Q|Wnc@#M;EFC5B8_j>e&SQazs@w*?)ul?lc4?kR9s<1YzBRwn>^kB>j;v= zwJ<#7)_T}@OoPHaf9gn=HO{k+BULsltFrR3;~0Jlh@Yog)Ix1B*PrpUO?S35uquRl z47aNLEgl4mFNaG|LU~vmoe=V#0&h**! z7x=zMwWcXV`kK`z4HA{vjI?>L(_>^12I;d<%T5V(bhRUe@7sP0={~MTH4KXlZu>1% wH_QMmhEnKNF(-XrG~D4~MT+rAc~ZBkHf zUSgp7xImmZ@9?rA8?QDtVHUe^{{iENH3`E4T6L%0BV0I0rBQ za7pXf(b6uP`pbr5hxc`l$XQ&|$*zZuXp-E9^K0#&ef%XQ0h>}s#gU<*I!G-`nb1fn zszKtLqGZd~f7jQ)q%y#oQ&CfOSG99q{-zi7DIk5R*~~Jfv;>UR{)&n8QT>$qLGA5` z>=S^x@gnup`_F>9_Dy>0u%3LMTPXu_myRO3gtN;K2 literal 0 HcmV?d00001 diff --git a/addons/explosives/UI/seven_segment_2.paa b/addons/explosives/UI/seven_segment_2.paa new file mode 100644 index 0000000000000000000000000000000000000000..dd1e6bd383ec9da86dc424aca8a3542cb0a24c8b GIT binary patch literal 11591 zcmeHNO^6gn6n-3Ug4%W!Bt+2MHY}5QUEAdsWpd+nLV%^|~`j7xcWYSFh@Q z@71g7s+ub3xw+cOcjr#kMgTx-z2D?d*WPz|Q$AOFZY3aiBE^=BPcv7z*eY%o&jMiT?^m_NWKJ*i{k7kDC8eo_L#VIs~Cj> z#sgnmX?Oyr0{{9nV_bZ_nMIL+(Py62e?AtU?e^6rP~q6qtxSNZmc^%mKS?zzXLe0s z?ehUVnSQI`9Y#R`Kh7UvsGHpag*lski%`0Q*PowxoQsWrdx&e>!UoOR%>tp`4QdJY z%-@K zQ~ANgo$nB6^n@0$1MS$jG&MHrlgT%4S9xhcl#c$2nGW!hh_mg7$lHGG?D68!#)Gjl z-BYTR)IbF>y<@@iD&lO4YFRkFi&B zMl@^8QE1#S(D6!k<2)#dW^F&_$OSrOm+BToY_!X?;5+=-H0gt42u1P2X{UOA9j<$ zmpL{SMi2k8nlf)28>E)IZI|j`f3Mo_(l(X&xczZ{pd7W`BUM@tn%%LV$RdV`Xv~Xg zgeiXiuhQK9y#Mp~&&Pj0|K;<4@*9_b|NbZ6f4ePtvHrnzD$NJl?E|R5osrmyGG+lIgN&roBu!8W7;w} zxz$g$QX<~VqPc#I(>3rv`Bh7M%+_vMAtPn_T&ZT?{ciNSV=l(4<{E+vsdN}B%Iw&R z^vAIqVv65i7R~h!g8%J(672qxiARixf2TULI3YdKD#Jr=i=$oaDg6Gllj*gbpg7}O z(r%B7@ouKQQ@Z*yVJ(*K7F*KYQOE9W1@|5voAqNpow~KFZ}G>s@M8SdV|YueEq5Uu+SbgDPM-Nxk-$Cs%ny1 zYvG&XGAZsPOn69XicP&(j>;JhSE8-lW%%KWf)zMEu1JN2AV~&O)ND41*6Vdi6jL+; OBeZlinY#VP0XzrMLxKMQ literal 0 HcmV?d00001 diff --git a/addons/explosives/UI/seven_segment_3.paa b/addons/explosives/UI/seven_segment_3.paa new file mode 100644 index 0000000000000000000000000000000000000000..71da8743c0c79682c90d032c3da85cdd73424f74 GIT binary patch literal 11590 zcmeHNO^6&t6n;CkrrH>-%@RlsJ)t7T!0v{S9}!7PAuN>@X;4oY<3VMCtY4I25!?{g;4-f1MU zgqbjqUqoEOkubQ{VobukVfSOM%wG@Xm1dyNf{yq7GtDH(`6+oh3=WgV-14qj z)IJl!qt?-gA4EY3KdijP&^NmS8hft&o}hGz%e#-c5OT}E9C7V9_mUCp)&!w$g6_bc zmFvkjjbmZ(#-;BOp199d)RO0JH)7;T_$lHoqT3=qtC~U?`PDYIuOr_4`7TN~m-osm zVK5i*6JO6_2w;I@Hq4=jA6?!hAw=cRR<@FRh3-?dr=DCsGlrcB*D&?vs~_oACAX~J z*z>3>;pODo%mXfbuICBfj}ccyUy1lk!cVrCTy^PgcJBRl`s0SY+6>VBbVtbVNNzUb zhmn5z=K+v#GgKDNFClEFdN~isq=uztYFcd`D5uzjBgW=e<9@h*?QL&%pW@8! zQ>(&6`(3iny7|un8mr3Juy!mycTBAui`L1=&393rY#!(fn=Ah3qeXsd{`0N>3$OqX zP!`v9jC2!QJhSVyS5}_<;;LHe?`4humwKGNvi1kbS^wUs%NQ*=j*+FY688Vk%{Zo8 zoWl91n5Yr&MbX+n*69Z1pYm#y`+1Qj)AkFfO0*rwn}lfS2a-g}mN1A1OrfmrJo zRd=Z$^1BiFPwfw)wf~LDzpW=U?Pzwz{eNEwWnY(}*JcLISJ`p$i;o}ce~^y$&z~OZ z43b^%IN|V*om~3hZ;~kQ7hlbEuavqJrf{4QRgmtabXqMGXRHtRSH^~Zi-}C3`apf} zGK1eiz_+vp;wOEtj8o{WrD>1X2K!I*n5AT?4E|KldG4pqLO}g)I$lIc&mTsf;P(O0 ze<@kLDVVY^5+mQcM4bLg3zZf3BQ`@y*AVnTK z1VMDEXuwM#@eW+%hzL{^n-`_X0vv0R9%;&Qs z7xGuK82|{wuuY9ev%~RN&F8Zhb2L7H7tLSJjGHB>tHud zRM+l6-TOLdfh>eWz+;{zS9ixbop*4Y!bhv<_T>HtOA1vk=e68nWE}Wj29cjIL40_va>CcSvMb8>=?al>D zc!T`*VdnR`HvjEeJ#BU|`PH8O>P?1b;Qr!l5z9SL2w9`jQI5Yy54Pd4BR&fy2w- zDbJ8aZ#?Tf!FjYy(E{iU-E-k6)xk7cp{B5eLh2Z3;$Z5awsk;jCkzX0tK+v_daCt9 z*@N3VLCq83POtlE!R^wsQG3ZQysND7U&{!v>HcOR=_x0p94?7=EAS-K_;2!GuC`45 zoAsa8{#35MNH(>kx$VG{4zvH6{jXfD?VtV65o`UIK8>-dwMi$JcvvHp(Hdv#_3ZTe z*ZP&Stf1WNcUWX^%6k)?t0O&g0YUoF`gaQ?yW%vZZ=3WZzvpy4g{hsd(~e&h2m0N7 z_2Yj=s^MeSn!1V~v)16!_G7omi{cpNeYH)i`$;r=0iWc9@qc|yB*p4~#wXcs@^A8= zR2zE8ytP6thoI5FGx68Af4?dE z8;A;m@{t5ZAl1B-#g*ErHUFBA)M+~^s1HH*3!=vbAT|GXK~kG${cqH6qklKVUr-vb z_GQKWa-;dJmj3fkWkPD}uUfqurQ`G|Abl#D?lFLzFUs}HpYR2IZCXhm(ILAmr6WAO zbuGo0j$?jx8^nIJUB-|xr(#(U{|a-=t%dk=mGzg}qsJt-8v8YUDUA6GrTEQ`o1s~K zAdGTIMbv`$Wu6eF;%OdF1M1@^5lt&TO-J)9;fo0fr{^^!oDl!;Hl9d%Y(k+>py{w! TEUqTUVVHpo9bKd8h#TN95rn+6 literal 0 HcmV?d00001 diff --git a/addons/explosives/UI/seven_segment_5.paa b/addons/explosives/UI/seven_segment_5.paa new file mode 100644 index 0000000000000000000000000000000000000000..7622645c241a820a57bddaf771c57baa4996b9f7 GIT binary patch literal 11594 zcmeHNJ!~9B6n?&Oyc^+UjU@<(y)aNXkz)&qA1P9f8=pXS3J?Vdr66^hC`Ae+Bx6Da zQRIq(0)r()1qmI{SZE}d2(C$aj!+5;pjfzqX2bBlncXAa^XAT*HNKb~>GsW=dH?fv z_RZdonWd%H8!s)r*%~JzW6X@j&$V7na67-$dSwxKjenSbeR1)%1@2$r-(?Clzea?=^YhIB6b#dCL=Wg>tu+@TW$>qkGr}VG#(2CSr(l_B5IdRA1-av!55j+xmnr2?SLGlvY zxu)dA`j;Bt?c6Iq7$&#@W_85evSSAgul%ppzsmpW{;&4GYX8qZ+p6c^|K<6gt#@^V{eYV* z{J1ho(1K7SwJh(bLhGz(TQ?hl*b`ev`TUcv3j&ZFfBNd-l%_D$5sm;R-c0k!jBI`F z;(#lj3-<}N8r z_0P+VgEXG!OO^js{^#Y!evU)8N$NEe!WJ(Iwd3cy+Sb3loacJD*H2{cHx56ub!u5Q zq27gj9J9)jS+*Q&pF0khZll%@&ie!#2VA(hS)+HCl8fmes`+5*P)TMSLqI1=gZYa>3Nb5mz%bthY zfEyrWqow`-0zyZnzx?}8+I|Ur{P^kR74W>=()|3veD@wS zdAx(hAvbY;N4VS1gd{!%tU>Fx+XQM*&pVh6b38Dt;M>&NhT(2=hcyrU%&xO`4T~rI ziT!D$Qa{X4_V<_*2U0(xO(BN0BTEOn@YO_iJP!vww^X%-%-+tUPshQO97g(X7W|iz z(xq^UrtHVWjDyuS;i?^@`^hoSPeWUcp___HA?ADGQ%a@dDa1Sn!d_LNd*=9DkxFNR dYPZ{%w+CNKXcR!V+l|L*9Hpxr?Y1p9(LcKAgQ@@k literal 0 HcmV?d00001 diff --git a/addons/explosives/UI/seven_segment_6.paa b/addons/explosives/UI/seven_segment_6.paa new file mode 100644 index 0000000000000000000000000000000000000000..d805a028d5caa4304e608d5b5ef030e026e353e2 GIT binary patch literal 11634 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 P2t_Jg39YJCO%3oL#+>$F literal 0 HcmV?d00001 diff --git a/addons/explosives/UI/seven_segment_9.paa b/addons/explosives/UI/seven_segment_9.paa new file mode 100644 index 0000000000000000000000000000000000000000..9139d4ea1782393e3339af7feb36a246c7392d10 GIT binary patch literal 11650 zcmeGiONbmr^ksUo)v}xPW)FU#H$I~nnaKweiNDFzF3L_0iU&m^=s6e7QACza1O-L* z?7`JQ@F39$ilB#43-%(Y%q7Q8lobTQLnm`EVsF~_s=CM7%5>&qPu2}xF#YoJ zbp_zNeE@Q*K*O}`!C6aFaSiQS-x{^UjB;L>NMC`73E zF1{NGgok|hOx$TPSl05dnr)7M5)>TWO!o80=4#u_V$3D0t#CLr6 zFme9<;+;6Tc=tiyy&&*}4_E6)0`VX*;IHe#BRh7~XG!2va}SoU38fOd;J1jhnsKAs z->(T7*EO5 z0&&!Ls~3d~>Ue606Ve3!6^KK--FA%2fv6J>WpZIBxv=EJ-fukl{ayH4P(e80yZZuh z{Jm;z8lg%HPg3mSLxDI#Yr!YNV(oF9SSL%?B8guv&LB)ijX^xpJ{y;JMMA;-N6!PE zoCUQaabo4%Jy%-@w?$_vmxPz3sm6wW6$r_2G7yzWyi|8^Wy-I|3 zmohrj^zb8ISPjHsg0EgaNICz+m)f=;eAvacb{dGtgUU26V7_tSn9}eJh;@wVepINo zN`ADz(sLN*ZF3arF#Ip;Rr?*cwBNLa%5nG)wEd=f@{aAO^0YlxzBy0Yf5((R$=1t8 zhf4EDJ@kxfcV2vKm_vi1Eic*{&o_`P-&KKXGpT^{D=4@tHXAb@*yez3V__ zXo@INH|04fcwQ(!a zvwSJ)zo`GL+Sp7w>yDFtjT>Q&j|!FHr@mVEznz+=ezIJi28Ji+A%D`Zp*3>CbB6l=&H`Ut1v~rE{)SyHh*E=G|V;b&%STlvK7E zswR1T94ckY88^;qsr>cx$GUhh?PkG3|9IlhaiyX2n!WRyTzj5O_UZgy6R>jn`svga z<5@MOlJB4P4c27w_M>aPe4(KW+k%(=)Ki(Z+47P93dny)-T0UoAu=P}(Li5At4b-B zW1IOSy*9J;**NnNyXr;fw{AAw#uNU;{*5NkzqAIjzr&n3kopm>_SbLQlj3aGAoh2! zCze#ThQ!}W=d&Q|Ne&}a3XE~N8p!WbY`$rj)_+1Kx>-b5$8jcDvKWF-~Y)hBCLVjK-@i%?RAMKHU?)N(iQ2|A zqD_=(#KwS)T`pRsGO(Qp6UX;vcM}Yo%L&PGx6Huqo7wq#zxU?jy`Aw)r_;K9wR5Lc z1z?OhVbgb8H?p+N@3gMBIbETL^KZ4=H=7inr)Ppbo<0l68K7|ictg)Odio3x;XU>+ zffh^?GOM%|^^UGbScX{f{4bSlUpJm0k$C$(h=nh!D^QJfXo=-0T%3)Ckf*kx=2{Z3 z{sh7&MkC>AO$8Qq0$)z=1QcB|fuNF+4yc~4ui;unj@4^QQNzzS#HC1{kHRanHBNt; zYWf@aQK1GFCi~?W3`s;#xEMZ?`1m1+&vl=P*;OQpu&#E4`00Il@+Ulmm6Y#r07y1RuCJkHn z=60h+0{$9doOL=+GO{&jI2evN>g3?Yftv?z9dPS_TL+GJ9pE`;Ol*?Vnr@^SLv#mbEXHxAr5aP#1Q*8ywj z72_xOr_ldV44y)n=T(NS5Py!H+@I3!FN~kupE#4lzq+P#h+GC`rxw4J0v%%pUyLw zD(;*D#|K5Zuk18|`c$Uu#|MLwtLvw~am?e7{dr3jORc|pM^%pdr8{7`J3a8@Gwwg; z7X|0O4Q|~#s_~PzBl#*I-SDKqsvI`TJkb?TCMHReq2uo`d0ECq`qzg699I6I{Nvu< zYN*-EzSKXnd=MM?cP^af^ literal 0 HcmV?d00001 diff --git a/addons/explosives/XEH_PREP.hpp b/addons/explosives/XEH_PREP.hpp index 17558ee54c..c04e0d3133 100644 --- a/addons/explosives/XEH_PREP.hpp +++ b/addons/explosives/XEH_PREP.hpp @@ -1,4 +1,3 @@ - PREP(addCellphoneIED); PREP(addClacker); PREP(addDetonateActions); @@ -16,28 +15,19 @@ PREP(detonateExplosive); PREP(detonateExplosiveAll); PREP(dialPhone); PREP(dialingPhone); - PREP(handleScrollWheel); - PREP(hasExplosives); PREP(hasPlacedExplosives); - PREP(interactEH); - PREP(getDetonators); PREP(getPlacedExplosives); PREP(getSpeedDialExplosive); - PREP(module); - PREP(onIncapacitated); PREP(onInventoryChanged); - -PREP(openTimerSetUI); - +PREP(openTimerUI); PREP(placeExplosive); PREP(removeFromSpeedDial); - PREP(scriptedExplosive); PREP(selectTrigger); PREP(setupExplosive); diff --git a/addons/explosives/config.cpp b/addons/explosives/config.cpp index a35137733e..3d2077ff1d 100644 --- a/addons/explosives/config.cpp +++ b/addons/explosives/config.cpp @@ -8,16 +8,14 @@ class CfgPatches { requiredVersion = REQUIRED_VERSION; requiredAddons[] = {"ace_interaction"}; author = ECSTRING(common,ACETeam); - authors[] = {"Garth 'L-H' de Wet"}; + authors[] = {"Garth 'L-H' de Wet", "mharis001"}; url = ECSTRING(main,URL); VERSION_CONFIG; }; }; #include "ACE_Settings.hpp" - #include "CfgEventHandlers.hpp" - #include "CfgAmmo.hpp" #include "CfgMagazines.hpp" #include "CfgWeapons.hpp" @@ -25,10 +23,18 @@ class CfgPatches { #include "CfgCloudlets.hpp" #include "ACE_Triggers.hpp" -#include "ExplosivesUI.hpp" -#include "GUI_VirtualAmmo.hpp" #include "ACE_Arsenal_Stats.hpp" +// UI stuff +class RscText; +class RscEdit; +class RscPicture; +class RscButton; +class ctrlXSliderH; +#include "ExplosivesUI.hpp" +#include "TimerDialog.hpp" +#include "GUI_VirtualAmmo.hpp" + class CfgActions { class None; class ActivateMine: None { diff --git a/addons/explosives/functions/fnc_openTimerSetUI.sqf b/addons/explosives/functions/fnc_openTimerSetUI.sqf deleted file mode 100644 index 7175f425d4..0000000000 --- a/addons/explosives/functions/fnc_openTimerSetUI.sqf +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Author: Garth 'L-H' de Wet - * Opens the UI for timer setting of an explosive - * - * Arguments: - * 0: Explosive - * 1: Magazine - * - * Return Value: - * None - * - * Example: - * [_explosive, "SatchelCharge_Remote_Mag"] call ACE_Explosives_fnc_openTimerSetUI; - * - * Public: No - */ -#include "script_component.hpp" - -params ["_explosive", "_mag"]; -TRACE_2("params",_explosive,_mag); - -createDialog "RscACE_SelectTimeUI"; -sliderSetRange [8845, 5, 900]; // 5seconds - 15minutes -sliderSetPosition [8845, 30]; - -GVAR(explosive) = _explosive; - -DFUNC(SetTimer) = { - [ - ACE_player, - getPosATL GVAR(explosive), - GVAR(explosive) getVariable QGVAR(Direction), - GVAR(explosive) getVariable QGVAR(class), - "Timer", - [floor sliderPosition 8845], - GVAR(explosive) - ] call FUNC(placeExplosive); - closeDialog 0; -}; - -buttonSetAction [8860, QUOTE(call DFUNC(SetTimer);)]; -buttonSetAction [8855, QUOTE(closeDialog 0;)]; - -ctrlSetText [8870, format[localize LSTRING(TimerMenu),0, 30]]; diff --git a/addons/explosives/functions/fnc_openTimerUI.sqf b/addons/explosives/functions/fnc_openTimerUI.sqf new file mode 100644 index 0000000000..5b630df912 --- /dev/null +++ b/addons/explosives/functions/fnc_openTimerUI.sqf @@ -0,0 +1,77 @@ +/* + * Author: mharis001 + * Opens the Explosive Timer UI for given explosive. + * + * Arguments: + * 0: Explosive + * + * Return Value: + * True + * + * Example: + * [_explosive] call ace_explosives_fnc_openTimerUI + * + * Public: No + */ +#include "script_component.hpp" + +params ["_explosive"]; +TRACE_1("Opening timer UI",_explosive); + +createDialog QGVAR(timerUI); +private _display = uiNamespace getVariable [QGVAR(timerDisplay), displayNull]; + +// Update slider speed to 1s +(_display displayCtrl IDC_TIMER_SLIDER) sliderSetSpeed [1, 1]; + +// Add confirm button action +GVAR(explosive) = _explosive; +(_display displayCtrl IDC_TIMER_CONFIRM) ctrlAddEventHandler ["ButtonClick", { + params ["_button"]; + + private _slider = ctrlParent _button displayCtrl IDC_TIMER_SLIDER; + private _time = floor sliderPosition _slider; + private _explosive = GVAR(explosive); + [ + ACE_player, + getPosATL _explosive, + _explosive getVariable QGVAR(Direction), + _explosive getVariable QGVAR(class), + "Timer", + [_time], + _explosive + ] call FUNC(placeExplosive); + closeDialog 0; +}]; + +// Add EH to allow for changing values by scrolling +_display displayAddEventHandler ["MouseZChanged", { + params ["_display", "_scroll"]; + + private _change = round _scroll; + if (cba_events_control) then {_change = _change * 10}; + + private _slider = _display displayCtrl IDC_TIMER_SLIDER; + private _value = (sliderPosition _slider + _change) max TIMER_VALUE_MIN min TIMER_VALUE_MAX; + _slider sliderSetPosition _value; +}]; + +// Add PFH to update the digit display (delay of 0.1s) +// Done like this to avoid flicker that would happen when rapidly changing values through EH method +[{ + params ["_display", "_pfhID"]; + + if (isNull _display) exitWith { + _pfhID call CBA_fnc_removePerFrameHandler; + }; + + private _value = sliderPosition (_display displayCtrl IDC_TIMER_SLIDER); + private _minutes = floor (_value / 60); + private _seconds = floor (_value % 60); + private _digitArray = [floor (_minutes / 10), _minutes mod 10, floor (_seconds / 10), _seconds mod 10]; + { + (_display displayCtrl _x) ctrlSetText format [QPATHTOF(UI\seven_segment_%1.paa), _digitArray select _forEachIndex]; + } forEach TIMER_DIGIT_IDCs; +}, 0.1, _display] call CBA_fnc_addPerFrameHandler; + +true diff --git a/addons/explosives/functions/fnc_startTimer.sqf b/addons/explosives/functions/fnc_startTimer.sqf index 737e6a6586..10faae3707 100644 --- a/addons/explosives/functions/fnc_startTimer.sqf +++ b/addons/explosives/functions/fnc_startTimer.sqf @@ -5,7 +5,7 @@ * Arguments: * 0: Explosive * 1: Time till detonate - * 2: Trigger Item Classname (default: "#timer") + * 2: Trigger classname (default: "#timer") * * Return Value: * None @@ -17,13 +17,13 @@ */ #include "script_component.hpp" -params ["_explosive", "_delay", ["_triggerClassname", "#timer", [""]]]; -TRACE_3("startTimer",_explosive,_delay,_triggerClassname); +params ["_explosive", "_delay", ["_trigger", "#timer", [""]]]; +TRACE_3("Starting timer",_explosive,_delay,_trigger); [{ - params ["_explosive", "_triggerClassname"]; - TRACE_1("Explosive Going Boom",_explosive); + params ["_explosive", "_trigger"]; + TRACE_1("Explosive detonating from timer",_explosive); if (!isNull _explosive) then { - [_explosive, -1, [_explosive, 0], _triggerClassname] call FUNC(detonateExplosive); + [_explosive, -1, [_explosive, 0], _trigger] call FUNC(detonateExplosive); }; -}, [_explosive, _triggerClassname], _delay] call CBA_fnc_waitAndExecute; +}, [_explosive, _trigger], _delay] call CBA_fnc_waitAndExecute; diff --git a/addons/explosives/script_component.hpp b/addons/explosives/script_component.hpp index b276fc8356..77ca89d32e 100644 --- a/addons/explosives/script_component.hpp +++ b/addons/explosives/script_component.hpp @@ -16,6 +16,21 @@ #include "\z\ace\addons\main\script_macros.hpp" +#include "\a3\ui_f\hpp\defineCommonGrids.inc" +#include "\a3\ui_f\hpp\defineCommonColors.inc" + +#define IDC_TIMER_DIGIT_1 8501 +#define IDC_TIMER_DIGIT_2 8502 +#define IDC_TIMER_DIGIT_3 8503 +#define IDC_TIMER_DIGIT_4 8504 +#define IDC_TIMER_SLIDER 8505 +#define IDC_TIMER_CONFIRM 8506 +#define TIMER_DIGIT_IDCs [IDC_TIMER_DIGIT_1, IDC_TIMER_DIGIT_2, IDC_TIMER_DIGIT_3, IDC_TIMER_DIGIT_4] + +#define TIMER_VALUE_MIN 5 +#define TIMER_VALUE_MAX 900 +#define TIMER_VALUE_DEFAULT 30 + #define PLACE_WAITING -1 #define PLACE_CANCEL 0 #define PLACE_APPROVE 1 diff --git a/addons/explosives/stringtable.xml b/addons/explosives/stringtable.xml index 320614a9db..70b6ffbe47 100644 --- a/addons/explosives/stringtable.xml +++ b/addons/explosives/stringtable.xml @@ -1024,5 +1024,8 @@ Portée du détonateur 爆発範囲 + + Explosive Timer + From e3c53965936051b10de96ba13211b084eecf2074 Mon Sep 17 00:00:00 2001 From: maike1860 Date: Sat, 23 Jun 2018 08:14:11 +0800 Subject: [PATCH 157/235] Add Chinese translation Modify grammar (#6400) Translations- Chinese: Modify grammar --- addons/advanced_fatigue/stringtable.xml | 2 ++ addons/arsenal/stringtable.xml | 5 +++ addons/ballistics/stringtable.xml | 5 +++ addons/common/stringtable.xml | 2 ++ addons/explosives/stringtable.xml | 1 + addons/finger/stringtable.xml | 14 ++++---- addons/flashlights/stringtable.xml | 7 ++-- addons/frag/stringtable.xml | 12 +++---- addons/gforces/stringtable.xml | 1 + addons/hearing/stringtable.xml | 6 ++++ addons/huntir/stringtable.xml | 20 ++++++------ addons/interact_menu/stringtable.xml | 9 +++--- addons/map/stringtable.xml | 6 ++-- addons/map_gestures/stringtable.xml | 22 ++++++------- addons/maverick/stringtable.xml | 16 ++++----- addons/medical/stringtable.xml | 14 +++++--- addons/medical_ai/stringtable.xml | 2 ++ addons/medical_menu/stringtable.xml | 3 +- addons/missileguidance/stringtable.xml | 10 +++--- addons/mx2a/stringtable.xml | 2 +- addons/nametags/stringtable.xml | 43 +++++++++++++------------ addons/nightvision/stringtable.xml | 2 ++ addons/overpressure/stringtable.xml | 2 ++ addons/pylons/stringtable.xml | 38 +++++++++++++--------- addons/quickmount/stringtable.xml | 6 ++-- addons/realisticnames/stringtable.xml | 16 +++++++++ addons/repair/stringtable.xml | 2 ++ addons/zeus/stringtable.xml | 4 +++ 28 files changed, 169 insertions(+), 103 deletions(-) diff --git a/addons/advanced_fatigue/stringtable.xml b/addons/advanced_fatigue/stringtable.xml index 9f7d70cf72..640e38b685 100644 --- a/addons/advanced_fatigue/stringtable.xml +++ b/addons/advanced_fatigue/stringtable.xml @@ -112,10 +112,12 @@ Sway factor 手ぶれ因数 + 抖动因数 Influences the amount of weapon sway. Higher means more sway. 武器を持つ手のぶれ度合いを設定します。 値が高ければ高いほど、手ぶれが強くなります。 + 影响手持武器的晃动程度,数值越高,抖动的越厉害. Enabled diff --git a/addons/arsenal/stringtable.xml b/addons/arsenal/stringtable.xml index 24e6968cb5..43821dac14 100644 --- a/addons/arsenal/stringtable.xml +++ b/addons/arsenal/stringtable.xml @@ -689,6 +689,7 @@ Potassium levels Taux de potassium カリウム レベル + 钾水平 Magnification @@ -710,21 +711,25 @@ Page Page ページ + 页面 Enable the faces / voices / insignias tabs Activer les onglets faces / voix / insignes 顔 / 声 / 記章タブを有効化 + 启用脸谱/声音/徽章/选项 Empty the selected container Vider le conteneur selectionné 選択されたコンテナは空です + 选择的箱子是空的 Exported class name to clipboard Nom de classe exporté dans le presse papier クリップボードへクラスネームを出力 + 将种类复制到剪贴板 diff --git a/addons/ballistics/stringtable.xml b/addons/ballistics/stringtable.xml index 7205ec8de0..962ce529be 100644 --- a/addons/ballistics/stringtable.xml +++ b/addons/ballistics/stringtable.xml @@ -2284,26 +2284,31 @@ Barrel twist 銃身の転度 + 膛线缠距 Barrel length Longueur du canon 銃身長 + 身管长度 Ballistic coefficient Coefficient ballistique 弾道係数 + 弹道系数 Bullet mass Masse d'une balle 弾丸重量 + 弹头重量 Muzzle velocity Vitesse à la bouche 銃口初速 + 枪口初速 diff --git a/addons/common/stringtable.xml b/addons/common/stringtable.xml index b164112e71..a5fb3d47c5 100644 --- a/addons/common/stringtable.xml +++ b/addons/common/stringtable.xml @@ -1181,9 +1181,11 @@ Flag (ACE - Black) + 旗帜(ACE-黑色): Flag (ACE - White) + 旗帜(ACE-白色): diff --git a/addons/explosives/stringtable.xml b/addons/explosives/stringtable.xml index 320614a9db..e70caf99e3 100644 --- a/addons/explosives/stringtable.xml +++ b/addons/explosives/stringtable.xml @@ -1023,6 +1023,7 @@ Explosive range Portée du détonateur 爆発範囲 + 爆炸范围 diff --git a/addons/finger/stringtable.xml b/addons/finger/stringtable.xml index 901509dc5b..96bab972cf 100644 --- a/addons/finger/stringtable.xml +++ b/addons/finger/stringtable.xml @@ -6,7 +6,7 @@ Fingerzeig Puntamento 指向指示器 - 指向指示器 + 指向标记器 指差し 가리키기 @@ -23,7 +23,7 @@ Mostra puntatore per te stesso 自分に指差し表記を表示する 자신이 가리키는곳을 보여줍니다 - 显示指向指示器给自己 + 在自己身边显示指向标记 顯示指向指示器給自己 @@ -39,7 +39,7 @@ Mostra puntatore per il giocatore indicato. Questa opzione non influisce la possibilità che gli altri giocatori vedano il puntatore プレイヤーへ指差し表記を描画します。これは他のプレイヤーの表記に影響しません。 대상이 가리키는곳을 보이게 합니다. - 显示指向指示器给玩家自己。此选项设定并不影响其他玩家能否看到指示器 + 显示指向标记给玩家自己。此选项设定并不影响其他玩家能否看到指示标记 顯示指向指示器給玩家自己。此選項設定並不影響其他玩家能否看到指示器 @@ -55,7 +55,7 @@ Indicatore di puntamento 指差し表記 가리키기 표시기 - 指向指示器 + 指向标记 指向指示器 @@ -71,7 +71,7 @@ Colore del cerchio dell'indicatore di puntamento 指差し表記の円の色 가리키기의 원형 색상 - 指向指示器颜色 + 指向标记颜色 指向指示器顏色 @@ -151,7 +151,7 @@ Raggio massimo puntamento 指差しの最大範囲 가리키기 최대 범위 - 指向指示器最大显示距离 + 指向标记最大显示距离 指向指示器最大顯示距離 @@ -167,7 +167,7 @@ Distanza massima tra giocatori per mostrare l'indicatore di puntamento [default: 4 metri] 指差し表記が他のプレイヤーに表示される範囲を決定できます。(標準 4 メートル) 플레이어 사이에서 가리키기 표시를 보이게 하는 최대거리를 설정합니다[기본설정: 4 미터] - 设定指向指示器最大显示距离。[预设: 4公尺] + 设定指向标记最大显示距离。[预设: 4公尺] 設定指向指示器最大顯示距離。[預設: 4公尺] diff --git a/addons/flashlights/stringtable.xml b/addons/flashlights/stringtable.xml index 0544baefa7..96f8339df7 100644 --- a/addons/flashlights/stringtable.xml +++ b/addons/flashlights/stringtable.xml @@ -13,7 +13,7 @@ Fulton MX-991 フルトン MX-991 Fulton MX-991 - Fulton MX-991 + Fulton MX-991手电筒 Fulton MX-991 @@ -43,7 +43,7 @@ Maglite XL50 マグライト XL50 Maglite XL50 - Maglite XL50 + Maglite XL50手电筒 Maglite XL50 @@ -73,7 +73,7 @@ KSF-1 KSF-1 KSF-1 - KSF-1 + KSF-1手电筒 KSF-1 @@ -95,6 +95,7 @@ Map light color Couleur de la lampe sur carte 光の色 + 地图上手电的颜色 diff --git a/addons/frag/stringtable.xml b/addons/frag/stringtable.xml index 071924ac65..3d0d210a11 100644 --- a/addons/frag/stringtable.xml +++ b/addons/frag/stringtable.xml @@ -122,7 +122,7 @@ Numero massimo di Proiettili Tracciati 最大弾頭追跡数 최대 발사체 추적수 - 最大碎片/剥落粒子追踪数量 + 最大碎片粒子追踪数量 最大碎片/剝落粒子追蹤數量 @@ -138,7 +138,7 @@ Questo parametro controlla il numero massimo di proiettili che la frammentazione e il sistema di spalling tracciano in ogni momento. Se più proiettili sono sparati, non verranno tracciati. Abbassa questo parametro se non vuoi cali di FPS in scenari con molti proiettili (>200 proiettili in aria contemporaneamente) 時間が許すかぎり、破片と剥離システムの最大数を設定できます。設定数以上の弾丸が発射された場合、それは対象になりません。もし多い弾数による FPS の低下を望まない場合は、低い数へ設定にします。( &gt;一度に空中内で200発) 이 설정은 조각 및 파편 시스템으로 인해 생긴 발사체의 수를 결정합니다. 만약 더 많은 발사체가 나올경우 정해진 수 이외에는 추적하지 않습니다. 이 설정을 낮춤으로써 파편이 많은 시나리오를 실행할때 더욱 원활히 진행할 수 있습니다 (한 번에 200개 이하) - 设定在指定时间内,系统最大可追踪的碎片/剥落粒子数量。如有更多的碎片在这之后产生,这些粒子将不会被追踪。如果你想要维持好的帧数,此设定勿调的过高。( >一次200颗粒子) + 设定在指定时间内,系统最大可追踪的碎片粒子数量。如有更多的碎片在这之后产生,这些粒子将不会被追踪。如果你想要维持好的帧数,此设定勿调的过高。( >一次200颗粒子) 設定在指定時間內,系統最大可追蹤的碎片/剝落粒子數量。如有更多的碎片在這之後產生,這些粒子將不會被追蹤。如果你想要維持好的幀數,此設定勿調的過高。( >一次200顆粒子) @@ -154,7 +154,7 @@ Numero massimo di proiettili per Frame フレームごとの最大弾頭数 프레임당 최대 발사체 수 - 每一帧数(FPS)最大碎片/剥落粒子数量 + 每一帧数(FPS)最大碎片粒子数量 每一幀數(FPS)最大碎片/剝落粒子數量 @@ -170,7 +170,7 @@ Il numero di calcoli per tracciamento di spalling ad ogni frame. Questo aiuta a distribuire l'impatto del tracciamento dello spalling su più frame, limitando ancora di più l'impatto. 与えられたフレームごとに追跡する剥離の数を決定します。FPS に影響をあたえないよう、剥離を複数のフレームで追跡し、分散させています。 가능한 프레임마다 파편을 추적 및 계산합니다. 여러 프레임에 걸쳐 파편난 발사체를 추적하여 FPS에 도움을 줍니다. 이를 제한함으로써 더욱 큰 효과를 볼 수 있습니다. - 设定在每一帧数内,系统最大可追踪的碎片/剥落粒子数量。此设定可有效帮助系统减低计算压力。 + 设定在每一帧数内,系统最大可追踪的碎片粒子数量。此设定可有效帮助系统减低计算压力。 設定在每一幀數內,系統最大可追蹤的碎片/剝落粒子數量。此設定可有效幫助系統減低計算壓力。 @@ -186,7 +186,7 @@ (Solo SP) Debug Tracciamento Frag/Spall (SP のみ) 破片/剥離のデバッグ用表示 (싱글플레이 전용) 조각/파편 디버그 추적화 - (仅在单人模式) 碎片/剥落除错追踪 + (仅在单人模式) 追踪显示碎片粒子 (僅在單人模式) 碎片/剝落除錯追蹤 @@ -201,7 +201,7 @@ (Только для одиночной игры) Требует перезапуска миссии/редактора. Включает визуальные следы от осколков и обломков в режиме одиночной игры. (Solo SP) Richiede un restart editor/missione. Abilita il tracciamento visivo di schegge da frammentazione/spalling in modalità Giocatore Singolo. (SP のみ) ミッションとエディタの再起動が必要です。有効化すると、シングルプレイでのみ破片と剥離の弾頭が見えるようになります。 - (仅在单人模式) 让你在单人模式下可观察到碎片/剥落粒子的移动轨迹。 + (仅在单人模式) 激活后,只有在单人模式下才可观察到碎片粒子的移动轨迹。 (僅在單人模式) 讓你在單人模式下可觀察到碎片/剝落粒子的移動軌跡。 (SP 전용) 임무 / 편집자가 다시 시작해야합니다. SP 게임 모드에서만 조각화 및 스 폴링 라운드의 시각적 추적을 가능하게합니다. diff --git a/addons/gforces/stringtable.xml b/addons/gforces/stringtable.xml index c8251f1532..b96f269b95 100644 --- a/addons/gforces/stringtable.xml +++ b/addons/gforces/stringtable.xml @@ -35,6 +35,7 @@ G-force reduction Reduction des Gs 耐 G 性 + 减少G力 diff --git a/addons/hearing/stringtable.xml b/addons/hearing/stringtable.xml index 88863f7e0f..8f64dea726 100644 --- a/addons/hearing/stringtable.xml +++ b/addons/hearing/stringtable.xml @@ -286,27 +286,33 @@ Hearing protection Protection auditive 聴覚保護 + 听力保护 Volume muffling Étouffement des sons 音量低下 + 降低音量 Earplugs Volume 耳栓時の音量 + 耳塞时音量 Volume when using earplugs. 耳栓使用時の音量を決定します。 + 决定带上耳塞时的音量 Unconscious Volume 気絶時の音量 + 无意识时音量 Volume when unconscious. 気絶時の音量を決定します。 + 决定处于无意识时的音量 diff --git a/addons/huntir/stringtable.xml b/addons/huntir/stringtable.xml index 9360774031..f8211753e6 100644 --- a/addons/huntir/stringtable.xml +++ b/addons/huntir/stringtable.xml @@ -14,7 +14,7 @@ Caixa de transporte do HuntIR HuntIR 輸送箱 HuntIR 수송함 - 高空战术成像器运输箱 + 高空战术摄像头运输箱 高空戰術成像器運輸箱 @@ -30,7 +30,7 @@ Cartucho HuntIR HuntIR 弾頭 HuntIR 유탄 - 高空战术成像器弹药 + 高空战术摄像头弹药 高空戰術成像器彈藥 @@ -46,7 +46,7 @@ Monitor HuntIR HuntIR モニタ HuntIR 모니터 - 高空战术成像器显示面板 + 高空战术摄像头显示面板 高空戰術成像器顯示面板 @@ -62,7 +62,7 @@ Ativar monitor do HuntIR HuntIR を起動する HuntIR 모니터 켜기 - 开启高空战术成像器显示面板 + 开启高空战术摄像头显示面板 開啟高空戰術成像器顯示面板 @@ -78,7 +78,7 @@ Câmera: カメラ: 카메라: - 摄影机: + 摄像头: 攝影機: @@ -126,7 +126,7 @@ Pressione ESC para sair da câmera ESC を押しカメラを抜ける ESC를 눌러 카메라 나가기 - 按下ESC退出摄影机 + 按下ESC退出摄像头 按下ESC退出攝影機 @@ -174,7 +174,7 @@ W/S - Seleciona câmera W/S - カメラを選択 W/S - 카메라 선택 - W/S - 切换摄影机 + W/S - 切换摄像头 W/S - 切換攝影機 @@ -190,7 +190,7 @@ Esquerda/Direita - Rotaciona câmera Left/Right - カメラ回転 좌/우 - 카메라 돌리기 - 左/右 - 旋转摄影机 + 左/右 - 旋转摄像头 左/右 - 旋轉攝影機 @@ -206,7 +206,7 @@ Acima/Abaixo - Eleva/Abaixa a câmera Up/Down - カメラ角度を変更 상/하 카메라 올리기/내리기 - 上/下 - 上升/下降摄影机 + 上/下 - 上升/下降摄像头 上/下 - 上升/下降攝影機 @@ -238,7 +238,7 @@ R - Redefine a câmera R - カメラを初期化 R - 카메라 초기화 - R - 重置摄影机 + R - 重置摄像头 R - 重置攝影機 diff --git a/addons/interact_menu/stringtable.xml b/addons/interact_menu/stringtable.xml index b14dac6006..1056702203 100644 --- a/addons/interact_menu/stringtable.xml +++ b/addons/interact_menu/stringtable.xml @@ -142,7 +142,7 @@ Interação - Max. de Texto インタラクション - 文字の色 상호작용 - 문자색깔 - 互动 - 文字最大化 + 互动-文字颜色最大值 互動 - 文字最大化 @@ -158,7 +158,7 @@ Interação - Min. de Texto インタラクション - 文字の背景色 상호작용 - 문자배경색 - 互动 - 文字最小化 + 互动-文字颜色最小值 互動 - 文字最小化 @@ -174,7 +174,7 @@ Interação - Max. de Sombra インタラクション - 文字への影の色 상호작용 - 문자그림자색 - 互动 - 阴影最大化 + 互动 - 阴影最大值 互動 - 陰影最大化 @@ -190,7 +190,7 @@ Interação - Min. de Sombra インタラクション - 文字への影の最低色 상호작용 - 문자그림자배경색 - 互动 - 阴影最小化 + 互动 - 阴影最小值 互動 - 陰影最小化 @@ -449,6 +449,7 @@ Selector Color セレクターの色 + 选择器颜色 diff --git a/addons/map/stringtable.xml b/addons/map/stringtable.xml index a19fd539e2..e4ba587864 100644 --- a/addons/map/stringtable.xml +++ b/addons/map/stringtable.xml @@ -45,7 +45,7 @@ Simula illuminazione della mappa in base alla luce ambientale e agli oggetti del giocatore? 地図へ環境光やプレイヤーのアイテムに基づいた光のシミュレーションをおこないますか? 주변 환경및 플레이어 조명에 의한 빛 변화를 지도에 반영할까요? - 透过环境光与玩家的物品来决定地图亮度? + 透过环境光与玩家的手电筒来决定地图亮度. 透過環境光與玩家的物品來決定地圖亮度? @@ -75,7 +75,7 @@ Aggiungi luce esterna a giocatori che usano la torcia in mappa? プレイヤが地図上でフラッシュライトを使うと、照らすようにしますか? 지도에 불빛을 비치는 플레이어를 조금 더 밝게 합니까? - 当玩家拥有手电筒时,增加地图亮度? + 当玩家打开手电筒时,增加地图亮度. 當玩家擁有手電筒時,增加地圖亮度? @@ -107,7 +107,7 @@ Far scuotere la mappa mentre cammini? 歩いているときは地図を揺らしますか? 걸을때 지도보면 흔들리게 합니까? - 走路时让地图有震动的感觉? + 走路时打开地图会产生晃动. 走路時讓地圖有震動的感覺? diff --git a/addons/map_gestures/stringtable.xml b/addons/map_gestures/stringtable.xml index 2bcc1ca4bd..ce0c715c33 100644 --- a/addons/map_gestures/stringtable.xml +++ b/addons/map_gestures/stringtable.xml @@ -13,7 +13,7 @@ Gestes de carte マップ ジェスチャ 지도 신호 - 地图指示器 + 地图标识器 地圖指示器 @@ -43,7 +43,7 @@ Distance max. des gestes de carte マップ ジェスチャの最大範囲 지도 신호 최대 거리 - 地图指示器最大范围 + 地图标识器最大范围 地圖指示器最大範圍 @@ -58,7 +58,7 @@ Distance max. entre les joueurs pour montrer le pointage sur carte. (Défaut : 7m) プレイヤのマップ ジェスチャによる表示範囲を設定します [標準:7 メートル] 플레이어간에 지도 신호 표시거리를 설정합니다. [기본: 7 미터] - 设定地图指示器显示的最大范围距离 [预设: 7公尺] + 设定地图标识器显示的最大范围距离 [预设: 7公尺] 設定地圖指示器顯示的最大範圍距離 [預設: 7公尺] @@ -87,7 +87,7 @@ Couleur par défaut pour les chefs de groupe quand il n'y a pas de réglage pour le groupe. (Module : laisser vide pour ne pas forcer chez les clients) グループ設定が存在しない場合に、グループ リーダーへ設定される色の値を設定します。[モジュール:空の場合はクライアントへ強制しません] 그룹 설정이 없는 경우 리더의 예비 색상 값입니다. [모듈: 클라이언트에서 강체치 않기 위해 공백으로 비워둘것] - 当没有设定小队颜色时,此功能会定义队长的指示器颜色。[模块: 此栏留空来保持预设颜色] + 当没有设定小队颜色时,此功能会定义队长的标识器颜色。[模块: 此栏留空来保持预设颜色] 當沒有設定小隊顏色時,此功能會定義隊長的指示器顏色。[模塊: 此欄留空來保持預設顏色] @@ -116,7 +116,7 @@ Couleur par défaut quand il n'y a pas de réglage pour le groupe. (Module : laisser vide pour ne pas forcer chez les clients) グループ設定が存在しない場合に、グループ リーダーへ設定される色の値を設定します。[モジュール:空の場合はクライアントへ強制しません] 그룹 설정이 없을 경우의 예비 색상입니다. [모듈: 클라이언트에서 강체치 않기 위해 공백으로 비워둘것] - 当没有设定小队颜色时,此功能会定义玩家的指示器颜色。[模块: 此栏留空来保持预设颜色] + 当没有设定小队颜色时,此功能会定义玩家的标识器颜色。[模块: 此栏留空来保持预设颜色] 當沒有設定小隊顏色時,此功能會定義玩家的指示器顏色。[模塊: 此欄留空來保持預設顏色] @@ -145,7 +145,7 @@ Couleur pour les chefs de groupe des groupes synchronisés avec le module. モジュールで同期されたグループのリーダー用に色の値を決定します。 그룹이 이 모듈에 동기화 됐을때의 리더 색상입니다. - 改变与此同步小队队长的指示器颜色。 + 改变与此同步小队队长的标识器颜色。 改變與此同步小隊隊長的指示器顏色。 @@ -174,7 +174,7 @@ Couleur pour les membres du groupe synchronisé avec ce module. モジュールで同期されたグループのメンバ用に色の値を決定します。 그룹이 이 모듈에 동기화 됐을때의 멤버 색상입니다. - 改变与此同步小队队员的指示器颜色 + 改变与此同步小队队员的标识器颜色 改變與此同步小隊隊員的指示器顏色 @@ -189,7 +189,7 @@ Gestes de carte - réglages de groupe マップ ジェスチャ - グループ設定 지도 신호 - 그룹 설정 - 地图指示器 - 队伍设定 + 地图标识器 - 队伍设定 地圖指示器 - 隊伍設定 @@ -234,7 +234,7 @@ Activer les gestes de carte マップ ジェスチャを有効化 지도 신호 활성화 - 启用地图指示器 + 启用地图标识器 啟用地圖指示器 @@ -263,7 +263,7 @@ Couleur des tags de nom à côté de marqueur de pointage sur carte. マップ ジェスチャに表示される、名前の色を決定します。 지도 색상에 표시되는 이름의 색상을 결정합니다. - 定义名称文字颜色。使其与地图指示器颜色有所区别。 + 定义名称文字颜色。使其与地图标识器颜色有所区别。 定義名稱文字顏色。使其與地圖指示器顏色有所區別。 @@ -278,7 +278,7 @@ Gestes de carte マップ ジェスチャ 지도 신호 - 地图指示器 + 地图标识器 地圖指示器 diff --git a/addons/maverick/stringtable.xml b/addons/maverick/stringtable.xml index 13a462f1b6..0ab905b1f0 100644 --- a/addons/maverick/stringtable.xml +++ b/addons/maverick/stringtable.xml @@ -8,7 +8,7 @@ AGM-65 Maverick L, Guida Laser Missile-Anti-Terra AGM-65 マーベリック L、レーザー誘導対地ミサイル AGM-65"小牛"飛彈L型,雷射導引對地導彈 - AGM-65"小牛"飞弹L型,雷射导引对地导弹 + AGM-65"小牛"空地L型,雷射导引对地导弹 AGM-65 Maverick L, 레이저 유도 대지 미사일 @@ -17,7 +17,7 @@ AGM-65 Maverick L [ACE] AGM-65 マーベリック L [ACE] AGM-65"小牛"飛彈L型 [ACE] - AGM-65"小牛"飞弹L型 [ACE] + AGM-65"小牛"空地L型 [ACE] AGM-65 Maverick L [ACE] @@ -26,7 +26,7 @@ 2x AGM-65 Maverick L [ACE] 2x AGM-65 マーベリック L [ACE] 2x AGM-65"小牛"飛彈L型 [ACE] - 2x AGM-65"小牛"飞弹L型 [ACE] + 2x AGM-65"小牛"空地L型 [ACE] 2x AGM-65 Maverick L [ACE] @@ -35,7 +35,7 @@ 3x AGM-65 Maverick L [ACE] 3x AGM-65 マーベリック L [ACE] 3x AGM-65"小牛"飛彈L型 [ACE] - 3x AGM-65"小牛"飞弹L型 [ACE] + 3x AGM-65"小牛"空地L型 [ACE] 3x AGM-65 Maverick L [ACE] @@ -52,7 +52,7 @@ Ch-25ML, Lasergelenkte Luft-Boden-Rakete Kh-25ML, 레이저 유도 대공 미사일 Kh-25ML,雷射導引對地導彈 - Kh-25ML,雷射导引对地导弹 + Kh-25ML,镭射导引空地导弹 Kh-25ML、レーザー誘導対地ミサイル @@ -61,7 +61,7 @@ 1x Х-25МЛ [ACE] 1x Kh-25ML [ACE] 1x Kh-25ML [ACE] - 1x Kh-25ML [ACE] + 1x Kh-25ML镭射空地导弹 [ACE] 1x Kh-25ML [ACE] @@ -71,7 +71,7 @@ AGM-65 Maverick L AGM-65 Maverick L AGM-65 マーベリック L - AGM-65"小牛"飛彈L型 + AGM-65"小牛"空地L型 AGM-65"小牛"飞弹L型 AGM-65 Maverick L @@ -81,7 +81,7 @@ Х-25МЛ Kh-25ML Kh-25ML - Kh-25ML + Kh-25ML镭射空地导弹 Kh-25ML diff --git a/addons/medical/stringtable.xml b/addons/medical/stringtable.xml index 53060befb6..e24d014815 100644 --- a/addons/medical/stringtable.xml +++ b/addons/medical/stringtable.xml @@ -46,7 +46,7 @@ Počet zobrazených předmětů po použití zdravotnického materiálu 医療廃棄物シミュレーション詳細度 의료폐기물 재현 상세도 - 医疗废弃物模拟细节 + 模拟医疗废弃物细节 醫療廢棄物模擬細節 @@ -62,7 +62,7 @@ Počet zobrazených předmětů po použití zdravotnického materiálu ovlivňuje počet objektů, které budou zobrazeny klientovi v místě použití zdravotnického materiálu. Vyšší množství objektů může způsobovat poklesy FPS a proto je toto nastavení čistě na klientovi. 医療廃棄物シミュレーションは各クライアントでローカルに作成される、医療廃棄物の詳細度を決定できます。ローカルで多くのアイテムがあると FPS の低下を引き起こすため、クライアント側のみの設定です。 의료폐기물 재현 상세도의 경우 얼마나 많은 수의 폐기물이 클라이언트 주변에 생성되는지를 정합니다. 매우 많은 수의 지역은 프레임드랍을 유발할 수 있습니다, 고로 이는 클라이언트 전용 설정입니다. - 设定医疗废弃物的最大产生数量,过多的数量会导致画面更新率延迟,因此这由用户端来设定。 + 设定医疗废弃物的最大产生数量,过多的数量会降低FPS,因此这由用户端性能来设定。 設定醫療廢棄物的最大產生數量,過多的數量會導致畫面更新率延遲,因此這由用戶端來設定。 @@ -5587,7 +5587,7 @@ AI はプレイヤーが医療的な理由で気絶している場合にかぎり、撃つのをためらいます。 Opóźnij stan wstrzymania ognia u AI kiedy gracz jest nieprzytomny z powodów medycznych. 의료상의 이유로 플레이어가 기절할 경우 인공지능이 발사를 지연합니다. - 当玩家为无意识的状态时, 延长AI的停火时间 + 当玩家为无意识的状态时, 延长AI的开火时间 當玩家為無意識的狀態時, 延長AI的停火時間 @@ -5602,7 +5602,7 @@ Задержка прекращения огня ботами при потере сознания AI が気絶者へためらってから射撃 기절할 경우 인공지능이 발사를 지연합니다 - 延长AI对已无意识玩家的停火时间 + 延长AI对已无意识玩家的开火时间 延長AI對已無意識玩家的停火時間 @@ -5626,26 +5626,32 @@ Unconscious animation during treatment 処置中に気絶アニメーション + 治疗时死亡动画 Allow animation of unconscious patients during treatment. 患者の処置中に気絶アニメーションを許可します。 + 在无意识患者治疗时死亡,会播放死亡动画? Move unconscious units from group グループから気絶ユニットを移動 + 从小队中移除无意识伤者 When a group member goes unconscious, removes them from their group. グループのメンバーが気絶すると、グループから退出させます。 + 当一个队员失去意识时,他将被移除出小队 Overdosing 過剰投与 + 过量 Makes patient vulnerable to Morphine/Epinephrine/Atropine overdosing. モルヒネ/アドレナリン/アトロピンの過剰投与により患者を脆弱にします。 + 当队员处于吗啡/肾上腺素/阿托品过量时再次受伤,他的伤害会更重 diff --git a/addons/medical_ai/stringtable.xml b/addons/medical_ai/stringtable.xml index 559fba299f..f3f1e7a172 100644 --- a/addons/medical_ai/stringtable.xml +++ b/addons/medical_ai/stringtable.xml @@ -4,10 +4,12 @@ Medical AI enabled for 次に AI 治療を有効 + AI医疗启用 Enable AI units to heal themselves and each other. AI ユニットの自己や相互治療を有効化します。 + 使AI单位能够彼此治疗自己 Only Server and HC diff --git a/addons/medical_menu/stringtable.xml b/addons/medical_menu/stringtable.xml index 9800c33bb2..c695fcc5e0 100644 --- a/addons/medical_menu/stringtable.xml +++ b/addons/medical_menu/stringtable.xml @@ -829,10 +829,11 @@ Medical Menu maximum range 治療メニューの最大範囲 + 医疗菜单最大范围 Maximum distance from where the Medical Menu can be opened. - 治療メニューを開く事ができる最大範囲 + 你可以打开医疗菜单的最大范围 diff --git a/addons/missileguidance/stringtable.xml b/addons/missileguidance/stringtable.xml index 7f03b695bc..e32c77eb93 100644 --- a/addons/missileguidance/stringtable.xml +++ b/addons/missileguidance/stringtable.xml @@ -62,7 +62,7 @@ DAGR DAGR DAGR - 直接攻击导引飞弹 + 直接攻击制导火箭弹 直接攻擊導引飛彈 @@ -78,7 +78,7 @@ Управляемая ракета лазерного наведения Hydra-70 DAGR ハイドラ-70 DAGR レーザ誘導ミサイル Hydra-70 DAGR 레이저 유도 미사일 - 九头蛇-70 直接攻击雷射导引飞弹 + 九头蛇-70mm 制导航空火箭弹 九頭蛇-70 直接攻擊雷射導引飛彈 @@ -94,7 +94,7 @@ Hellfire II AGM-114K ヘルファイア II AGM-114K ミサイル Hellfire II AGM-114K 미사일 - 地狱火II型 AGM-114K 导弹 + 地狱火II型AGM-114K空地制导破甲弹 地獄火II型 AGM-114K 導彈 @@ -110,7 +110,7 @@ AGM-114K AGM-114K AGM-114K - AGM-114K + AGM-114K制导破甲弹 AGM-114K @@ -126,7 +126,7 @@ Управляемая ракета лазерного наведения Hellfire II AGM-114K ヘルファイア II AGM-114K レーザ誘導ミサイル Hellfire II AGM-114K 레이저 유도 미사일 - 地狱火II型 AGM-114K 雷射导引飞弹 + 地狱火II型AGM-114K空地制导破甲弹 地獄火II型 AGM-114K 雷射導引飛彈 diff --git a/addons/mx2a/stringtable.xml b/addons/mx2a/stringtable.xml index 3239aef1ed..099a8e7703 100644 --- a/addons/mx2a/stringtable.xml +++ b/addons/mx2a/stringtable.xml @@ -14,7 +14,7 @@ MX-2A MX-2A MX-2A - MX-2A + MX-2A(热成像) MX-2A diff --git a/addons/nametags/stringtable.xml b/addons/nametags/stringtable.xml index 6c93c591de..1c50920023 100644 --- a/addons/nametags/stringtable.xml +++ b/addons/nametags/stringtable.xml @@ -14,7 +14,7 @@ Mostrar nomes 名前の表示 이름 표시 - 显示名称 + 显示名字 顯示名稱 @@ -30,7 +30,7 @@ Показывать имена игроков (включить имена) プレイヤ名を表示 플레이어 이름 표시 - 显示玩家名称 + 显示玩家名字 顯示玩家名稱 @@ -46,7 +46,7 @@ Показать имена игроков только под курсором (при включенных именах) カーソルを合わせた時だけプレイヤ名を表示 (プレイヤ名が必要) 커서로 지시할때만 플레이어 이름 표시(플레이어 이름 필요) - 仅在准心指到后显示玩家名称 (玩家必须有设定名称) + 仅在准心指到后显示玩家名字 (玩家必须有设定名字) 僅在準心指到後顯示玩家名稱 (玩家必須有設定名稱) @@ -62,7 +62,7 @@ Mostrar nomes somente ao pressionar teclar (requer nome de jogadores) キーを押した時だけプレイヤ名を表示 (プレイヤ名が必要) 키를 누를때만 플레이어 이름 표시(플레이어 이름 필요) - 仅在按按键后显示玩家名称 (玩家必须有设定名称) + 仅在按按键后显示玩家名字 (玩家必须有设定名字) 僅在按按鍵後顯示玩家名稱 (玩家必須有設定名稱) @@ -78,7 +78,7 @@ Показывать звания игроков (при вкл. именах) プレイヤの階級を表示 (プレイヤ名が必要) 플레이어 계급 표시 (플레이어 이름 필요) - 显示玩家军阶 (玩家必须有设定名称) + 显示玩家军阶 (玩家必须有设定名字) 顯示玩家軍階 (玩家必須有設定名稱) @@ -110,7 +110,7 @@ Mostrar nomes para unidades de IA AI ユニットの名札を表示 인공지능 인원 이름 표시 - 显示AI单位名称 + 显示AI单位名字 顯示AI單位名稱 @@ -126,7 +126,7 @@ Mostrar onda sonora (requer nome de jogadores) 音波形を表示 (プレイヤ名が必要) 음파 표시 (플레이어 이름 필요) - 当玩家讲话时,显示声波图案 (玩家必须有设定名称) + 当玩家讲话时,显示声波图案 (玩家必须有设定名字) 當玩家講話時,顯示聲波圖案 (玩家必須有設定名稱) @@ -142,7 +142,7 @@ Cor padrão do nome (unidades fora do grupo) 標準の名札の色(グループ メンバ以外) 기본 이름표 색상 (비-그룹 멤버) - 预设名称颜色 (非同小队队友) + 预设名字颜色 (非同小队队友) 預設名稱顏色 (非同小隊隊友) @@ -158,7 +158,7 @@ Etichette Nomi 名札 이름표 - 玩家名称 + 玩家名字 玩家名稱 @@ -174,7 +174,7 @@ Distanza Visiva Etichette Nomi プレイヤ名が見える範囲 플레이어 이름 표시 거리 - 玩家名称显示距离 + 玩家名字显示距离 玩家名稱顯示距離 @@ -190,7 +190,7 @@ Distanza in metri a cui sono visibili i nomi giocatori. Default: 5 プレイヤの周り何メートルまで名札を表示できます。標準: 5 플레이어 이름이 표시되는 미터. 기본설정: 5 - 设定名称在多少距离以内显示。预设:5公尺 + 设定名字在多少距离以内显示。预设:5公尺 設定名稱在多少距離以內顯示。預設:5公尺 @@ -206,7 +206,7 @@ Mostra etichette nomi per IA? AI の名札も表示しますか? 인공지능의 이름도 표시합니까? - 显示AI名称? + 显示AI名字? 顯示AI名稱? @@ -222,7 +222,7 @@ Mostra etichette nomi ed etichette gradi per unità IA alleate? Default: Non forzare 友軍の AI にも名前と階級を表示しますか? 標準: 強制しない 아군 인공지능의 계급을 표시합니까? 기본설정: 강제하지 않음 - 显示友军AI的名称和军阶? 预设: 不显示 + 显示友军AI的名字和军阶? 预设: 不显示 顯示友軍AI的名稱和軍階? 預設: 不顯示 @@ -238,7 +238,7 @@ Forza Nascosto 強制で非表示 강제로 숨기기 - 强迫隐藏 + 强制隐藏 強迫隱藏 @@ -254,7 +254,7 @@ Forza Mostra 強制で表示 강제로 표시 - 强迫显示 + 强制显示 強迫顯示 @@ -317,7 +317,7 @@ Mostra il nome sul cursore per il comandante del veicolo (solo se il client ha le Etichette Nomi attive) Default: No 車長の名札をカーソルを当てて表示します (クライアント側で名札を有効化する必要があります) 標準: 無効 차량의 사령관의 이름표를 표시합니다 (오직 클라이언트가 이름표를 활성화 할시에만 보입니다) 기본설정: 아니요 - 使载具指挥官能透过准心指到别的单位来显示其名称 (仅当客户端的名称功能已启用)。预设: 关闭 + 使载具指挥官能透过准心指到别的单位来显示其名字 (仅当客户端的名字功能已启用)。预设: 关闭 使載具指揮官能透過準心指到別的單位來顯示其名稱 (僅當客戶端的名稱功能已啟用)。預設: 關閉 @@ -333,7 +333,7 @@ Questo modulo ti consente di personalizzare le impostazioni ed il raggio delle Etichette Nomi これは名札の表示範囲と設定を変更できます。 이 모듈은 당신이 이름표의 범위를 임의로 수정할 수 있게 해줍니다. - 这个模块允许您设定名称和显示范围等设定 + 这个模块允许您设定名字和显示范围等设定 這個模塊允許您設定名稱和顯示範圍等設定 @@ -445,7 +445,7 @@ Usa impostazioni Etichette Nomi 名札の設定 이름표 설정 사용 - 玩家名称设定 + 玩家名字设定 玩家名稱設定 @@ -477,7 +477,7 @@ Mostra nomi giocatori ed imposta la loro attivazione. Default: Abilitato プレイヤ名の表示と設定を有効化します。標準: 有効 플레이어 이름의 표시와 설정을 활성화합니다. 기본설정: 활성화 - 显示玩家的名称并设置其启动方式。预设: 启用 + 显示玩家的名字并设置其启动方式。预设: 启用 顯示玩家的名稱並設置其啟動方式。預設: 啟用 @@ -493,7 +493,7 @@ Effetto delle onde sonore sopra la testa dei giocatori parlanti quando premono il tasto PTT. Questa opzione funziona con TFAR ed ACRE2 プレイヤーが PTT キーを押している間は、音波形を表示します。このオプションは TFAR と ACRE2 で動作します。 플레이어가 PTT로 말할시 머리위에 음파효과를 적용합니다. 이 옵션은 TFAR과 ACRE2가 있을때만 적용됩니다. - 当玩家使用按键发话时,其头上的角色名称旁会显示声波的图案。此功能可搭配TFAR、ACRE2等模组使用。 + 当玩家使用按键发话时,其头上的角色名字旁会显示声波的图案。此功能可搭配TFAR、ACRE2等模组使用。 當玩家使用按鍵發話時,其頭上的角色名稱旁會顯示聲波的圖案。此功能可搭配TFAR、ACRE2等模組使用。 @@ -509,7 +509,7 @@ Dimensione Etichette Nome 名札の大きさ 이름표 크기 - 玩家名称标记大小 + 玩家名字标记大小 玩家名稱標記大小 @@ -542,6 +542,7 @@ Player tags transparency プレイヤー名札の透明度 + 玩家名字标签透明度 diff --git a/addons/nightvision/stringtable.xml b/addons/nightvision/stringtable.xml index 115d05affa..65fdf0278c 100644 --- a/addons/nightvision/stringtable.xml +++ b/addons/nightvision/stringtable.xml @@ -301,10 +301,12 @@ Shutter Effects シャッター効果 + 快门效果 Rolling shutter effect from muzzle flashes 発射炎が作るローリング シャッター効果です + 枪械开火时产生瞬间快门效果 diff --git a/addons/overpressure/stringtable.xml b/addons/overpressure/stringtable.xml index 2191a29dec..fa88825104 100644 --- a/addons/overpressure/stringtable.xml +++ b/addons/overpressure/stringtable.xml @@ -26,10 +26,12 @@ Backblast range 後方噴射の範囲 + 向后喷射的范围 Backblast angle 後方噴射の角度 + 向后喷射的角度 diff --git a/addons/pylons/stringtable.xml b/addons/pylons/stringtable.xml index 3050cb5f92..e31d3f59ca 100644 --- a/addons/pylons/stringtable.xml +++ b/addons/pylons/stringtable.xml @@ -6,7 +6,7 @@ 航空機の兵装 LOADOUT AEREO 飛機武裝配置 - 飞机武装配置 + 飞机武器配置 항공기 무장 AUSRÜSTUNG DES FLUGGERÄTS @@ -15,7 +15,7 @@ %1の兵装 Loadouts per %1 %1用的武裝配置 - %1用的武装配置 + %1用的武器配置 %1 무장 Ausrüstung für %1 @@ -24,7 +24,7 @@ パイロン設定 Configura Piloni 定義派龍架 - 定义派龙架 + 设定导弹挂架 파일런 설정 Konfiguriere Außenlaststationen @@ -33,7 +33,7 @@ パイロン Piloni 派龍架 - 派龙架 + 导弹挂架 파일런 Außenlaststationen @@ -51,7 +51,7 @@ 赤色に設定されたパイロンは手動で再武装する必要があります。 I Piloni di colore rosso devono essere riarmati manualmente. 以紅色標記出的派龍架必須以手動方式進行彈藥整補。 - 以红色标记出的派龙架必须以手动方式进行弹药整补。 + 以红色标记出的导弹挂架必须以手动方式进行弹药整补。 붉은색의 파일런은 수동으로 재무장해야 합니다. Außenlaststationen, die rot markiert sind, müssen manuell aufmunitioniert werden. @@ -60,7 +60,7 @@ %1はすでにこの機体へ設定されています! % sta già configurando questo aereo! %1已經正在定義此飛機的武裝配置! - %1已经正在定义此飞机的武装配置! + %1已经正在定义此飞机的武器配置! 이미 이 항공기에 장착되어 있음 (%1) %1 konfiguriert dieses Fluggerät bereits! @@ -69,7 +69,7 @@ パイロン%1を作業し残り%2・・・ Sostituendo pilone %1 al posto di %2... 共有%2個派龍架,正在整補%1號派龍架中... - 共有%2个派龙架,正在整补%1号派龙架中... + 共有%2个发射架,正在整装%1号挂架中... 교체중 (%2 -> %1) Ersetze Außenlaststation %1 von insgesamt %2 @@ -78,7 +78,7 @@ パイロン%1で停止しました! Fermato al pilone %1! 已停止在%1號派龍架! - 已停止在%1号派龙架! + 已停止在%1号挂架! %1 파일런이 멈춤 Gestoppt bei Außenlaststation %1 @@ -93,27 +93,33 @@ Enable Pylons Menu for Zeus + 启用宙斯导弹挂架菜单 Enables use of the zeus module. + 允许启用宙斯模组 Enable Pylons Menu from Ammo Trucks + 启用弹药车导弹挂架菜单 Enables use of pylons menu from ammo trucks. + 允许在弹药车上启用导弹挂架菜单 This aircraft doesn't have pylons + 这架飞机没有导弹挂架 Configure pylons module is disabled for zeus + 宙斯模组的导弹挂架已禁用 Rearm New Pylons 新規パイロンの再武装 Riarma Nuovi Piloni - 重新武裝新的派龍架 + 重新整装新的导弹挂架 重新武装新的派龙架 새파일런 재무장 Neue Außenlaststationen. aufmunitionieren @@ -123,7 +129,7 @@ 近くの補給車両から自動的に新規パイロンを再武装します。 Riarma automaticamente i nuovi piloni dal veicoli di riarmo più vicino. 自動從附近的整補載具中為派龍架進行彈藥整補。 - 自动从附近的整补载具中为派龙架进行弹药整补。 + 自动从附近的整装载具中为导弹挂架进行弹药整装。 근처의 재무장 차량에서 빈 파일런을 자동으로 재무장 합니다. Neue Außenlaststationen. automatisch vom nächsten Munitionsfahrzeug aufmunitionieren @@ -132,7 +138,7 @@ パイロンへの時間 Tempo Per Pilone 派龍架整補所需時間(個別) - 派龙架整补所需时间(个别) + 导弹挂架整装所需时间(个别) 파일런당 시간 Zeit pro Außenlaststation @@ -141,7 +147,7 @@ 各パイロンの置き換えにかかる時間を設定します。(秒) Il tempo che impiega ogni pilone ad essere sostituito (in secondi). 每個派龍架需花多久時間進行整補(單位為秒)。 - 每个派龙架需花多久时间进行整补(单位为秒)。 + 每个挂架需花多久时间进行整装单位为秒)。 파일런을 재설정 하는데 걸리는 시간 (초) Die benötigte Zeit, um einzelne Außenlaststationen zu ersetzen (in Sekunden). @@ -159,7 +165,7 @@ 補給車両から航空機までの必要な距離。 La distanza necessaria per un aereo da un veicolo di riarmo. 設定飛機必須距離整補載具多少公尺才能進行彈藥整補。 - 设定飞机必须距离整补载具多少公尺才能进行弹药整补。 + 设定飞机必须距离整装载具多少公尺才能进行弹药整装。 항공기에서 재보급 가능한 재무장 차량을 찾습니다. Die Distanz, die ein Fahrzeug von einem Munitionsfahrzeug entfernt sein darf. @@ -168,7 +174,7 @@ 工兵の必須化 Necessita Ingegnere 需要工兵 - 需要工兵 + 必须是工兵 정비병 요구 Benötigt Pionier @@ -177,7 +183,7 @@ 工兵を必須とします。 Necessita un ingegnere. 需要工兵才能進行彈藥整補。 - 需要工兵才能进行弹药整补。 + 必须是工兵才能进行弹药整装。 정비병이 필요합니다. Benötigt einen Pionier. @@ -195,7 +201,7 @@ インベントリ内にツールキットの存在を必須とします。 Necessita un kit di riparazione nell'inventario 需要工具包才能進行彈藥整補。 - 需要工具包才能进行弹药整补。 + 需要工具包才能进行弹药整装。 툴킷이 필요합니다. Benötigt einen Werkzeugkasten im Inventar. diff --git a/addons/quickmount/stringtable.xml b/addons/quickmount/stringtable.xml index 2caefe566f..fea88abe40 100644 --- a/addons/quickmount/stringtable.xml +++ b/addons/quickmount/stringtable.xml @@ -86,7 +86,7 @@ Maximale Geschwindigkeit (km/h) für Schnellzugang Velocità massima del veicolo (km/h) consentita per far salire un giocatore プレイヤーが搭乗できる限界速度 (km/h) - 设置玩家能在最高多少的速度之下进入载具。 + 设置玩家能在最高速度是多少的情况之下进入载具。 設置玩家能在最高多少的速度之下進入載具。 Maksymalna prędkość pojazdu (km/h) pozwalająca graczowi wsiąść. 플레이어가 탑승 가능한 목표 차량의 최대 속도 @@ -96,7 +96,7 @@ Priorisierter Sitzplatz Priorità Sedile 優先席 - 优先座位 + 优先位置 優先座位 Priorytet zajmowanych pozycji 좌석 우선순위 지정 @@ -106,7 +106,7 @@ Priorisierter Sitzplatz zum Schnellzugang Priorità del sedile in entrata 搭乗時の優先順位 - 优先想进入哪个座位。 + 优先想进入哪个位置。 優先想進入哪個座位。 Priorytet pozycji w pojeździe 탑승할 좌석의 우선순위를 지정합니다. diff --git a/addons/realisticnames/stringtable.xml b/addons/realisticnames/stringtable.xml index 5f215bb7d1..0ff6ffebd5 100644 --- a/addons/realisticnames/stringtable.xml +++ b/addons/realisticnames/stringtable.xml @@ -1608,18 +1608,21 @@ Metis-M Metis-M Метис-М + Метис-М反坦克系统 Metis-M (Brown) Metis-M (Braun) Metis-M (Brun) Метис-М (Кори́чневый) + Метис-М反坦克系统(棕色) Metis-M (Green) Metis-M (Grün) Metis-M (Verde) Метис-М (Зелёный) + Метис-М反坦克系统(绿色) MX @@ -2616,10 +2619,13 @@ Jeep Wrangler (SPG-9) Jeep Wrangler (SPG-9) + "牧马人"吉普车(SPG-9火箭筒) Jeep Wrangler (LMG) Jeep Wrangler (LMG) + "牧马人"吉普车(轻机枪) + Cessna TTx @@ -3175,6 +3181,7 @@ Polaris DAGOR (Mini-Spike AT) Polaris DAGOR (Mini-Spike PzAbw) + "北极星"先进布署越野车 (反坦克) Polaris DAGOR @@ -3200,6 +3207,7 @@ LSV Mk. II (Metis-M) LSV Mk. II (Metis-M) + 轻型突击车2式(反坦克) LSV Mk. II @@ -3211,36 +3219,44 @@ Rooikat 120 Rooikat 120 + "山猫"重型轮式装甲车 Rooikat 120 UP Rooikat 120 UP + "山猫"重型轮式装甲车(栏栅版) T-14 Armata T-14 Armata Т-14 Армата + Т-14 主战坦克 T-14K Armata T-14K Armata Т-14К Армата + Т-14K 主战坦克 Wiesel 2 Ozelot (AA) Wiesel 2 Ozelot (FlaRaWaTrg) + "豹猫"装甲车(防空) Wiesel 2 (ATGM) Wiesel 2 (PzAbw) + "鼹鼠"装甲车(反坦克) Wiesel 2 (MK20) Wiesel 2 (MK20) + "鼹鼠"装甲车(MK20机炮) Wiesel 2 RFCV (Radar) Wiesel 2 AFF (Radar) + "鼹鼠"装甲车(成像雷达) Leupold Mark 4 HAMR diff --git a/addons/repair/stringtable.xml b/addons/repair/stringtable.xml index b5728585a7..73bfe341a9 100644 --- a/addons/repair/stringtable.xml +++ b/addons/repair/stringtable.xml @@ -1859,10 +1859,12 @@ Auto shut off engine on repair 修理時にエンジン自動停止 + 维修时自动关闭发动机。 Automatically shut off the engine when doing repairs. 修理時にエンジンを自動で停止します。 + 修理时自动关闭发动机。 diff --git a/addons/zeus/stringtable.xml b/addons/zeus/stringtable.xml index df2c1e6364..a139d42556 100644 --- a/addons/zeus/stringtable.xml +++ b/addons/zeus/stringtable.xml @@ -1076,10 +1076,12 @@ Toggle Target 目標を切り替え + 切换目标 Units affected by the toggle ユニットは切り替えに影響を受けます + 被选单位受切换影响 Selected Group @@ -1461,10 +1463,12 @@ Add full ACE Arsenal ACE 武器庫を追加 + 添加ACE模式军火库 Remove ACE Arsenal ACE 武器庫を削除 + 删除ACE模式军火库 From b7e36466975d8ae42d4b194b141c4e683da63082 Mon Sep 17 00:00:00 2001 From: commy2 Date: Mon, 25 Jun 2018 00:08:15 +0200 Subject: [PATCH 158/235] don't make Explosives close one display at death --- addons/explosives/functions/fnc_onIncapacitated.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/explosives/functions/fnc_onIncapacitated.sqf b/addons/explosives/functions/fnc_onIncapacitated.sqf index 7e2cb249cc..8560474540 100644 --- a/addons/explosives/functions/fnc_onIncapacitated.sqf +++ b/addons/explosives/functions/fnc_onIncapacitated.sqf @@ -21,7 +21,7 @@ TRACE_1("params",_unit); if (_unit == ace_player) then { // close cellphone if open - closeDialog 0; + findDisplay 8855 closeDisplay 0; }; // Exit if no item: From 613c088124f9ad3e4882268335aabf590007f349 Mon Sep 17 00:00:00 2001 From: commy2 Date: Mon, 25 Jun 2018 08:42:43 +0200 Subject: [PATCH 159/235] bump --- addons/explosives/functions/fnc_onIncapacitated.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/explosives/functions/fnc_onIncapacitated.sqf b/addons/explosives/functions/fnc_onIncapacitated.sqf index 8560474540..b134cdb45e 100644 --- a/addons/explosives/functions/fnc_onIncapacitated.sqf +++ b/addons/explosives/functions/fnc_onIncapacitated.sqf @@ -24,7 +24,7 @@ if (_unit == ace_player) then { findDisplay 8855 closeDisplay 0; }; -// Exit if no item: +// Exit if no item if (({_x == "ACE_DeadManSwitch"} count (items _unit)) == 0) exitWith {}; private _range = getNumber (configFile >> "CfgWeapons" >> "ACE_DeadManSwitch" >> QGVAR(range)); From e5a15d200f44df5fccc0bc5575d18d80b35538dd Mon Sep 17 00:00:00 2001 From: Dissyu Date: Thu, 28 Jun 2018 03:16:11 +0800 Subject: [PATCH 160/235] Traditional Chinese update (#6408) Traditional Chinese update --- addons/advanced_fatigue/stringtable.xml | 6 +- addons/ai/stringtable.xml | 8 +- addons/arsenal/stringtable.xml | 45 +++++++----- addons/ballistics/stringtable.xml | 15 ++-- addons/captives/stringtable.xml | 4 +- addons/cargo/stringtable.xml | 4 +- addons/chemlights/stringtable.xml | 14 ++-- addons/common/stringtable.xml | 22 +++--- addons/cookoff/stringtable.xml | 6 +- addons/dogtags/stringtable.xml | 3 +- addons/explosives/stringtable.xml | 5 +- addons/flashlights/stringtable.xml | 3 +- addons/frag/stringtable.xml | 4 +- addons/gforces/stringtable.xml | 3 +- addons/grenades/stringtable.xml | 4 +- addons/hearing/stringtable.xml | 20 +++-- addons/interact_menu/stringtable.xml | 7 +- addons/interaction/stringtable.xml | 3 +- addons/map_gestures/stringtable.xml | 6 +- addons/maptools/stringtable.xml | 4 +- addons/markers/stringtable.xml | 2 +- addons/medical/stringtable.xml | 28 ++++--- addons/medical_ai/stringtable.xml | 6 +- addons/medical_menu/stringtable.xml | 5 +- addons/microdagr/stringtable.xml | 2 +- addons/missileguidance/stringtable.xml | 2 +- addons/nametags/stringtable.xml | 3 +- addons/nightvision/stringtable.xml | 12 +-- addons/noradio/stringtable.xml | 2 +- addons/optionsmenu/stringtable.xml | 4 +- addons/overpressure/stringtable.xml | 8 +- addons/parachute/stringtable.xml | 4 +- addons/pylons/stringtable.xml | 30 +++++--- addons/quickmount/stringtable.xml | 6 +- addons/realisticnames/stringtable.xml | 98 +++++++++++++++++++++---- addons/repair/stringtable.xml | 10 ++- addons/respawn/stringtable.xml | 4 +- addons/scopes/stringtable.xml | 4 +- addons/spectator/stringtable.xml | 2 +- addons/vehiclelock/stringtable.xml | 2 +- addons/weaponselect/stringtable.xml | 2 +- addons/zeus/stringtable.xml | 20 +++-- 42 files changed, 283 insertions(+), 159 deletions(-) diff --git a/addons/advanced_fatigue/stringtable.xml b/addons/advanced_fatigue/stringtable.xml index 640e38b685..01bca90c11 100644 --- a/addons/advanced_fatigue/stringtable.xml +++ b/addons/advanced_fatigue/stringtable.xml @@ -112,12 +112,14 @@ Sway factor 手ぶれ因数 - 抖动因数 + 抖动因数 + 抖動因素 Influences the amount of weapon sway. Higher means more sway. 武器を持つ手のぶれ度合いを設定します。 値が高ければ高いほど、手ぶれが強くなります。 - 影响手持武器的晃动程度,数值越高,抖动的越厉害. + 影响手持武器的晃动程度,数值越高,抖动的越厉害. + 影響手持武器晃動程度,數值越高抖動越厲害 Enabled diff --git a/addons/ai/stringtable.xml b/addons/ai/stringtable.xml index f4d2a816b2..7e5e9b80a2 100644 --- a/addons/ai/stringtable.xml +++ b/addons/ai/stringtable.xml @@ -6,7 +6,7 @@ Position invalide fourni 位置が無効です。 Posizione invalida fornita. - 提供的位置無效。 + 提供的位置無效 提供的位置无效。 위치가 잘못되었습니다. @@ -15,7 +15,7 @@ Aucune unité fourni ユニットがありません。 Nessuna unità fornita. - 找不到可用的單位。 + 找不到可用的單位 找不到可用的单位。 병력이 없습니다. @@ -24,7 +24,7 @@ Il n'y a pas assez de positions pour placer toutes les unités 全ユニットを置くために十分な位置がありません。 Non ci sono abbastanza posizioni per piazzare tutte le unità. - 沒有足夠的位置能擺放所有單位。 + 沒有足夠的位置能擺放所有單位 没有足够的位置能摆放所有单位。 모든 병력을 배치 할 공간이 없습니다. @@ -33,7 +33,7 @@ Aucun bâtiment trouvé 建物がありません。 Nessun edificio trovato. - 沒找到建築物。 + 沒找到建築物 没找到建筑物。 건물이 없습니다. diff --git a/addons/arsenal/stringtable.xml b/addons/arsenal/stringtable.xml index 43821dac14..680899a5aa 100644 --- a/addons/arsenal/stringtable.xml +++ b/addons/arsenal/stringtable.xml @@ -620,7 +620,7 @@ Keine Spielereinheit verfügbar. Setze eine Einheit und markiere sie als "Spieler". プレイヤー ユニットがありません!ユニットを設置し"Player"と名付けてください。 플레이어 유닛을 사용할 수 없습니다! 유닛을 놓고 "플레이어"라고 표시하십시오. - 沒有可用的玩家單位!請擺放一個單位並設定成"玩家"。 + 沒有可用的玩家單位!請擺放一個單位並設定成"玩家" 没有可用的玩家单位!请摆放一个单位并设定成"玩家"。 @@ -629,7 +629,7 @@ Keine Ausrüstungen zum Importieren 取り込みする装備がありません。 가져올 로드 아웃이 없습니다. - 沒有裝備被匯入。 + 沒有裝備被匯入 没有装备被汇入。 @@ -645,7 +645,7 @@ Zurück zum ACE-Arsenal. ACE 武器庫へ戻ります。 ACE 아스날로 돌아가기 - 返回到ACE虛擬軍火庫。 + 返回到ACE虛擬軍火庫 返回到ACE虚拟军火库。 @@ -653,7 +653,7 @@ Verwende ACE-Arsenal und sieh dir verschiedene Waffen und Ausrüstung an und probiere sie aus. さまざまな武器と装備を試せるよう ACE 武器庫を使用します。 ACE Arsenal을 사용하여 다른 무기와 장비를 시험해보십시오. - 使用ACE虛擬軍火庫來嘗試不同的武器與裝備。 + 使用ACE虛擬軍火庫來嘗試不同的武器與裝備 使用ACE虚拟军火库来尝试不同的武器与装备。 @@ -661,7 +661,7 @@ Probiere verschiedene Waffen und Ausrüstung aus und stelle dir eigene Ausrüstungsprofile zusammen. さまざまな武器と装備を試して、あなただけの装備を作成してください。 무기와 장비를 사용해보고 자신의 로드아웃을 만듭니다. - 嘗試不同的武器與裝備來組合你個人的裝備配置。 + 嘗試不同的武器與裝備來組合你個人的裝備配置 尝试不同的武器与装备来组合你个人的装备配置。 @@ -689,47 +689,52 @@ Potassium levels Taux de potassium カリウム レベル - 钾水平 + 钾水平 + 鉀水平 - Magnification - 放大倍率 - Grossissement - Aumento - Ingrandimento - Powiększenie - Увеличение - Vergrößerung - Zvětšení - Aumentox - 배율 - 放大倍数 - 拡大倍率 - Büyütme + Magnification + 放大倍率 + Grossissement + Aumento + Ingrandimento + Powiększenie + Увеличение + Vergrößerung + Zvětšení + Aumentox + 배율 + 放大倍数 + 拡大倍率 + Büyütme Page Page ページ 页面 + 頁面 Enable the faces / voices / insignias tabs Activer les onglets faces / voix / insignes 顔 / 声 / 記章タブを有効化 启用脸谱/声音/徽章/选项 + 啟用臉譜/聲音/徽章選項 Empty the selected container Vider le conteneur selectionné 選択されたコンテナは空です 选择的箱子是空的 + 清空選擇的箱子 Exported class name to clipboard Nom de classe exporté dans le presse papier クリップボードへクラスネームを出力 将种类复制到剪贴板 + 輸出 class name 到剪貼簿上 diff --git a/addons/ballistics/stringtable.xml b/addons/ballistics/stringtable.xml index 962ce529be..dbb54bf44a 100644 --- a/addons/ballistics/stringtable.xml +++ b/addons/ballistics/stringtable.xml @@ -2284,31 +2284,36 @@ Barrel twist 銃身の転度 - 膛线缠距 + 膛线缠距 + 膛線扭度 Barrel length Longueur du canon 銃身長 - 身管长度 + 身管长度 + 槍管長度 Ballistic coefficient Coefficient ballistique 弾道係数 - 弹道系数 + 弹道系数 + 彈道係數 Bullet mass Masse d'une balle 弾丸重量 - 弹头重量 + 弹头重量 + 彈頭重量 Muzzle velocity Vitesse à la bouche 銃口初速 - 枪口初速 + 枪口初速 + 槍口初速 diff --git a/addons/captives/stringtable.xml b/addons/captives/stringtable.xml index 64c2c20dd4..f5d76f43e9 100644 --- a/addons/captives/stringtable.xml +++ b/addons/captives/stringtable.xml @@ -441,7 +441,7 @@ Nimmt die Einheit unter dem Cursor fest. カーソル先のユニットを拘束 Imposta l'unità nello stato di prigioniero. - 設置在游標下的單位成俘虜狀態。 + 設置在游標下的單位成俘虜狀態 设置在游标下的单位成俘虏状态。 커서의 병력을 포박합니다. @@ -459,7 +459,7 @@ KI muss sich erst ergeben, bevor sie gefangen genommen werden kann Necessita che le AI si arrendano prima di essere arrestate AI の拘束は AI が投降している場合に限り可能にします。 - 在逮捕AI之前該AI必須先進入投降狀態。 + 在逮捕AI之前該AI必須先進入投降狀態 在逮捕AI之前该AI必须先进入投降状态。 포박하기 전에 먼저 AI가 투항해야만 합니다. diff --git a/addons/cargo/stringtable.xml b/addons/cargo/stringtable.xml index 673e8be5c0..7acf7fc59c 100644 --- a/addons/cargo/stringtable.xml +++ b/addons/cargo/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -307,7 +307,7 @@ カーゴ アイテムを空中投下するまでの時間を変更します。 Modificato per quanto tempo ci impiega a paracadutare un oggetto cargo. Modifier le temps qu'il faut pour larguer la cargaison. - 設定空投所需消耗的時間. + 設定空投所需消耗的時間 设定空投所需消耗的时间. Modyfikator wskazujący jak dużo czasu potrzeba by zrzucić przedmiot na spadochronie. 화물을 공중 투하 하는데 얼마나 걸리는 시간 설정 diff --git a/addons/chemlights/stringtable.xml b/addons/chemlights/stringtable.xml index eeac958a6d..51f07a414b 100644 --- a/addons/chemlights/stringtable.xml +++ b/addons/chemlights/stringtable.xml @@ -311,7 +311,7 @@ 켐라이트를 위한 가림막입니다. 켐라이트와 같이 사용하여 읽을 때 씁니다. Étui pour cyalume. Combiné avec un cyalume pour obtennir un lampe de lecture. Scudo per luci chimiche. Combina con una luce chimica per una luce da lettura. - 螢光棒的保護殼. 與螢光棒結合後可充當閱讀燈. + 螢光棒的保護殼. 與螢光棒結合後可充當閱讀燈 萤光棒的保护壳. 与萤光棒结合后可充当阅读灯. @@ -333,7 +333,7 @@ 초록빛 조명 Lampe d'orientation verte. Luce da lettura Verde. - 綠色閱讀燈。 + 綠色閱讀燈 绿色阅读灯。 @@ -355,7 +355,7 @@ 빨간색 조명 Lampe d'orientation rouge. Luce da lettura Rossa. - 紅色閱讀燈。 + 紅色閱讀燈 红色阅读灯。 @@ -377,7 +377,7 @@ 파란색 조명 Lampe d'orientation bleue. Luce da lettura Blu. - 藍色閱讀燈。 + 藍色閱讀燈 蓝色阅读灯。 @@ -399,7 +399,7 @@ 노란색 조명 Lampe d'orientation jaune. Luce da lettura Gialla. - 黃色閱讀燈。 + 黃色閱讀燈 黄色阅读灯。 @@ -421,7 +421,7 @@ 주황색 조명 Lampe d'orientation orange. Luce da lettura Arancione. - 橘色閱讀燈。 + 橘色閱讀燈 橘色阅读灯。 @@ -443,7 +443,7 @@ 주황색 조명 Lampe d'orientation blanche. Luce da lettura Bianca. - 白色閱讀燈。 + 白色閱讀燈 白色阅读灯。 diff --git a/addons/common/stringtable.xml b/addons/common/stringtable.xml index a5fb3d47c5..5623d30b37 100644 --- a/addons/common/stringtable.xml +++ b/addons/common/stringtable.xml @@ -456,7 +456,7 @@ Aceitar pedidos enviados por outros jogadores. Podem ser pedidos para usar/ compartilhar equipamento, realizar certas ações. 他プレイヤからの要求を許可します。他プレイヤは装備を共有し、使うなど特定の動作を行えます。 다른 플레이어가 보내온 요청을 수락합니다. 이것은 장비 사용 / 공유 요청, 특정 작업 수행 등이 될 수 있습니다. - 接受由其他玩家送出的請求。包含使用/共享裝備與執行特定動作。 + 接受由其他玩家送出的請求。包含使用/共享裝備與執行特定動作 接受由其他玩家送出的请求。包含使用/共享装备与执行特定动作。 @@ -472,7 +472,7 @@ Rejeita pedidos enviados por outros jogadores. Podem ser pedidos para usar/ compartilhar equipamento, realizar certas ações. 他プレイヤからの要求を拒否します。他プレイヤは装備を共有し、使うなど特定の動作をできません。 다른 플레이어가 보내온 요청을 거부합니다. 이것은 장비 사용 / 공유 요청, 특정 작업 수행 등이 될 수 있습니다. - 拒絕由其他玩家送出的請求。包含使用/共享裝備與執行特定動作。 + 拒絕由其他玩家送出的請求。包含使用/共享裝備與執行特定動作 拒绝由其他玩家送出的请求。包含使用/共享装备与执行特定动作。 @@ -528,7 +528,7 @@ Selecione a posição ou disabilite a posição dos ícones de feedback na sua tela. Esses ícones irão aparecer para mostrar feedback extra do status do seu personagem e ações realizadas. 画面上に表示するフィードバック アイコンの位置や無効化を選択できます。このアイコンは自キャラクター状態や動作の状況をフィードバックするために表示されています。 피드백 아이콘의 위치를 설정하거나 비활성화합니다. 피드백 아이콘은 캐릭터의 상세정보와 행동을 보여줍니다. - 選擇位置或取消回饋圖標顯示在螢幕上。這些圖標將顯示出你角色額外的狀態與行動等資訊。 + 選擇位置或取消回饋圖標顯示在螢幕上。這些圖標將顯示出你角色額外的狀態與行動等資訊 选择位置或取消回馈图标显示在荧幕上。这些图标将显示出你角色额外的状态与行动等资讯。 @@ -624,7 +624,7 @@ A cor do texto das hints do ACE. Essa cor é a cor default para todos os texos exibidos pelo sistema de hints do ACE , caso o texto da hint não tem outra cor especificada. ACE によるヒントの文章へ、色を設定できます。この色は ACE ヒント システムを介して表示される全文章の色と標準でなっており、特定の色を設定していても、標準色になります。 ACE 힌트에 쓰이는 글씨 색입니다. 힌트 글씨의 색이 정해지지 않을경우 모든 힌트의 색은 기본으로 설정됩니다. - 設定ACE提示文字的顏色。若提示字體並無指定其他顏色,將會自動選用ACE系統的預設顏色。 + 設定ACE提示文字的顏色。若提示字體並無指定其他顏色,將會自動選用ACE系統的預設顏色 设定ACE提示文字的颜色。若提示字体并无指定其他颜色,将会自动选用ACE系统的预设颜色。 @@ -644,7 +644,7 @@ Abilita la torcia/laser dopo il cambio dell'arma o l'entrata/uscita del veicolo se precedentemente attiva. 무기를 바꾸거나 차량에 승하차 할 때 이전에 스위치 켜고 끔을 유지합니다. Aktiviert Laserpointer/Taktisches Licht nach einem Waffenwechsel oder dem Auf-/Absitzen, falls es zuvor aktiv war. - 保存武器雷射/手電筒的開關狀態,使玩家切換武器或進出載具時能保持之前的的狀態。 + 保存武器雷射/手電筒的開關狀態,使玩家切換武器或進出載具時能保持之前的的狀態 保存武器雷射/手电筒的开关状态,使玩家切换武器或进出载具时能保持之前的的状态。 @@ -676,7 +676,7 @@ A banana é uma fruta comestível, botanicamente uma baga, produzida por vários tipos de plantas herbáceas grandes do genero Musa. 甘蕉は食べられる果物でバショウ科バショウ属のうち、果実を食用とする品種群の総称。また、その果実のこと。いくつかの原種から育種された多年草。種によっては熟すまでは毒を持つものもある。 바나나는 식용 과일로써 식물학적으로 열매류이며 여러 종류의 개화가능한 초본의 파초과로 부터 생산됩니다. - 香蕉(學名: Musa × paradisiaca),為芭蕉科芭蕉屬小果野蕉及野蕉的人工栽培雜交種,為多年生草本植物。果實長有棱; 果皮黃色,果肉白色,味道香甜。主要生長在熱帶、亞熱帶地區。原產於亞洲東南部熱帶、亞熱帶地區。 + 香蕉(學名: Musa × paradisiaca),為芭蕉科芭蕉屬小果野蕉及野蕉的人工栽培雜交種,為多年生草本植物。果實長有棱; 果皮黃色,果肉白色,味道香甜。主要生長在熱帶、亞熱帶地區。原產於亞洲東南部熱帶、亞熱帶地區 香蕉(学名: Musa × paradisiaca),为芭蕉科芭蕉属小果野蕉及野蕉的人工栽培杂交种,为多年生草本植物。果实长有棱; 果皮黄色,果肉白色,味道香甜。主要生长在热带、亚热带地区。原产于亚洲东南部热带、亚热带地区。 @@ -707,7 +707,7 @@ Controlla l'integrità degli addon con il server ed esegui l'azione selezionata se un addon è mancante サーバがアドオンの整合性を検査し、もし不備があれば実行する動作を選択できます。 서버 에드온의 무결성을 검사하고 사라진 에드온이 있을경우 행동을 선택합니다. - 檢查客戶端與伺服器端的模組清單是否一致且完整,並提供訊息表示遺失的模組。 + 檢查客戶端與伺服器端的模組清單是否一致且完整,並提供訊息表示遺失的模組 检查客户端与伺服器端的模组清单是否一致且完整,并提供讯息表示遗失的模组。 @@ -1175,17 +1175,19 @@ Allow ACE scripts to turn down the music. Erlaube ACE-Skripten, die Musik leiser zu stellen. ACE 스크립트가 음악을 끌 수 있습니다. - 允許ACE腳本去控制音樂的音量。 + 允許ACE腳本去控制音樂的音量 允许ACE脚本去控制音乐的音量。 ACE スプリントへ音量低下を許可します。 Flag (ACE - Black) - 旗帜(ACE-黑色): + 旗帜(ACE-黑色): + 旗幟(ACE-黑色) Flag (ACE - White) - 旗帜(ACE-白色): + 旗帜(ACE-白色): + 旗幟(ACE-白色) diff --git a/addons/cookoff/stringtable.xml b/addons/cookoff/stringtable.xml index 3989ffab82..653631c410 100644 --- a/addons/cookoff/stringtable.xml +++ b/addons/cookoff/stringtable.xml @@ -33,7 +33,7 @@ Aktywuje efekt samozapłonu amunicji na zniszczonych pojazdach. Active le cook-off (autocombustion des munitions) et les effets de destruction liés. Abilita l'esplosione e i relativi effetti di distruzione del veicolo. - 開啟此功能後,將使有關載具在損毀時有殉爆的效果。 + 開啟此功能後,將使有關載具在損毀時有殉爆的效果 开启此功能后,将使有关载具在损毁时有殉爆的效果。 @@ -92,7 +92,7 @@ Aktywuje samozapłon amunicji. Wystrzeliwuje pociski podczas gdy pojazd płonie i posiada amunicję. Mets à feu les munitions lorsqu'un véhicule est en feu et contient des munitions. Abilita l'esplosione delle munizioni. Spara munizioni di proiettili quando il veicolo va a fuoco e contiene munizioni. - 開啟彈藥殉爆效果。當一台載有彈藥的載具起火時, 將會有殉爆的效果。 + 開啟彈藥殉爆效果。當一台載有彈藥的載具起火時, 將會有殉爆的效果 开启弹药殉爆效果。当一台载有弹药的载具起火时, 将会有殉爆的效果。 쿡오프 현상을 활성화 합니다. 이것은 탄약에 불이 붙어있는 동안 주변에 발사체를 발사합니다. @@ -131,7 +131,7 @@ 誘爆する可能性の乗数。高い値では誘爆する可能性が高まります。 Moltiplicatore per la probabilità dell'esplosione. Un valore più alto aumenta la probabilità dell'esplosione Faktor für Wahrscheinlichkeit der Durchzündung. Ein höherer Wert führt zu höherer Durchzündungswahrscheinlichkeit. - 調整殉爆發生機率係數。值越高代表越容易發生殉爆。 + 調整殉爆發生機率係數。值越高代表越容易發生殉爆 调整殉爆发生机率系数。值越高代表越容易发生殉爆。 diff --git a/addons/dogtags/stringtable.xml b/addons/dogtags/stringtable.xml index 3c7e759c7c..216ece6f78 100644 --- a/addons/dogtags/stringtable.xml +++ b/addons/dogtags/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -81,6 +81,7 @@ Onscreen display for checking dogtags + 在畫面中顯示檢查兵籍牌 diff --git a/addons/explosives/stringtable.xml b/addons/explosives/stringtable.xml index e70caf99e3..a3f20c0cf8 100644 --- a/addons/explosives/stringtable.xml +++ b/addons/explosives/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -1023,7 +1023,8 @@ Explosive range Portée du détonateur 爆発範囲 - 爆炸范围 + 爆炸范围 + 爆炸範圍 diff --git a/addons/flashlights/stringtable.xml b/addons/flashlights/stringtable.xml index 96f8339df7..5ddfcc46d1 100644 --- a/addons/flashlights/stringtable.xml +++ b/addons/flashlights/stringtable.xml @@ -95,7 +95,8 @@ Map light color Couleur de la lampe sur carte 光の色 - 地图上手电的颜色 + 地图上手电的颜色 + 地圖上使用手電筒的顏色 diff --git a/addons/frag/stringtable.xml b/addons/frag/stringtable.xml index 3d0d210a11..427ae9fbee 100644 --- a/addons/frag/stringtable.xml +++ b/addons/frag/stringtable.xml @@ -171,7 +171,7 @@ 与えられたフレームごとに追跡する剥離の数を決定します。FPS に影響をあたえないよう、剥離を複数のフレームで追跡し、分散させています。 가능한 프레임마다 파편을 추적 및 계산합니다. 여러 프레임에 걸쳐 파편난 발사체를 추적하여 FPS에 도움을 줍니다. 이를 제한함으로써 더욱 큰 효과를 볼 수 있습니다. 设定在每一帧数内,系统最大可追踪的碎片粒子数量。此设定可有效帮助系统减低计算压力。 - 設定在每一幀數內,系統最大可追蹤的碎片/剝落粒子數量。此設定可有效幫助系統減低計算壓力。 + 設定在每一幀數內,系統最大可追蹤的碎片/剝落粒子數量。此設定可有效幫助系統減低計算壓力 (SP Only) Frag/Spall Debug Tracing @@ -202,7 +202,7 @@ (Solo SP) Richiede un restart editor/missione. Abilita il tracciamento visivo di schegge da frammentazione/spalling in modalità Giocatore Singolo. (SP のみ) ミッションとエディタの再起動が必要です。有効化すると、シングルプレイでのみ破片と剥離の弾頭が見えるようになります。 (仅在单人模式) 激活后,只有在单人模式下才可观察到碎片粒子的移动轨迹。 - (僅在單人模式) 讓你在單人模式下可觀察到碎片/剝落粒子的移動軌跡。 + (僅在單人模式) 讓你在單人模式下可觀察到碎片/剝落粒子的移動軌跡 (SP 전용) 임무 / 편집자가 다시 시작해야합니다. SP 게임 모드에서만 조각화 및 스 폴링 라운드의 시각적 추적을 가능하게합니다. diff --git a/addons/gforces/stringtable.xml b/addons/gforces/stringtable.xml index b96f269b95..44139920d9 100644 --- a/addons/gforces/stringtable.xml +++ b/addons/gforces/stringtable.xml @@ -35,7 +35,8 @@ G-force reduction Reduction des Gs 耐 G 性 - 减少G力 + 减少G力 + 減少G力 diff --git a/addons/grenades/stringtable.xml b/addons/grenades/stringtable.xml index 3fc5ce6208..2f695f8a40 100644 --- a/addons/grenades/stringtable.xml +++ b/addons/grenades/stringtable.xml @@ -143,7 +143,7 @@ フラッシュバンとも知られています。即時に失明と難聴、耳鳴り、内耳障害を引き起こします。 플래시뱅이라고도 알려져있습니다. 사용즉시 섬광으로 인한 시력장애, 청각장애, 이명, 내이기관방해를 유발합니다. 也被称为闪光弹,会造成暂时性失明,耳聋,耳鸣等效果。 - 也被稱為閃光彈,會造成暫時性失明,耳聾,耳鳴等效果。 + 也被稱為閃光彈,會造成暫時性失明,耳聾,耳鳴等效果 M127A1 Hand Held Signal (White) @@ -371,7 +371,7 @@ Grenade incendiaire utilisé pour détruire des armes, munitions et autres équipements. Granata incendiaria usata per distruggere armi, munizioni e altri equipaggiamenti. 燃烧手榴弹是用来摧毁武器,弹药以及其他装备的好帮手。 - 燃燒手榴彈是用來摧毀武器,彈藥以及其他裝備的好幫手。 + 燃燒手榴彈是用來摧毀武器,彈藥以及其他裝備的好幫手 diff --git a/addons/hearing/stringtable.xml b/addons/hearing/stringtable.xml index 8f64dea726..1ba8b8564f 100644 --- a/addons/hearing/stringtable.xml +++ b/addons/hearing/stringtable.xml @@ -31,7 +31,7 @@ 着けることにより、近くの大きな銃声から聴覚を保護します。 보호용 귀마개는 화기로부터의 큰소리로부터 사용자의 청력을 보호합니다. 配戴防护耳塞,遇到大声的武器发射时也不会损害听力。 - 配戴防護耳塞,遇到大聲的武器發射時也不會損害聽力。 + 配戴防護耳塞,遇到大聲的武器發射時也不會損害聽力 Earplugs in @@ -286,33 +286,39 @@ Hearing protection Protection auditive 聴覚保護 - 听力保护 + 听力保护 + 聽力保護 Volume muffling Étouffement des sons 音量低下 - 降低音量 + 降低音量 + 進低音量 Earplugs Volume 耳栓時の音量 - 耳塞时音量 + 耳塞时音量 + 耳塞時音量 Volume when using earplugs. 耳栓使用時の音量を決定します。 - 决定带上耳塞时的音量 + 决定带上耳塞时的音量 + 使用耳塞時音量 Unconscious Volume 気絶時の音量 - 无意识时音量 + 无意识时音量 + 昏迷時音量 Volume when unconscious. 気絶時の音量を決定します。 - 决定处于无意识时的音量 + 决定处于无意识时的音量 + 昏迷時使用耳塞的音量 diff --git a/addons/interact_menu/stringtable.xml b/addons/interact_menu/stringtable.xml index 1056702203..a876b8af38 100644 --- a/addons/interact_menu/stringtable.xml +++ b/addons/interact_menu/stringtable.xml @@ -287,7 +287,7 @@ 文字への影を設定します。縁取りは設定された影の色を無視します。 문자의 그림자를 조절하는것을 가능케합니다. 외각선은 임의의 그림자색을 무시합니다. 允许控制文字阴影。轮廓部分则会忽略自定义的阴影颜色。 - 允許控制文字陰影。輪廓部分則會忽略自定義的陰影顏色。 + 允許控制文字陰影。輪廓部分則會忽略自定義的陰影顏色 Outline @@ -335,7 +335,7 @@ インタラクション メニューを開いたとき、背景にボケを与えます。 상호작용 메뉴가 열릴시 배경을 흐릿하게 처리합니다. 当互动选单开启时,模糊背景画面。 - 當互動選單開啟時,模糊背景畫面。 + 當互動選單開啟時,模糊背景畫面 Blur screen @@ -449,7 +449,8 @@ Selector Color セレクターの色 - 选择器颜色 + 选择器颜色 + 選單的顏色 diff --git a/addons/interaction/stringtable.xml b/addons/interaction/stringtable.xml index 0d37a023ac..bc7de0c344 100644 --- a/addons/interaction/stringtable.xml +++ b/addons/interaction/stringtable.xml @@ -844,6 +844,7 @@ Flip Перевернуть ひっくり返す + Interact @@ -955,7 +956,7 @@ Sollen Spieler negative Bewertungen erhalten dürfen? Wenn diese Option aktiviert ist, erhalten Spieler nur positive Bewertungen, was Freundbeschuss durch KI verhindert, wenn befreundete Ausrüstung zerstört oder befreundete Einheiten von Spielern des selben Teams getötet werden. 否定評価を受けますか?有効化した場合プレイヤーは肯定評価のみを受け、友軍の装備を壊したり殺害をしても AI からの攻撃を防ぎます。 I giocatori dovrebbero ricevere delle valutazioni negative ? Quando è abilitato i giocatori ricevono esclusivamente valutazioni positive che prevengono il fuoco delle AI alleate quando distruggono equipaggiamenti o uccidono membri della squadra. - 玩家是否會收到負面評價? 當本功能開啟時玩家只會接收到正面評價,所以當玩家做出擊殺友軍AI、毀壞友軍裝備或殺害小隊夥伴都不會收到負面評價。 + 玩家是否會收到負面評價? 當本功能開啟時玩家只會接收到正面評價,所以當玩家做出擊殺友軍AI、毀壞友軍裝備或殺害小隊夥伴都不會收到負面評價 玩家是否会收到负面评价? 当本功能开启时玩家只会接收到正面评价,所以当玩家做出击杀友军AI、毁坏友军装备或杀害小队伙伴都不会收到负面评价。 플레이어의 부정행위 가중치를 계산합니까? 활성화된 플레이어는 높은 레이팅을 가질때, 아군의 장비나 병력을 사격해도 아군 AI의 사격을 받지 않습니다. diff --git a/addons/map_gestures/stringtable.xml b/addons/map_gestures/stringtable.xml index ce0c715c33..2aa187797b 100644 --- a/addons/map_gestures/stringtable.xml +++ b/addons/map_gestures/stringtable.xml @@ -146,7 +146,7 @@ モジュールで同期されたグループのリーダー用に色の値を決定します。 그룹이 이 모듈에 동기화 됐을때의 리더 색상입니다. 改变与此同步小队队长的标识器颜色。 - 改變與此同步小隊隊長的指示器顏色。 + 改變與此同步小隊隊長的指示器顏色 Color @@ -220,7 +220,7 @@ データの更新間隔 데이터 갱신 간격 定义每次更新数据的时间. - 定義每次更新數據的時間. + 定義每次更新數據的時間 Enables the Map Gestures. @@ -264,7 +264,7 @@ マップ ジェスチャに表示される、名前の色を決定します。 지도 색상에 표시되는 이름의 색상을 결정합니다. 定义名称文字颜色。使其与地图标识器颜色有所区别。 - 定義名稱文字顏色。使其與地圖指示器顏色有所區別。 + 定義名稱文字顏色。使其與地圖指示器顏色有所區別 Map Gestures diff --git a/addons/maptools/stringtable.xml b/addons/maptools/stringtable.xml index 75ec9be96b..f55d0b6c9d 100644 --- a/addons/maptools/stringtable.xml +++ b/addons/maptools/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -221,7 +221,7 @@ Utiliser le bord des outils de navigation pour tracer des lignes droites. Note: l'on doit survoler le milieu du trait pour pouvoir le supprimer. Disegna sul bordo degli strumenti di mappatura per disegnare linee dritte. Nota: Deve spostarsi al centro per essere cancellato. 使用地图工具的边缘来绘制直线。备注: 要删除直线时,请把滑鼠移动到该线条的中央即可删除该线。 - 使用地圖工具的邊緣來繪製直線。備註: 要刪除直線時,請把滑鼠移動到該線條的中央即可刪除該線。 + 使用地圖工具的邊緣來繪製直線。備註: 要刪除直線時,請把滑鼠移動到該線條的中央即可刪除該線 diff --git a/addons/markers/stringtable.xml b/addons/markers/stringtable.xml index afcf9e1ba7..564a685b4f 100644 --- a/addons/markers/stringtable.xml +++ b/addons/markers/stringtable.xml @@ -39,7 +39,7 @@ Beschränkt welche Spieler Marker mit gedrückter Alt-Taste bewegen können. どのプレイヤーが Alt キーを押しながらマーカー移動をさせられるか制限できます。 Alt 키를 누른 상태에서 마커를 움직일 수있는 플레이어를 제한합니다. - 設定誰可以透過按住Alt鍵來移動標誌。 + 設定誰可以透過按住Alt鍵來移動標誌 设定谁可以透过按住Alt键来移动标志。 diff --git a/addons/medical/stringtable.xml b/addons/medical/stringtable.xml index e24d014815..78c89a46df 100644 --- a/addons/medical/stringtable.xml +++ b/addons/medical/stringtable.xml @@ -63,7 +63,7 @@ 医療廃棄物シミュレーションは各クライアントでローカルに作成される、医療廃棄物の詳細度を決定できます。ローカルで多くのアイテムがあると FPS の低下を引き起こすため、クライアント側のみの設定です。 의료폐기물 재현 상세도의 경우 얼마나 많은 수의 폐기물이 클라이언트 주변에 생성되는지를 정합니다. 매우 많은 수의 지역은 프레임드랍을 유발할 수 있습니다, 고로 이는 클라이언트 전용 설정입니다. 设定医疗废弃物的最大产生数量,过多的数量会降低FPS,因此这由用户端性能来设定。 - 設定醫療廢棄物的最大產生數量,過多的數量會導致畫面更新率延遲,因此這由用戶端來設定。 + 設定醫療廢棄物的最大產生數量,過多的數量會導致畫面更新率延遲,因此這由用戶端來設定 Inject Adenosine @@ -1101,7 +1101,7 @@ 緊急圧迫包帯は傷口を血液凝固剤でおおうようにできていて、つかうと出血の原因を取りさります。 드레싱, 출혈을 막고서 상처를 덮기위해 쓰는 물건입니다. 用于覆盖伤口以防止出血,透过敷料的止血剂来让出血慢慢停止。 - 用於覆蓋傷口以防止出血,透過敷料的止血劑來讓出血慢慢停止。 + 用於覆蓋傷口以防止出血,透過敷料的止血劑來讓出血慢慢停止 Packing Bandage @@ -1245,7 +1245,7 @@ 止血帯は静脈や動脈へ圧力をかけ、循環を遅らせることで血液の流れをおそくし、失血を防ぎます。 정맥과 동맥을 압축시키켜 혈액순환을 억제 혹은 늦추게하여 혈액손실을 줄이는 도구입니다. 用于压迫静脉与动脉的血液流动,达到减缓失血速度的目的。 - 用於壓迫靜脈與動脈的血液流動,達到減緩失血速度的目的。 + 用於壓迫靜脈與動脈的血液流動,達到減緩失血速度的目的 Morphine autoinjector @@ -1293,7 +1293,7 @@ 戦闘が収まったとき、モルヒネを痛みにたいしてつかいます。 심한 통증을 완화하기 위해 쓰이는 진통제입니다. 止痛药的一种,用于减低中度至重度的疼痛感。 - 止痛藥的一種,用於減低中度至重度的疼痛感。 + 止痛藥的一種,用於減低中度至重度的疼痛感 Adenosine autoinjector @@ -1386,7 +1386,7 @@ 核・生物・化学兵器がつかわれている条件下にてつかいます。 핵,생물,화학 상황에 쓰이는 군용 약품 军用神经解毒针,用来应付核生化污染的情况。 - 軍用神經解毒針,用來應付核生化汙染的情況。 + 軍用神經解毒針,用來應付核生化汙染的情況 Epinephrine autoinjector @@ -5626,32 +5626,38 @@ Unconscious animation during treatment 処置中に気絶アニメーション - 治疗时死亡动画 + 治疗时死亡动画 + 醫療時加入的昏迷動作 Allow animation of unconscious patients during treatment. 患者の処置中に気絶アニメーションを許可します。 - 在无意识患者治疗时死亡,会播放死亡动画? + 在无意识患者治疗时死亡,会播放死亡动画? + 允許醫療時加入昏迷的動作 Move unconscious units from group グループから気絶ユニットを移動 - 从小队中移除无意识伤者 + 从小队中移除无意识伤者 + 從小隊中移動昏迷的單位 When a group member goes unconscious, removes them from their group. グループのメンバーが気絶すると、グループから退出させます。 - 当一个队员失去意识时,他将被移除出小队 + 当一个队员失去意识时,他将被移除出小队 + 當隊員昏迷時,將被他的小組中刪除 Overdosing 過剰投与 - 过量 + 过量 + 過量 Makes patient vulnerable to Morphine/Epinephrine/Atropine overdosing. モルヒネ/アドレナリン/アトロピンの過剰投与により患者を脆弱にします。 - 当队员处于吗啡/肾上腺素/阿托品过量时再次受伤,他的伤害会更重 + 当队员处于吗啡/肾上腺素/阿托品过量时再次受伤,他的伤害会更重 + 當隊員對嗎啡/腎上腺素/阿托品過量時,會使他的傷害更重 diff --git a/addons/medical_ai/stringtable.xml b/addons/medical_ai/stringtable.xml index f3f1e7a172..9e07a40d49 100644 --- a/addons/medical_ai/stringtable.xml +++ b/addons/medical_ai/stringtable.xml @@ -4,12 +4,14 @@ Medical AI enabled for 次に AI 治療を有効 - AI医疗启用 + AI医疗启用 + AI醫療啟用 Enable AI units to heal themselves and each other. AI ユニットの自己や相互治療を有効化します。 - 使AI单位能够彼此治疗自己 + 使AI单位能够彼此治疗自己 + 啟用AI能夠彼此醫療自己 Only Server and HC diff --git a/addons/medical_menu/stringtable.xml b/addons/medical_menu/stringtable.xml index c695fcc5e0..6ec4802a02 100644 --- a/addons/medical_menu/stringtable.xml +++ b/addons/medical_menu/stringtable.xml @@ -829,11 +829,14 @@ Medical Menu maximum range 治療メニューの最大範囲 - 医疗菜单最大范围 + 医疗菜单最大范围 + 醫療選單最大範圍 Maximum distance from where the Medical Menu can be opened. 你可以打开医疗菜单的最大范围 + 醫療選單可以開啟的最大距離 + 医疗选单可以开启的最大距离 diff --git a/addons/microdagr/stringtable.xml b/addons/microdagr/stringtable.xml index f9015c5512..1d393606f3 100644 --- a/addons/microdagr/stringtable.xml +++ b/addons/microdagr/stringtable.xml @@ -511,7 +511,7 @@ アイテム上で表示されるデータ量を決定します。設定を減らすと地図上での情報が少なくなります。 MicroDAGR에 얼마나 많은 데이터가 들어있는지 정합니다. 적을 수록 지도상에도 비춰지는게 적어집니다. 设定有多少数据会显示在微型军用GPS接收器上。这些资料的多寡会反映在迷你地图的显示上。 - 設定有多少數據會顯示在微型軍用GPS接收器上。這些資料的多寡會反映在迷你地圖的顯示上。 + 設定有多少數據會顯示在微型軍用GPS接收器上。這些資料的多寡會反映在迷你地圖的顯示上 diff --git a/addons/missileguidance/stringtable.xml b/addons/missileguidance/stringtable.xml index e32c77eb93..cb3cf6ac03 100644 --- a/addons/missileguidance/stringtable.xml +++ b/addons/missileguidance/stringtable.xml @@ -31,7 +31,7 @@ 高度なミサイルの誘導、または AMG はミサイルの捕捉と発射に複数の強化をあたえます。これはミサイルの種類によって、枠組みを必要とします。 고급 미사일 유도 혹은 AMG 는 표적 획득 및 발사를 위한 여러 기능을 제공합니다. 미사일 종류에따라 체계가 필요합니다. 进阶飞弹制导增强了多种导弹锁定和射击的能力。此系统适用于所有飞弹类型的武器。 - 進階飛彈制導增強了多種導彈鎖定和射擊的能力。此系統適用於所有飛彈類型的武器。 + 進階飛彈制導增強了多種導彈鎖定和射擊的能力。此系統適用於所有飛彈類型的武器 Hydra-70 DAGR Missile diff --git a/addons/nametags/stringtable.xml b/addons/nametags/stringtable.xml index 1c50920023..43512f855d 100644 --- a/addons/nametags/stringtable.xml +++ b/addons/nametags/stringtable.xml @@ -542,7 +542,8 @@ Player tags transparency プレイヤー名札の透明度 - 玩家名字标签透明度 + 玩家名字标签透明度 + 玩家名稱透明度 diff --git a/addons/nightvision/stringtable.xml b/addons/nightvision/stringtable.xml index 65fdf0278c..eb991a1216 100644 --- a/addons/nightvision/stringtable.xml +++ b/addons/nightvision/stringtable.xml @@ -213,7 +213,7 @@ 暗視装置の設定をします。 야간투시경 설정 设定夜视选项. - 設定夜視選項. + 設定夜視選項 Disable NVGs in scope @@ -243,7 +243,7 @@ スコープで狙いを付けると、暗視装置を無効化します。 조준시 야투경의 사용을 제한합니다. 此功能开启后,当要使用瞄准镜时,为避免夜视镜镜头碰撞到瞄准镜,会先拿开夜视镜后再进行瞄准镜瞄准。 - 此功能開啟後,當要使用瞄準鏡時,為避免夜視鏡鏡頭碰撞到瞄準鏡,會先拿開夜視鏡後再進行瞄準鏡瞄準。 + 此功能開啟後,當要使用瞄準鏡時,為避免夜視鏡鏡頭碰撞到瞄準鏡,會先拿開夜視鏡後再進行瞄準鏡瞄準 NVG Fog Scale @@ -258,7 +258,7 @@ 霧は視界制限のために使われます。 La nebbia viene utilizzata per limitare la visibilità. Nebel wird genutzt, um die Sichtbarkeit einzuschränken. - 透過霧氣來縮減夜視鏡的可視距離。 + 透過霧氣來縮減夜視鏡的可視距離 透过雾气来缩减夜视镜的可视距离。 @@ -301,12 +301,14 @@ Shutter Effects シャッター効果 - 快门效果 + 快门效果 + 快門效果 Rolling shutter effect from muzzle flashes 発射炎が作るローリング シャッター効果です - 枪械开火时产生瞬间快门效果 + 枪械开火时产生瞬间快门效果 + 槍開火時瞬間產生快門效果 diff --git a/addons/noradio/stringtable.xml b/addons/noradio/stringtable.xml index 3ac0d075bf..3bb0fbc0da 100644 --- a/addons/noradio/stringtable.xml +++ b/addons/noradio/stringtable.xml @@ -13,7 +13,7 @@ Mutes the controlled player avatar. Schaltet eigenen Spieleravatar stumm. Muta l'avatar del giocatore controllato. - 靜音玩家所控制的角色。 + 靜音玩家所控制的角色 静音玩家所控制的角色。 プレイヤーに操作されているこのキャラをミュートします。 diff --git a/addons/optionsmenu/stringtable.xml b/addons/optionsmenu/stringtable.xml index 6ebc553748..b5c3d2737d 100644 --- a/addons/optionsmenu/stringtable.xml +++ b/addons/optionsmenu/stringtable.xml @@ -31,7 +31,7 @@ デバッグ情報を RPT とクリップボードに送った。 디버그 정보를 보고하기 및 클립보드에 복사하기 위해 보냅니다. 复制除错讯息至剪贴簿与RPT报告档中。 - 複製除錯訊息至剪貼簿與RPT報告檔中。 + 複製除錯訊息至剪貼簿與RPT報告檔中 Headbug Fix @@ -63,7 +63,7 @@ 現在のアニメーションの状況を初期化します。 자신의 동작 상태 초기화 当ACE发生动作BUG时,点此修复。 - 當ACE發生動作BUG時,點此修復。 + 當ACE發生動作BUG時,點此修復 ACE News diff --git a/addons/overpressure/stringtable.xml b/addons/overpressure/stringtable.xml index fa88825104..fc29bb24ba 100644 --- a/addons/overpressure/stringtable.xml +++ b/addons/overpressure/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -26,12 +26,14 @@ Backblast range 後方噴射の範囲 - 向后喷射的范围 + 向后喷射的范围 + 後方尾焰的範圍 Backblast angle 後方噴射の角度 - 向后喷射的角度 + 向后喷射的角度 + 後方尾焰的角度 diff --git a/addons/parachute/stringtable.xml b/addons/parachute/stringtable.xml index fa46ad254f..f1321d54bb 100644 --- a/addons/parachute/stringtable.xml +++ b/addons/parachute/stringtable.xml @@ -47,7 +47,7 @@ 高度や降下率、時間を見るのに使います。 높이와, 하강속도 그리고 시간을 보여줍니다. 用于显示高度,下降率和时间。 - 用於顯示高度,下降率和時間。 + 用於顯示高度,下降率和時間 Non-Steerable Parachute @@ -110,7 +110,7 @@ Blendet den Höhen- und Geschwindigkeitsmesser während des Fallschirmspringens aus. 自由降下時とパラシュート中に高度と速度を非表示にします。 Nasconde l'altitudine e la velocità mostrate durante la caduta libera o paracadutandosi. - 在自由落體時或開傘下隱藏自由落體高度計。 + 在自由落體時或開傘下隱藏自由落體高度計 在自由落体时或开伞下隐藏自由落体高度计。 diff --git a/addons/pylons/stringtable.xml b/addons/pylons/stringtable.xml index e31d3f59ca..1704518125 100644 --- a/addons/pylons/stringtable.xml +++ b/addons/pylons/stringtable.xml @@ -50,7 +50,7 @@ Pylons that are colored red will have to be manually rearmed. 赤色に設定されたパイロンは手動で再武装する必要があります。 I Piloni di colore rosso devono essere riarmati manualmente. - 以紅色標記出的派龍架必須以手動方式進行彈藥整補。 + 以紅色標記出的派龍架必須以手動方式進行彈藥整補 以红色标记出的导弹挂架必须以手动方式进行弹药整补。 붉은색의 파일런은 수동으로 재무장해야 합니다. Außenlaststationen, die rot markiert sind, müssen manuell aufmunitioniert werden. @@ -93,27 +93,33 @@ Enable Pylons Menu for Zeus - 启用宙斯导弹挂架菜单 + 启用宙斯导弹挂架菜单 + 啟用派龍架選單給宙斯 Enables use of the zeus module. - 允许启用宙斯模组 + 允许启用宙斯模组 + 允啟使用宙斯模塊 Enable Pylons Menu from Ammo Trucks - 启用弹药车导弹挂架菜单 + 启用弹药车导弹挂架菜单 + 啟用從彈藥卡車使用派龍架選單 Enables use of pylons menu from ammo trucks. - 允许在弹药车上启用导弹挂架菜单 + 允许在弹药车上启用导弹挂架菜单 + 允許從彈藥卡車使用派龍架選單 This aircraft doesn't have pylons - 这架飞机没有导弹挂架 + 这架飞机没有导弹挂架 + 這架飛機沒有派龍架 Configure pylons module is disabled for zeus - 宙斯模组的导弹挂架已禁用 + 宙斯模组的导弹挂架已禁用 + 宙斯模塊的派龍架設定已被禁用 Rearm New Pylons @@ -128,7 +134,7 @@ Automatically rearm new pylons from the nearest rearm vehicle. 近くの補給車両から自動的に新規パイロンを再武装します。 Riarma automaticamente i nuovi piloni dal veicoli di riarmo più vicino. - 自動從附近的整補載具中為派龍架進行彈藥整補。 + 自動從附近的整補載具中為派龍架進行彈藥整補 自动从附近的整装载具中为导弹挂架进行弹药整装。 근처의 재무장 차량에서 빈 파일런을 자동으로 재무장 합니다. Neue Außenlaststationen. automatisch vom nächsten Munitionsfahrzeug aufmunitionieren @@ -146,7 +152,7 @@ The time it takes to replace each pylon (in seconds). 各パイロンの置き換えにかかる時間を設定します。(秒) Il tempo che impiega ogni pilone ad essere sostituito (in secondi). - 每個派龍架需花多久時間進行整補(單位為秒)。 + 每個派龍架需花多久時間進行整補(單位為秒) 每个挂架需花多久时间进行整装单位为秒)。 파일런을 재설정 하는데 걸리는 시간 (초) Die benötigte Zeit, um einzelne Außenlaststationen zu ersetzen (in Sekunden). @@ -164,7 +170,7 @@ The distance an aircraft needs to be from a rearm vehicle. 補給車両から航空機までの必要な距離。 La distanza necessaria per un aereo da un veicolo di riarmo. - 設定飛機必須距離整補載具多少公尺才能進行彈藥整補。 + 設定飛機必須距離整補載具多少公尺才能進行彈藥整補 设定飞机必须距离整装载具多少公尺才能进行弹药整装。 항공기에서 재보급 가능한 재무장 차량을 찾습니다. Die Distanz, die ein Fahrzeug von einem Munitionsfahrzeug entfernt sein darf. @@ -182,7 +188,7 @@ Require an engineer. 工兵を必須とします。 Necessita un ingegnere. - 需要工兵才能進行彈藥整補。 + 需要工兵才能進行彈藥整補 必须是工兵才能进行弹药整装。 정비병이 필요합니다. Benötigt einen Pionier. @@ -200,7 +206,7 @@ Require a toolkit in inventory. インベントリ内にツールキットの存在を必須とします。 Necessita un kit di riparazione nell'inventario - 需要工具包才能進行彈藥整補。 + 需要工具包才能進行彈藥整補 需要工具包才能进行弹药整装。 툴킷이 필요합니다. Benötigt einen Werkzeugkasten im Inventar. diff --git a/addons/quickmount/stringtable.xml b/addons/quickmount/stringtable.xml index fea88abe40..e928380c26 100644 --- a/addons/quickmount/stringtable.xml +++ b/addons/quickmount/stringtable.xml @@ -57,7 +57,7 @@ Distanza massima per controllare i veicoli. 車両を確認できる最大距離 最大可检查载具的距离. - 最大可檢查載具的距離. + 最大可檢查載具的距離 Maksymalna odległość do pojazdu. 탑승 가능한 차량과의 거리 @@ -87,7 +87,7 @@ Velocità massima del veicolo (km/h) consentita per far salire un giocatore プレイヤーが搭乗できる限界速度 (km/h) 设置玩家能在最高速度是多少的情况之下进入载具。 - 設置玩家能在最高多少的速度之下進入載具。 + 設置玩家能在最高多少的速度之下進入載具 Maksymalna prędkość pojazdu (km/h) pozwalająca graczowi wsiąść. 플레이어가 탑승 가능한 목표 차량의 최대 속도 @@ -107,7 +107,7 @@ Priorità del sedile in entrata 搭乗時の優先順位 优先想进入哪个位置。 - 優先想進入哪個座位。 + 優先想進入哪個座位 Priorytet pozycji w pojeździe 탑승할 좌석의 우선순위를 지정합니다. diff --git a/addons/realisticnames/stringtable.xml b/addons/realisticnames/stringtable.xml index 0ff6ffebd5..25f9d749f9 100644 --- a/addons/realisticnames/stringtable.xml +++ b/addons/realisticnames/stringtable.xml @@ -660,6 +660,8 @@ KamAZ MRL KamAS MRL + "卡瑪斯"卡車 (多管火箭) + "卡玛斯"卡车 (多管火箭) Karatel @@ -1608,21 +1610,24 @@ Metis-M Metis-M Метис-М - Метис-М反坦克系统 + "麥士蒂索人"-M型反坦克導彈 + "麦士蒂索人"-M型反坦克导弹 Metis-M (Brown) Metis-M (Braun) Metis-M (Brun) Метис-М (Кори́чневый) - Метис-М反坦克系统(棕色) + "麥士蒂索人"-M型反坦克導彈(棕色) + "麦士蒂索人"-M型反坦克导弹(棕色) Metis-M (Green) Metis-M (Grün) Metis-M (Verde) Метис-М (Зелёный) - Метис-М反坦克系统(绿色) + "麥士蒂索人"-M型反坦克導彈(綠色) + "麦士蒂索人"-M型反坦克导弹(绿色) MX @@ -2619,13 +2624,14 @@ Jeep Wrangler (SPG-9) Jeep Wrangler (SPG-9) - "牧马人"吉普车(SPG-9火箭筒) + "牧马人"吉普车(SPG-9火箭筒) + "牧馬人"吉普車 (SPG-9火箭筒) Jeep Wrangler (LMG) Jeep Wrangler (LMG) - "牧马人"吉普车(轻机枪) - + "牧马人"吉普车(轻机枪) + "牧馬人"吉普車 (輕機槍) Cessna TTx @@ -3181,7 +3187,8 @@ Polaris DAGOR (Mini-Spike AT) Polaris DAGOR (Mini-Spike PzAbw) - "北极星"先进布署越野车 (反坦克) + "北极星"先进布署越野车("迷你长钉"反坦克导弹发射器) + "北極星"先進佈署越野車("迷你長釘"反坦克導彈發射器) Polaris DAGOR @@ -3207,7 +3214,8 @@ LSV Mk. II (Metis-M) LSV Mk. II (Metis-M) - 轻型突击车2式(反坦克) + 轻型突击车2式 ("麦士蒂索人"-M型反坦克导弹) + 輕型突擊車2式 ("麥士蒂索人"-M型反坦克導彈) LSV Mk. II @@ -3219,137 +3227,195 @@ Rooikat 120 Rooikat 120 - "山猫"重型轮式装甲车 + "狞猫"120主炮轮式装甲车 + "獰貓"120主炮輪式裝甲車 Rooikat 120 UP Rooikat 120 UP - "山猫"重型轮式装甲车(栏栅版) + "狞猫"120主炮轮式装甲车 (城市版) + "獰貓"120主炮輪式裝甲車 (城市版) T-14 Armata T-14 Armata Т-14 Армата - Т-14 主战坦克 + T-14"阿玛塔"主战坦克 + T-14"阿瑪塔"主戰坦克 T-14K Armata T-14K Armata Т-14К Армата - Т-14K 主战坦克 + T-14K"阿玛塔"主战坦克 + T-14K"阿瑪塔"主戰坦克 Wiesel 2 Ozelot (AA) Wiesel 2 Ozelot (FlaRaWaTrg) - "豹猫"装甲车(防空) + "鼬鼠"2装甲车 (防空) + "鼬鼠"2裝甲車 (防空) Wiesel 2 (ATGM) Wiesel 2 (PzAbw) - "鼹鼠"装甲车(反坦克) + "鼬鼠"2装甲车 (反坦导弹) + "鼬鼠"2裝甲車 (反坦導彈) Wiesel 2 (MK20) Wiesel 2 (MK20) - "鼹鼠"装甲车(MK20机炮) + "鼬鼠"2装甲车 (MK20机炮) + "鼬鼠"2裝甲車 (MK20機炮) Wiesel 2 RFCV (Radar) Wiesel 2 AFF (Radar) - "鼹鼠"装甲车(成像雷达) + "鼬鼠"2装甲车 (雷达) + "鼬鼠"2裝甲車 (雷達) Leupold Mark 4 HAMR Leupold Mark 4 HAMR + Leupold Mark 4 HAMR + Leupold Mark 4 HAMR Leupold Mark 4 HAMR (Khaki) Leupold Mark 4 HAMR (Khaki) + Leupold Mark 4 HAMR (卡其色) + Leupold Mark 4 HAMR (卡其色) ELCAN SpecterOS (Tan) ELCAN SpecterOS (Beige) + ELCAN SpecterOS (黃褐色) + ELCAN SpecterOS (黄褐色) ELCAN SpecterOS (Black) ELCAN SpecterOS (Schwarz) + ELCAN SpecterOS (黑色) + ELCAN SpecterOS (黑色) ELCAN SpecterOS (Green Hex) + ELCAN SpecterOS (綠色數位蜂巢迷彩) + ELCAN SpecterOS (绿色数位蜂巢迷彩) SIG BRAVO4 / ROMEO3 (Black) SIG BRAVO4 / ROMEO3 (Schwarz) + SIG BRAVO4 / ROMEO3 (黑色) + SIG BRAVO4 / ROMEO3 (黑色) SIG BRAVO4 / ROMEO3 (Khaki) SIG BRAVO4 / ROMEO3 (Khaki) + SIG BRAVO4 / ROMEO3 (卡其色) + SIG BRAVO4 / ROMEO3 (卡其色) SIG BRAVO4 / ROMEO3 (Sand) SIG BRAVO4 / ROMEO3 (Beige) + SIG BRAVO4 / ROMEO3 (沙色) + SIG BRAVO4 / ROMEO3 (沙色) Nightforce NXS + Nightforce NXS + Nightforce NXS Nightforce NXS (Green Hex) + Nightforce NXS (綠色數位蜂巢迷彩) + Nightforce NXS (绿色数位蜂巢迷彩) Nightforce NXS (Jungle) Nightforce NXS (Dschungel) + Nightforce NXS (叢林色) + Nightforce NXS (丛林色) Burris XTR II + Burris XTR II + Burris XTR II Burris XTR II (Green Hex) + Burris XTR II (綠色數位蜂巢迷彩) + Burris XTR II (绿色数位蜂巢迷彩) EOTech XPS3 (Tan) EOTech XPS3 (Beige) + EOTech XPS3 (黃褐色) + EOTech XPS3 (黄褐色) EOTech XPS3 (Black) EOTech XPS3 (Schwarz) + EOTech XPS3 (黑色) + EOTech XPS3 (黑色) EOTech XPS3 (Khaki) EOTech XPS3 (Khaki) + EOTech XPS3 (卡其色) + EOTech XPS3 (卡其色) EOTech XPS3 SMG (Tan) EOTech XPS3 SMG (Beige) + EOTech XPS3 SMG (黃褐色) + EOTech XPS3 SMG (黄褐色) EOTech XPS3 SMG (Black) EOTech XPS3 SMG (Schwarz) + EOTech XPS3 SMG (黑色) + EOTech XPS3 SMG (黑色) EOTech XPS3 SMG (Khaki) EOTech XPS3 SMG (Khaki) + EOTech XPS3 SMG (卡其色) + EOTech XPS3 SMG (卡其色) IOR-Valdada Pitbull 2 + IOR-Valdada Pitbull 2 + IOR-Valdada Pitbull 2 Burris FastFire 2 + Burris FastFire 2 + Burris FastFire 2 C-More Railway (Red) C-More Railway (Rot) + C-More Railway (紅色) + C-More Railway (红色) C-More Railway (Green) C-More Railway (Grün) + C-More Railway (綠色) + C-More Railway (绿色) C-More Railway SMG (Red) C-More Railway SMG (Rot) + C-More Railway SMG (紅色) + C-More Railway SMG (红色) C-More Railway SMG (Green) C-More Railway SMG (Grün) + C-More Railway SMG (綠色) + C-More Railway SMG (绿色) diff --git a/addons/repair/stringtable.xml b/addons/repair/stringtable.xml index 73bfe341a9..b4805c31e4 100644 --- a/addons/repair/stringtable.xml +++ b/addons/repair/stringtable.xml @@ -1837,7 +1837,7 @@ Anzahl der Ersatzketten im Laderaum. カーゴ内にある予備履帯の数を指定します。 Numero dei cingoli di scorta nel cargo. - 設定載具在貨艙內攜帶的備用履帶數量。 + 設定載具在貨艙內攜帶的備用履帶數量 设定载具在货舱内携带的备用履带数量。 @@ -1853,18 +1853,20 @@ Anzahl der Ersatzreifen im Laderaum. カーゴ内にある予備タイヤの数を指定します。 Numero delle ruote di scorta nel cargo. - 設定載具在貨艙內攜帶的備用輪胎數量。 + 設定載具在貨艙內攜帶的備用輪胎數量 设定载具在货舱内携带的备用轮胎数量。 Auto shut off engine on repair 修理時にエンジン自動停止 - 维修时自动关闭发动机。 + 维修时自动关闭发动机。 + 維修時自動關閉引擎 Automatically shut off the engine when doing repairs. 修理時にエンジンを自動で停止します。 - 修理时自动关闭发动机。 + 修理时自动关闭发动机。 + 維修時自動關閉引擎 diff --git a/addons/respawn/stringtable.xml b/addons/respawn/stringtable.xml index d9947d98a6..265334d20f 100644 --- a/addons/respawn/stringtable.xml +++ b/addons/respawn/stringtable.xml @@ -331,7 +331,7 @@ もし友軍誤射による死者が出た場合は、チャットにてその旨を表示します。 이 모듈은 미션 중 아군사격으로 인한 사망자 발생시 채팅창에 메세지를 표시해줍니다. 摆放此模块后,当有发生友军误击致死的事件,会显示提示讯息在聊天视窗中。 - 擺放此模塊後,當有發生友軍誤擊致死的事件,會顯示提示訊息在聊天視窗中。 + 擺放此模塊後,當有發生友軍誤擊致死的事件,會顯示提示訊息在聊天視窗中 Rallypoint System @@ -362,7 +362,7 @@ ミッションでベースから素早く移動できるラリーポイントを使えるようにします。ゲーム内に専用オブジェクトとなるベースとフラッグを設置している必要があります。両オブジェクトは Empty 下の ACE リスポンから設置できます。 이 모듈은 미션 중에 기지 깃발에서 집결지로 빠르게 텔레포트 시켜주는 역활을 합니다. 지도 상에 기지 및 깃발이 필요합니다. 두 가지 모두 Empty->ACE Respawn 카테고리에서 찾을 수 있습니다. 摆放此模块后,你将能在任务中布署集合点,使你可以快速往返基地与前线。要使用本功能,请记得放上空物件->ACE 重生里面的基地与旗帜。 - 擺放此模塊後,你將能在任務中佈署集合點,使你可以快速往返基地與前線。要使用本功能,請記得放上空物件->ACE 重生裡面的基地與旗幟。 + 擺放此模塊後,你將能在任務中佈署集合點,使你可以快速往返基地與前線。要使用本功能,請記得放上空物件->ACE 重生裡面的基地與旗幟 Move Rallypoint diff --git a/addons/scopes/stringtable.xml b/addons/scopes/stringtable.xml index a19bb55df0..aa297fd32d 100644 --- a/addons/scopes/stringtable.xml +++ b/addons/scopes/stringtable.xml @@ -442,12 +442,12 @@ Horizontal limits - Limites horizontales + 水平限制 水平制限 Vertical limits - Limites verticales + 垂直限制 垂直制限 diff --git a/addons/spectator/stringtable.xml b/addons/spectator/stringtable.xml index e5984b4183..4958671946 100644 --- a/addons/spectator/stringtable.xml +++ b/addons/spectator/stringtable.xml @@ -50,7 +50,7 @@ Macht KI-Einheiten den Zuschauern sichtbar スペクテイターで AI 視点を可能に Permette la visibilità delle AI in spettatore - 開啟此功能後可在觀察者模式下觀察AI單位。 + 開啟此功能後可在觀察者模式下觀察AI單位 开启此功能后可在观察者模式下观察AI单位。 관전자가 AI를 관전 할 수 있습니다. diff --git a/addons/vehiclelock/stringtable.xml b/addons/vehiclelock/stringtable.xml index e7cd5e3b14..95fcadfc98 100644 --- a/addons/vehiclelock/stringtable.xml +++ b/addons/vehiclelock/stringtable.xml @@ -392,7 +392,7 @@ 車両とプレイヤへ同期します。プレイヤへ同期された車両のカスタム キーを作ります。これはミッション開始時に作成されたオブジェクトでのみ有効です。 차량과 플레이어에게 동기화됩니다. 동기화된 차량은 플레이어에게 열쇠를 지급합니다. 오직 미션 시작시에 생긴 물체들만 유효합니다. 可同步在载具与玩家身上。将使被同步的玩家掌握其他被同步载具的钥匙。此模块只会在任务刚开始时触发。 - 可同步在載具與玩家身上。將使被同步的玩家掌握其他被同步載具的鑰匙。此模塊只會在任務剛開始時觸發。 + 可同步在載具與玩家身上。將使被同步的玩家掌握其他被同步載具的鑰匙。此模塊只會在任務剛開始時觸發 diff --git a/addons/weaponselect/stringtable.xml b/addons/weaponselect/stringtable.xml index d2f17dfe35..758a20ffcf 100644 --- a/addons/weaponselect/stringtable.xml +++ b/addons/weaponselect/stringtable.xml @@ -31,7 +31,7 @@ 手榴弾を投げるときに、ヒントか文で通知します。 수류탄 투척시 화면에 문자나 힌트를 표시합니다. 投掷手榴弹时显示提示讯息。 - 投擲手榴彈時顯示提示訊息。 + 投擲手榴彈時顯示提示訊息 Select Pistol diff --git a/addons/zeus/stringtable.xml b/addons/zeus/stringtable.xml index a139d42556..400d994aa2 100644 --- a/addons/zeus/stringtable.xml +++ b/addons/zeus/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -275,12 +275,15 @@ Editing Mode + 編輯模式 Add or remove editable objects from Zeus + 新增或移除可編輯物件給宙斯 Add Objects + 新增物件 Remove Objects @@ -963,6 +966,7 @@ Select cargo to unload + 選擇要卸載的貨物 Task Radius @@ -1076,12 +1080,14 @@ Toggle Target 目標を切り替え - 切换目标 + 切换目标 + 切換目標 Units affected by the toggle ユニットは切り替えに影響を受けます - 被选单位受切换影响 + 被选单位受切换影响 + 受切換所影響的單位 Selected Group @@ -1382,7 +1388,7 @@ Unit will actively try to find and move towards nearby units of the activation side. The range of Auto Seek is based on the unit's spot distance skill with a minimum of 100 meters. - 單位將主動嘗試尋找並移動到附近的激活方單位。自動搜索的範圍是基於單位的距離技能,最少100米。 + 單位將主動嘗試尋找並移動到附近的激活方單位。自動搜索的範圍是基於單位的距離技能,最少100米 单位将主动尝试寻找并移动到附近的激活方单位。自动搜索的范围是基于单位的距离技能,最少100米。 Jednotka se bude aktivně snažit najít a přejít na blízké jednotky na straně aktivace. Rozsah Auto Seek je založen na dovednosti spotové vzdálenosti jednotky s minimem 100 metrů. L'unité essayera activement de trouver et de se déplacer vers les unités à proximité du côté d'activation. La portée d'Auto Seek est basée sur la compétence de distance de l'unité avec un minimum de 100 mètres. @@ -1463,12 +1469,14 @@ Add full ACE Arsenal ACE 武器庫を追加 - 添加ACE模式军火库 + 添加ACE模式军火库 + 增加完整的ACE軍火庫 Remove ACE Arsenal ACE 武器庫を削除 - 删除ACE模式军火库 + 删除ACE模式军火库 + 移除ACE軍火庫 From 09855f133a723a0f2865f72fa35826f034804bc7 Mon Sep 17 00:00:00 2001 From: Josuan Albin Date: Thu, 28 Jun 2018 07:06:12 +0200 Subject: [PATCH 161/235] Fix typo in med and issue related to unconsciousness (#6411) * Fix adenosine displayname being wrong in some medical interactions * Fix unconscious units waking up while being carried staying muted --- addons/medical/ACE_Medical_Actions.hpp | 4 ++-- addons/medical/ACE_Medical_SelfActions.hpp | 6 +++--- addons/medical/functions/fnc_unconsciousPFH.sqf | 6 ++++++ 3 files changed, 11 insertions(+), 5 deletions(-) diff --git a/addons/medical/ACE_Medical_Actions.hpp b/addons/medical/ACE_Medical_Actions.hpp index 678976a347..64fc82dbec 100644 --- a/addons/medical/ACE_Medical_Actions.hpp +++ b/addons/medical/ACE_Medical_Actions.hpp @@ -561,7 +561,7 @@ class ACE_LegLeft { icon = QPATHTOF(UI\icons\autoInjector.paa); }; class Adenosine: Morphine { - displayName = CSTRING(Inject_Atropine); + displayName = CSTRING(Inject_Adenosine); condition = QUOTE([ARR_4(_player, _target, 'leg_l', 'Adenosine')] call DFUNC(canTreatCached)); statement = QUOTE([ARR_4(_player, _target, 'leg_l', 'Adenosine')] call DFUNC(treatment)); EXCEPTIONS @@ -707,7 +707,7 @@ class ACE_LegRight { icon = QPATHTOF(UI\icons\autoInjector.paa); }; class Adenosine: Morphine { - displayName = CSTRING(Inject_Atropine); + displayName = CSTRING(Inject_Adenosine); condition = QUOTE([ARR_4(_player, _target, 'leg_r', 'Adenosine')] call DFUNC(canTreatCached)); statement = QUOTE([ARR_4(_player, _target, 'leg_r', 'Adenosine')] call DFUNC(treatment)); EXCEPTIONS diff --git a/addons/medical/ACE_Medical_SelfActions.hpp b/addons/medical/ACE_Medical_SelfActions.hpp index e5be36cd63..9f01f08908 100644 --- a/addons/medical/ACE_Medical_SelfActions.hpp +++ b/addons/medical/ACE_Medical_SelfActions.hpp @@ -197,7 +197,7 @@ class Medical { icon = QPATHTOF(UI\icons\autoInjector.paa); }; class Adenosine: Morphine { - displayName = CSTRING(Inject_Atropine); + displayName = CSTRING(Inject_Adenosine); condition = QUOTE([ARR_4(_player, _target, 'hand_l', 'Adenosine')] call DFUNC(canTreatCached)); exceptions[] = {"isNotInside", "isNotSwimming"}; statement = QUOTE([ARR_4(_player, _target, 'hand_l', 'Adenosine')] call DFUNC(treatment)); @@ -402,7 +402,7 @@ class Medical { icon = QPATHTOF(UI\icons\autoInjector.paa); }; class Adenosine: Morphine { - displayName = CSTRING(Inject_Atropine); + displayName = CSTRING(Inject_Adenosine); condition = QUOTE([ARR_4(_player, _target, 'leg_l', 'Adenosine')] call DFUNC(canTreatCached)); exceptions[] = {"isNotInside", "isNotSwimming"}; statement = QUOTE([ARR_4(_player, _target, 'leg_l', 'Adenosine')] call DFUNC(treatment)); @@ -492,7 +492,7 @@ class Medical { icon = QPATHTOF(UI\icons\autoInjector.paa); }; class Adenosine: Morphine { - displayName = CSTRING(Inject_Atropine); + displayName = CSTRING(Inject_Adenosine); condition = QUOTE([ARR_4(_player, _target, 'leg_r', 'Adenosine')] call DFUNC(canTreatCached)); exceptions[] = {"isNotInside", "isNotSwimming"}; statement = QUOTE([ARR_4(_player, _target, 'leg_r', 'Adenosine')] call DFUNC(treatment)); diff --git a/addons/medical/functions/fnc_unconsciousPFH.sqf b/addons/medical/functions/fnc_unconsciousPFH.sqf index 2f9d1a5522..d63e78db61 100644 --- a/addons/medical/functions/fnc_unconsciousPFH.sqf +++ b/addons/medical/functions/fnc_unconsciousPFH.sqf @@ -51,6 +51,12 @@ if (!alive _unit) exitWith { // In case the unit is no longer in an unconscious state, we are going to check if we can already reset the animation if !(_unit getVariable ["ACE_isUnconscious",false]) exitWith { TRACE_7("ACE_DEBUG_Unconscious_PFH",_unit, _args, [_unit] call FUNC(isBeingCarried), [_unit] call FUNC(isBeingDragged), _idPFH, _unit getVariable QGVAR(unconsciousArguments),animationState _unit); + + //Unmute the unit before the carry check + _unit setVariable ["tf_voiceVolume", 1, true]; + _unit setVariable ["tf_unable_to_use_radio", false, true]; + _unit setVariable ["acre_sys_core_isDisabled", false, true]; + // TODO, handle this with carry instead, so we can remove the PFH here. // Wait until the unit isn't being carried anymore, so we won't end up with wierd animations if !(([_unit] call FUNC(isBeingCarried)) || ([_unit] call FUNC(isBeingDragged))) then { From ea4533fc7f7fe1fa4c4d7743d301177d520b7ea6 Mon Sep 17 00:00:00 2001 From: markooff Date: Tue, 3 Jul 2018 17:26:36 +0200 Subject: [PATCH 162/235] Update vector.md --- docs/wiki/feature/vector.md | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/docs/wiki/feature/vector.md b/docs/wiki/feature/vector.md index 4b1294087e..dacaa1f01b 100644 --- a/docs/wiki/feature/vector.md +++ b/docs/wiki/feature/vector.md @@ -91,6 +91,13 @@ The Vector is controlled with 2 keys: the azimuth key and the range key; Ta - Press R until the desired units are displayed. - Tap Tab ↹ five times fast to save the selection. -## 3. Dependencies +## 3. Resources + +Polish version of this manual with some comments and small additional section +/polska wersja tego dokumentu opatrzona komentarzami oraz niewielkim dodatkiem: + +http://http://pgm.armaonline.pl/forum/viewtopic.php?f=15&t=548 + +## 4. Dependencies {% include dependencies_list.md component="vector" %} From 8e71d51956f8abfb4f539c5370c3ed52502f2a61 Mon Sep 17 00:00:00 2001 From: markooff Date: Wed, 4 Jul 2018 20:23:31 +0200 Subject: [PATCH 163/235] Update vector.md --- docs/wiki/feature/vector.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/wiki/feature/vector.md b/docs/wiki/feature/vector.md index dacaa1f01b..c9fce953fc 100644 --- a/docs/wiki/feature/vector.md +++ b/docs/wiki/feature/vector.md @@ -96,7 +96,7 @@ The Vector is controlled with 2 keys: the azimuth key and the range key; Ta Polish version of this manual with some comments and small additional section /polska wersja tego dokumentu opatrzona komentarzami oraz niewielkim dodatkiem: -http://http://pgm.armaonline.pl/forum/viewtopic.php?f=15&t=548 +http://pgm.armaonline.pl/forum/viewtopic.php?f=15&t=548 ## 4. Dependencies From a8c1846a3767d88e56a7832b7dd3a34bfd996d54 Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Thu, 5 Jul 2018 11:29:32 -0500 Subject: [PATCH 164/235] Logistics - Move to CBA settings and organize in subcategories (#6284) --- addons/cargo/ACE_Settings.hpp | 13 +--- addons/cargo/XEH_preInit.sqf | 2 + addons/cargo/initSettings.sqf | 19 ++++++ addons/optionsmenu/stringtable.xml | 26 ++++---- addons/rearm/ACE_Settings.hpp | 14 +--- addons/rearm/XEH_preInit.sqf | 2 + addons/rearm/initSettings.sqf | 19 ++++++ addons/refuel/ACE_Settings.hpp | 13 +--- addons/refuel/XEH_preInit.sqf | 2 + addons/refuel/initSettings.sqf | 19 ++++++ addons/repair/ACE_Settings.hpp | 76 ++++------------------ addons/repair/XEH_preInit.sqf | 2 + addons/repair/initSettings.sqf | 100 +++++++++++++++++++++++++++++ 13 files changed, 196 insertions(+), 111 deletions(-) create mode 100644 addons/cargo/initSettings.sqf create mode 100644 addons/rearm/initSettings.sqf create mode 100644 addons/refuel/initSettings.sqf create mode 100644 addons/repair/initSettings.sqf diff --git a/addons/cargo/ACE_Settings.hpp b/addons/cargo/ACE_Settings.hpp index e95465e647..fb039373a5 100644 --- a/addons/cargo/ACE_Settings.hpp +++ b/addons/cargo/ACE_Settings.hpp @@ -1,17 +1,8 @@ class ACE_Settings { class GVAR(enable) { - displayName = CSTRING(ModuleSettings_enable); - description = CSTRING(ModuleSettings_enable_Description); - typeName = "BOOL"; - value = 1; - category = ECSTRING(OptionsMenu,CategoryLogistics); + movedToSQF = 1; }; class GVAR(paradropTimeCoefficent) { - displayName = CSTRING(paradropTimeCoefficent); - description = CSTRING(paradropTimeCoefficent_description); - typeName = "SCALAR"; - value = 2.5; - category = ECSTRING(OptionsMenu,CategoryLogistics); - sliderSettings[] = {0, 10, 2.5, 1}; + movedToSQF = 1; }; }; diff --git a/addons/cargo/XEH_preInit.sqf b/addons/cargo/XEH_preInit.sqf index 5ee6406a7d..3d7ac380c2 100644 --- a/addons/cargo/XEH_preInit.sqf +++ b/addons/cargo/XEH_preInit.sqf @@ -6,6 +6,8 @@ PREP_RECOMPILE_START; #include "XEH_PREP.hpp" PREP_RECOMPILE_END; +#include "initSettings.sqf" + GVAR(initializedItemClasses) = []; GVAR(initializedVehicleClasses) = []; GVAR(cargoHolderTypes) = ["Car", "Air", "Tank", "Ship", "Cargo_base_F", "Land_PaperBox_closed_F"]; diff --git a/addons/cargo/initSettings.sqf b/addons/cargo/initSettings.sqf new file mode 100644 index 0000000000..3a9f70070a --- /dev/null +++ b/addons/cargo/initSettings.sqf @@ -0,0 +1,19 @@ +// CBA Settings [ADDON: ace_cargo]: + +[ + QGVAR(enable), "CHECKBOX", + [LSTRING(ModuleSettings_enable), LSTRING(ModuleSettings_enable_Description)], + [localize ELSTRING(OptionsMenu,CategoryLogistics), localize LSTRING(openMenu)], + true, // default value + true, // isGlobal + {[QGVAR(enable), _this] call EFUNC(common,cbaSettings_settingChanged)} +] call CBA_settings_fnc_init; + +[ + QGVAR(paradropTimeCoefficent), "SLIDER", + [LSTRING(paradropTimeCoefficent), LSTRING(paradropTimeCoefficent_description)], + [localize ELSTRING(OptionsMenu,CategoryLogistics), localize LSTRING(openMenu)], + [0,10,2.5,1], // [min, max, default value, trailing decimals (-1 for whole numbers only)] + true, // isGlobal + {[QGVAR(paradropTimeCoefficent), _this] call EFUNC(common,cbaSettings_settingChanged)} +] call CBA_settings_fnc_init; diff --git a/addons/optionsmenu/stringtable.xml b/addons/optionsmenu/stringtable.xml index b5c3d2737d..bd0c93016a 100644 --- a/addons/optionsmenu/stringtable.xml +++ b/addons/optionsmenu/stringtable.xml @@ -98,19 +98,19 @@ 顯示新聞消息於主選單 - Logistics - Logistik - Logistyka - Logística - Логистика - Logistika - Logística - Logistica - Logistique - ロジスティクス - 보급 - 后勤设定 - 後勤設定 + ACE Logistics + ACE Logistik + ACE Logistyka + ACE Logística + ACE Логистика + ACE Logistika + ACE Logística + ACE Logistica + ACE Logistique + ACE ロジスティクス + ACE 보급 + ACE 后勤设定 + ACE 後勤設定 Hide diff --git a/addons/rearm/ACE_Settings.hpp b/addons/rearm/ACE_Settings.hpp index 2bd4eec450..e592466c40 100644 --- a/addons/rearm/ACE_Settings.hpp +++ b/addons/rearm/ACE_Settings.hpp @@ -1,18 +1,8 @@ class ACE_Settings { class GVAR(level) { - category = CSTRING(DisplayName); - displayName = CSTRING(RearmSettings_level_DisplayName); - description = CSTRING(RearmSettings_level_Description); - value = 0; - typeName = "SCALAR"; - values[] = {CSTRING(RearmSettings_vehicle), CSTRING(RearmSettings_magazine), CSTRING(RearmSettings_caliber)}; + movedToSQF = 1; }; class GVAR(supply) { - category = CSTRING(DisplayName); - displayName = CSTRING(RearmSettings_supply_DisplayName); - description = CSTRING(RearmSettings_supply_Description); - value = 0; - typeName = "SCALAR"; - values[] = {CSTRING(RearmSettings_unlimited), CSTRING(RearmSettings_limited), CSTRING(RearmSettings_magazineSupply)}; + movedToSQF = 1; }; }; diff --git a/addons/rearm/XEH_preInit.sqf b/addons/rearm/XEH_preInit.sqf index b47cf6628d..9361d05015 100644 --- a/addons/rearm/XEH_preInit.sqf +++ b/addons/rearm/XEH_preInit.sqf @@ -6,4 +6,6 @@ PREP_RECOMPILE_START; #include "XEH_PREP.hpp" PREP_RECOMPILE_END; +#include "initSettings.sqf" + ADDON = true; diff --git a/addons/rearm/initSettings.sqf b/addons/rearm/initSettings.sqf new file mode 100644 index 0000000000..0e5e421747 --- /dev/null +++ b/addons/rearm/initSettings.sqf @@ -0,0 +1,19 @@ +// CBA Settings [ADDON: ace_rearm]: + +[ + QGVAR(level), "LIST", + [LSTRING(RearmSettings_level_DisplayName), LSTRING(RearmSettings_level_Description)], + [localize ELSTRING(OptionsMenu,CategoryLogistics), localize LSTRING(DisplayName)], + [[0,1,2],[LSTRING(RearmSettings_vehicle), LSTRING(RearmSettings_magazine), LSTRING(RearmSettings_caliber)],0], // [values, titles, defaultIndex] + true, // isGlobal + {[QGVAR(level), _this] call EFUNC(common,cbaSettings_settingChanged)} +] call CBA_settings_fnc_init; + +[ + QGVAR(supply), "LIST", + [LSTRING(RearmSettings_supply_DisplayName), LSTRING(RearmSettings_supply_Description)], + [localize ELSTRING(OptionsMenu,CategoryLogistics), localize LSTRING(DisplayName)], + [[0,1,2],[LSTRING(RearmSettings_unlimited), LSTRING(RearmSettings_limited), LSTRING(RearmSettings_magazineSupply)],0], // [values, titles, defaultIndex] + true, // isGlobal + {[QGVAR(supply), _this] call EFUNC(common,cbaSettings_settingChanged)} +] call CBA_settings_fnc_init; diff --git a/addons/refuel/ACE_Settings.hpp b/addons/refuel/ACE_Settings.hpp index 6904d33431..e545a7fed5 100644 --- a/addons/refuel/ACE_Settings.hpp +++ b/addons/refuel/ACE_Settings.hpp @@ -1,17 +1,8 @@ class ACE_Settings { class GVAR(rate) { - category = ECSTRING(OptionsMenu,CategoryLogistics); - displayName = CSTRING(RefuelSettings_speed_DisplayName); - description = CSTRING(RefuelSettings_speed_Description); - value = 1; - typeName = "SCALAR"; - sliderSettings[] = {0, 25, 1, 1}; + movedToSQF = 1; }; class GVAR(hoseLength) { - category = ECSTRING(OptionsMenu,CategoryLogistics); - displayName = CSTRING(RefuelSettings_hoseLength_DisplayName); - value = 12; - typeName = "SCALAR"; - sliderSettings[] = {0, 50, 12, 1}; + movedToSQF = 1; }; }; diff --git a/addons/refuel/XEH_preInit.sqf b/addons/refuel/XEH_preInit.sqf index b47cf6628d..9361d05015 100644 --- a/addons/refuel/XEH_preInit.sqf +++ b/addons/refuel/XEH_preInit.sqf @@ -6,4 +6,6 @@ PREP_RECOMPILE_START; #include "XEH_PREP.hpp" PREP_RECOMPILE_END; +#include "initSettings.sqf" + ADDON = true; diff --git a/addons/refuel/initSettings.sqf b/addons/refuel/initSettings.sqf new file mode 100644 index 0000000000..b16cff3230 --- /dev/null +++ b/addons/refuel/initSettings.sqf @@ -0,0 +1,19 @@ +// CBA Settings [ADDON: ace_refuel]: + +[ + QGVAR(rate), "SLIDER", + [LSTRING(RefuelSettings_speed_DisplayName), LSTRING(RefuelSettings_speed_Description)], + [localize ELSTRING(OptionsMenu,CategoryLogistics), localize "str_state_refuel"], + [0,25,1,1], // [min, max, default value, trailing decimals (-1 for whole numbers only)] + true, // isGlobal + {[QGVAR(rate), _this] call EFUNC(common,cbaSettings_settingChanged)} +] call CBA_settings_fnc_init; + +[ + QGVAR(hoseLength), "SLIDER", + [LSTRING(RefuelSettings_hoseLength_DisplayName)], + [localize ELSTRING(OptionsMenu,CategoryLogistics), localize "str_state_refuel"], + [0,50,12,1], // [min, max, default value, trailing decimals (-1 for whole numbers only)] + true, // isGlobal + {[QGVAR(hoseLength), _this] call EFUNC(common,cbaSettings_settingChanged)} +] call CBA_settings_fnc_init; diff --git a/addons/repair/ACE_Settings.hpp b/addons/repair/ACE_Settings.hpp index d5fc6a430e..82217bc5ad 100644 --- a/addons/repair/ACE_Settings.hpp +++ b/addons/repair/ACE_Settings.hpp @@ -1,89 +1,37 @@ +// Warning: do not remove without handling wheelRepairRequiredItems's _values config on line 32 [used in repair/canRepair] class ACE_Settings { class GVAR(displayTextOnRepair) { - displayName = CSTRING(SettingDisplayTextName); - description = CSTRING(SettingDisplayTextDesc); - typeName = "BOOL"; - isClientSettable = 1; - value = 1; - category = ECSTRING(OptionsMenu,CategoryLogistics); + movedToSQF = 1; }; class GVAR(engineerSetting_repair) { - displayName = CSTRING(engineerSetting_Repair_name); - description = CSTRING(engineerSetting_Repair_description); - typeName = "SCALAR"; - value = 1; - values[] = {CSTRING(engineerSetting_anyone), CSTRING(engineerSetting_EngineerOnly), CSTRING(engineerSetting_AdvancedOnly)}; - category = ECSTRING(OptionsMenu,CategoryLogistics); + movedToSQF = 1; }; class GVAR(engineerSetting_wheel) { - displayName = CSTRING(engineerSetting_Wheel_name); - description = CSTRING(engineerSetting_Wheel_description); - typeName = "SCALAR"; - value = 0; - values[] = {CSTRING(engineerSetting_anyone), CSTRING(engineerSetting_EngineerOnly), CSTRING(engineerSetting_AdvancedOnly)}; - category = ECSTRING(OptionsMenu,CategoryLogistics); + movedToSQF = 1; }; class GVAR(repairDamageThreshold) { - displayName = CSTRING(repairDamageThreshold_name); - description = CSTRING(repairDamageThreshold_description); - typeName = "SCALAR"; - value = 0.6; - category = ECSTRING(OptionsMenu,CategoryLogistics); - sliderSettings[] = {0, 1, 0.6, 2}; + movedToSQF = 1; }; class GVAR(repairDamageThreshold_engineer) { - displayName = CSTRING(repairDamageThreshold_Engineer_name); - description = CSTRING(repairDamageThreshold_Engineer_description); - typeName = "SCALAR"; - value = 0.4; - category = ECSTRING(OptionsMenu,CategoryLogistics); - sliderSettings[] = {0, 1, 0.4, 2}; + movedToSQF = 1; }; class GVAR(consumeItem_toolKit) { - displayName = CSTRING(consumeItem_ToolKit_name); - description = CSTRING(consumeItem_ToolKit_description); - typeName = "SCALAR"; - value = 0; - values[] = {ECSTRING(common,No), ECSTRING(common,Yes)}; - category = ECSTRING(OptionsMenu,CategoryLogistics); + movedToSQF = 1; }; class GVAR(fullRepairLocation) { - displayName = CSTRING(fullRepairLocation); - description = CSTRING(fullRepairLocation_description); - typeName = "SCALAR"; - value = 2; - values[] = {CSTRING(useAnywhere), CSTRING(repairVehicleOnly), CSTRING(repairFacilityOnly), CSTRING(vehicleAndFacility), ECSTRING(common,Disabled)}; - category = ECSTRING(OptionsMenu,CategoryLogistics); + movedToSQF = 1; }; class GVAR(engineerSetting_fullRepair) { - displayName = CSTRING(engineerSetting_fullRepair_name); - description = CSTRING(engineerSetting_fullRepair_description); - typeName = "SCALAR"; - value = 2; - values[] = {CSTRING(engineerSetting_anyone), CSTRING(engineerSetting_EngineerOnly), CSTRING(engineerSetting_AdvancedOnly)}; - category = ECSTRING(OptionsMenu,CategoryLogistics); + movedToSQF = 1; }; class GVAR(addSpareParts) { - displayName = CSTRING(addSpareParts_name); - description = CSTRING(addSpareParts_description); - typeName = "BOOL"; - value = 1; - category = ECSTRING(OptionsMenu,CategoryLogistics); + movedToSQF = 1; }; class GVAR(wheelRepairRequiredItems) { - displayName = CSTRING(wheelRepairRequiredItems_name); - description = CSTRING(wheelRepairRequiredItems_description); - category = ECSTRING(OptionsMenu,CategoryLogistics); - typeName = "SCALAR"; - value = 0; - values[] = {"None", "ToolKit"}; + movedToSQF = 1; _values[] = {{}, {"ToolKit"}}; }; class GVAR(autoShutOffEngineWhenStartingRepair) { - displayName = CSTRING(autoShutOffEngineWhenStartingRepair_name); - description = CSTRING(autoShutOffEngineWhenStartingRepair_description); - typeName = "BOOL"; - value = 0; - category = ECSTRING(OptionsMenu,CategoryLogistics); + movedToSQF = 1; }; }; diff --git a/addons/repair/XEH_preInit.sqf b/addons/repair/XEH_preInit.sqf index 040871d851..216a16fcf7 100644 --- a/addons/repair/XEH_preInit.sqf +++ b/addons/repair/XEH_preInit.sqf @@ -6,6 +6,8 @@ PREP_RECOMPILE_START; #include "XEH_PREP.hpp" PREP_RECOMPILE_END; +#include "initSettings.sqf" + ["ACE_RepairItem_Base", "killed", { params ["_object"]; diff --git a/addons/repair/initSettings.sqf b/addons/repair/initSettings.sqf new file mode 100644 index 0000000000..c392711218 --- /dev/null +++ b/addons/repair/initSettings.sqf @@ -0,0 +1,100 @@ +// CBA Settings [ADDON: ace_repair]: + +[ + QGVAR(displayTextOnRepair), "CHECKBOX", + [LSTRING(SettingDisplayTextName), LSTRING(SettingDisplayTextDesc)], + [localize ELSTRING(OptionsMenu,CategoryLogistics), localize "str_state_repair"], + true, // default value + false, // isGlobal + {[QGVAR(displayTextOnRepair), _this] call EFUNC(common,cbaSettings_settingChanged)} +] call CBA_settings_fnc_init; + +[ + QGVAR(engineerSetting_repair), "LIST", + [LSTRING(engineerSetting_Repair_name), LSTRING(engineerSetting_Repair_description)], + [localize ELSTRING(OptionsMenu,CategoryLogistics), localize "str_state_repair"], + [[0,1,2],[LSTRING(engineerSetting_anyone), LSTRING(engineerSetting_EngineerOnly), LSTRING(engineerSetting_AdvancedOnly)],1], // [values, titles, defaultIndex] + true, // isGlobal + {[QGVAR(engineerSetting_repair), _this] call EFUNC(common,cbaSettings_settingChanged)} +] call CBA_settings_fnc_init; + +[ + QGVAR(engineerSetting_wheel), "LIST", + [LSTRING(engineerSetting_Wheel_name), LSTRING(engineerSetting_Wheel_description)], + [localize ELSTRING(OptionsMenu,CategoryLogistics), localize "str_state_repair"], + [[0,1,2],[LSTRING(engineerSetting_anyone), LSTRING(engineerSetting_EngineerOnly), LSTRING(engineerSetting_AdvancedOnly)],0], // [values, titles, defaultIndex] + true, // isGlobal + {[QGVAR(engineerSetting_wheel), _this] call EFUNC(common,cbaSettings_settingChanged)} +] call CBA_settings_fnc_init; + +[ + QGVAR(repairDamageThreshold), "SLIDER", + [LSTRING(repairDamageThreshold_name), LSTRING(repairDamageThreshold_description)], + [localize ELSTRING(OptionsMenu,CategoryLogistics), localize "str_state_repair"], + [0,1,0.6,2], // [min, max, default value, trailing decimals (-1 for whole numbers only)] + true, // isGlobal + {[QGVAR(repairDamageThreshold), _this] call EFUNC(common,cbaSettings_settingChanged)} +] call CBA_settings_fnc_init; + +[ + QGVAR(repairDamageThreshold_engineer), "SLIDER", + [LSTRING(repairDamageThreshold_Engineer_name), LSTRING(repairDamageThreshold_Engineer_description)], + [localize ELSTRING(OptionsMenu,CategoryLogistics), localize "str_state_repair"], + [0,1,0.4,2], // [min, max, default value, trailing decimals (-1 for whole numbers only)] + true, // isGlobal + {[QGVAR(repairDamageThreshold_engineer), _this] call EFUNC(common,cbaSettings_settingChanged)} +] call CBA_settings_fnc_init; + +[ + QGVAR(consumeItem_toolKit), "LIST", // fnc_repair expects number + [LSTRING(consumeItem_ToolKit_name), LSTRING(consumeItem_ToolKit_description)], + [localize ELSTRING(OptionsMenu,CategoryLogistics), localize "str_state_repair"], + [[0,1],[ELSTRING(common,No), ELSTRING(common,Yes)],0], // [values, titles, defaultIndex] + true, // isGlobal + {[QGVAR(consumeItem_toolKit), _this] call EFUNC(common,cbaSettings_settingChanged)} +] call CBA_settings_fnc_init; + +[ + QGVAR(fullRepairLocation), "LIST", + [LSTRING(fullRepairLocation), LSTRING(fullRepairLocation_description)], + [localize ELSTRING(OptionsMenu,CategoryLogistics), localize "str_state_repair"], + [[0,1,2,3,4],[LSTRING(useAnywhere), LSTRING(repairVehicleOnly), LSTRING(repairFacilityOnly), LSTRING(vehicleAndFacility), ELSTRING(common,Disabled)],2], // [values, titles, defaultIndex] + true, // isGlobal + {[QGVAR(fullRepairLocation), _this] call EFUNC(common,cbaSettings_settingChanged)} +] call CBA_settings_fnc_init; + +[ + QGVAR(engineerSetting_fullRepair), "LIST", + [LSTRING(engineerSetting_fullRepair_name), LSTRING(engineerSetting_fullRepair_description)], + [localize ELSTRING(OptionsMenu,CategoryLogistics), localize "str_state_repair"], + [[0,1,2],[LSTRING(engineerSetting_anyone), LSTRING(engineerSetting_EngineerOnly), LSTRING(engineerSetting_AdvancedOnly)],2], // [values, titles, defaultIndex] + true, // isGlobal + {[QGVAR(engineerSetting_fullRepair), _this] call EFUNC(common,cbaSettings_settingChanged)} +] call CBA_settings_fnc_init; + +[ + QGVAR(addSpareParts), "CHECKBOX", + [LSTRING(addSpareParts_name), LSTRING(addSpareParts_description)], + [localize ELSTRING(OptionsMenu,CategoryLogistics), localize "str_state_repair"], + true, // default value + true, // isGlobal + {[QGVAR(addSpareParts), _this] call EFUNC(common,cbaSettings_settingChanged)} +] call CBA_settings_fnc_init; + +[ + QGVAR(wheelRepairRequiredItems), "LIST", + [LSTRING(wheelRepairRequiredItems_name), LSTRING(wheelRepairRequiredItems_description)], + [localize ELSTRING(OptionsMenu,CategoryLogistics), localize "str_state_repair"], + [[0,1],["None", "ToolKit"],0], // [values, titles, defaultIndex] + true, // isGlobal + {[QGVAR(wheelRepairRequiredItems), _this] call EFUNC(common,cbaSettings_settingChanged)} +] call CBA_settings_fnc_init; + +[ + QGVAR(autoShutOffEngineWhenStartingRepair), "CHECKBOX", + [LSTRING(autoShutOffEngineWhenStartingRepair_name), LSTRING(autoShutOffEngineWhenStartingRepair_description)], + [localize ELSTRING(OptionsMenu,CategoryLogistics), localize "str_state_repair"], + false, // default value + true, // isGlobal + {[QGVAR(autoShutOffEngineWhenStartingRepair), _this] call EFUNC(common,cbaSettings_settingChanged)} +] call CBA_settings_fnc_init; From 5495bd5a1f29bd23fccfcf00ef99cf61557c5a9e Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Thu, 5 Jul 2018 11:29:51 -0500 Subject: [PATCH 165/235] Pylons - Add ACE prefix to settings category (#6388) --- addons/pylons/stringtable.xml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/addons/pylons/stringtable.xml b/addons/pylons/stringtable.xml index 1704518125..250bf3acd8 100644 --- a/addons/pylons/stringtable.xml +++ b/addons/pylons/stringtable.xml @@ -29,13 +29,13 @@ Konfiguriere Außenlaststationen - Pylons - パイロン - Piloni - 派龍架 - 导弹挂架 - 파일런 - Außenlaststationen + ACE Pylons + ACE パイロン + ACE Piloni + ACE 派龍架 + ACE 导弹挂架 + ACE 파일런 + ACE Außenlaststationen <empty> From 80e648938ae790f467551a8e0db66c7f0dc67283 Mon Sep 17 00:00:00 2001 From: Tim Beswick Date: Thu, 5 Jul 2018 17:32:40 +0100 Subject: [PATCH 166/235] Speed limit scroll (#6384) Vehicles - Set speed limited with mouse scroll wheel --- addons/vehicles/XEH_postInit.sqf | 18 +++++++++++++++++- addons/vehicles/functions/fnc_speedLimiter.sqf | 10 +++++----- addons/vehicles/script_component.hpp | 3 +++ addons/vehicles/stringtable.xml | 9 +++++++++ 4 files changed, 34 insertions(+), 6 deletions(-) diff --git a/addons/vehicles/XEH_postInit.sqf b/addons/vehicles/XEH_postInit.sqf index 2e54b2ea84..3afea03187 100644 --- a/addons/vehicles/XEH_postInit.sqf +++ b/addons/vehicles/XEH_postInit.sqf @@ -18,7 +18,7 @@ GVAR(isSpeedLimiter) = false; if !([ACE_player, objNull, ["isNotInside"]] call EFUNC(common,canInteractWith)) exitWith {false}; // Conditions: specific if !(ACE_player == driver vehicle ACE_player && - {vehicle ACE_player isKindOf 'Car' || + {vehicle ACE_player isKindOf 'Car' || {vehicle ACE_player isKindOf 'Tank'}}) exitWith {false}; GVAR(isUAV) = false; @@ -30,3 +30,19 @@ GVAR(isSpeedLimiter) = false; }, {false}, [211, [false, false, false]], false] call CBA_fnc_addKeybind; //DELETE Key + +["ACE3 Vehicles", QGVAR(scrollUp), localize LSTRING(IncreaseSpeedLimit), { + if (GVAR(isSpeedLimiter)) then { + GVAR(speedLimit) = round (GVAR(speedLimit) + 1) max 5; + [["%1: %2", LSTRING(SpeedLimit), GVAR(speedLimit)]] call EFUNC(common,displayTextStructured); + true + }; +}, {false}, [MOUSE_SCROLL_UP, [false, true, false]], false] call CBA_fnc_addKeybind; // Ctrl + Mouse Wheel Scroll Up + +["ACE3 Vehicles", QGVAR(scrollDown), localize LSTRING(DecreaseSpeedLimit), { + if (GVAR(isSpeedLimiter)) then { + GVAR(speedLimit) = round (GVAR(speedLimit) - 1) max 5; + [["%1: %2", LSTRING(SpeedLimit), GVAR(speedLimit)]] call EFUNC(common,displayTextStructured); + true + }; +}, {false}, [MOUSE_SCROLL_DOWN, [false, true, false]], false] call CBA_fnc_addKeybind; // Ctrl + Mouse Wheel Scroll Down diff --git a/addons/vehicles/functions/fnc_speedLimiter.sqf b/addons/vehicles/functions/fnc_speedLimiter.sqf index d84bdfff9f..07af1dd4c3 100644 --- a/addons/vehicles/functions/fnc_speedLimiter.sqf +++ b/addons/vehicles/functions/fnc_speedLimiter.sqf @@ -28,11 +28,11 @@ if (GVAR(isSpeedLimiter)) exitWith { playSound "ACE_Sound_Click"; GVAR(isSpeedLimiter) = true; -private _maxSpeed = speed _vehicle max 5; +GVAR(speedLimit) = speed _vehicle max 5; [{ params ["_args", "_idPFH"]; - _args params ["_driver", "_vehicle", "_maxSpeed"]; + _args params ["_driver", "_vehicle"]; if (GVAR(isUAV)) then { private _uavControll = UAVControl _vehicle; @@ -51,8 +51,8 @@ private _maxSpeed = speed _vehicle max 5; private _speed = speed _vehicle; - if (_speed > _maxSpeed) then { - _vehicle setVelocity ((velocity _vehicle) vectorMultiply ((_maxSpeed / _speed) - 0.00001)); // fix 1.42-hotfix PhysX libraries applying force in previous direction when turning + if (_speed > GVAR(speedLimit)) then { + _vehicle setVelocity ((velocity _vehicle) vectorMultiply ((GVAR(speedLimit) / _speed) - 0.00001)); // fix 1.42-hotfix PhysX libraries applying force in previous direction when turning }; -} , 0, [_driver, _vehicle, _maxSpeed]] call CBA_fnc_addPerFrameHandler; +}, 0, [_driver, _vehicle]] call CBA_fnc_addPerFrameHandler; diff --git a/addons/vehicles/script_component.hpp b/addons/vehicles/script_component.hpp index 49de85f0ba..b985da6632 100644 --- a/addons/vehicles/script_component.hpp +++ b/addons/vehicles/script_component.hpp @@ -16,5 +16,8 @@ #include "\z\ace\addons\main\script_macros.hpp" +#define MOUSE_SCROLL_UP 0xF8 +#define MOUSE_SCROLL_DOWN 0xF9 + #define FUEL_FACTOR 0.165 // fuel capacity = range in km * FUEL_FACTOR #define STARTUP_DELAY 1.3 diff --git a/addons/vehicles/stringtable.xml b/addons/vehicles/stringtable.xml index 36ff7f99e6..d7f141c66a 100644 --- a/addons/vehicles/stringtable.xml +++ b/addons/vehicles/stringtable.xml @@ -33,6 +33,9 @@ 停用速度限制 停用速度限制 + + Speed Limit + Speed Limiter Begrenzer @@ -49,5 +52,11 @@ 速度限制器 速度限制器 + + Increase Speed Limit + + + Decrease Speed Limit + From 29726946f689d921762ac77a847dbbebc7bf4a8c Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Fri, 6 Jul 2018 00:13:23 -0500 Subject: [PATCH 167/235] Disposable - Fix nlaw picture popup error (#6419) Fix #6410 --- addons/disposable/CfgMagazines.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/disposable/CfgMagazines.hpp b/addons/disposable/CfgMagazines.hpp index dd1b799a0f..6204b330e4 100644 --- a/addons/disposable/CfgMagazines.hpp +++ b/addons/disposable/CfgMagazines.hpp @@ -5,7 +5,7 @@ class CfgMagazines { scope = 1; scopeArsenal = 1; displayName = CSTRING(PreloadedMissileDummy); - picture = "a3\ui_f\data\IGUI\Cfg\Targeting\Empty_ca.paa"; + picture = "\a3\ui_f\data\IGUI\Cfg\Targeting\Empty_ca.paa"; weaponPoolAvailable = 0; mass = 0; }; From 3673a6f56adf91c96f86fc03e69fc798ed9f3f23 Mon Sep 17 00:00:00 2001 From: alef Date: Wed, 11 Jul 2018 17:17:13 +0200 Subject: [PATCH 168/235] Italian Translation Update (#6425) * Fix wrong order shown in addon category list Just put 'ACE' at begin * Typo * Add/Fix: arsenal, nightvision and others. common, explosives, maverick, gforces, pylons, hearing, marksers, repair, flashlights, nametags, interaction, vehicles, medical_menu, medical_ai, interact_menu, medical --- addons/arsenal/stringtable.xml | 19 +++++++++++++++++-- addons/common/stringtable.xml | 4 ++++ addons/explosives/stringtable.xml | 1 + addons/flashlights/stringtable.xml | 1 + addons/gforces/stringtable.xml | 1 + addons/hearing/stringtable.xml | 6 ++++++ addons/interact_menu/stringtable.xml | 1 + addons/interaction/stringtable.xml | 1 + addons/markers/stringtable.xml | 3 +++ addons/medical/stringtable.xml | 8 +++++++- addons/medical_ai/stringtable.xml | 2 ++ addons/medical_menu/stringtable.xml | 2 ++ addons/nametags/stringtable.xml | 1 + addons/nightvision/stringtable.xml | 2 +- addons/pylons/stringtable.xml | 12 +++++++++--- addons/repair/stringtable.xml | 2 ++ addons/vehicles/stringtable.xml | 5 ++++- addons/zeus/stringtable.xml | 8 ++++++++ 18 files changed, 71 insertions(+), 8 deletions(-) diff --git a/addons/arsenal/stringtable.xml b/addons/arsenal/stringtable.xml index 680899a5aa..1eea2b74f6 100644 --- a/addons/arsenal/stringtable.xml +++ b/addons/arsenal/stringtable.xml @@ -370,7 +370,7 @@ Folgende Ausrüstung ist nicht mehr öffentlich: Następujący zestaw nie jest już publiczny: 次の装備は非公開になりました: - Il seguente eequipaggiamento non è più pubblico: + Il seguente equipaggiamento non è più pubblico: 다음 로드아웃이 더이상 공용이 아님: 以下的裝備已不再被分享: 以下的装备已不再被分享: @@ -546,7 +546,7 @@ ACE-Arsenal ACE Arsenał ACE 武器庫 - Arsenale ACE + ACE Arsenale ACE 아스날 ACE虛擬軍火庫 ACE虚拟军火库 @@ -613,6 +613,7 @@ 바닐라 로드아웃을 ace 아스날로 가져오기 匯入BI原廠虛擬軍火庫的裝備到ACE虛擬軍火庫中 汇入BI原厂虚拟军火库的装备到ACE虚拟军火库中 + Importa l'arsenale virtuale BI nell'arsenale ACE No player unit available! Place a unit and mark it as "Player". @@ -622,6 +623,7 @@ 플레이어 유닛을 사용할 수 없습니다! 유닛을 놓고 "플레이어"라고 표시하십시오. 沒有可用的玩家單位!請擺放一個單位並設定成"玩家" 没有可用的玩家单位!请摆放一个单位并设定成"玩家"。 + Non ci sono giocatori! Poisziona una unità e impostala come "Giocatore". No loadouts to import. @@ -631,6 +633,7 @@ 가져올 로드 아웃이 없습니다. 沒有裝備被匯入 没有装备被汇入。 + Non ci sono equipaggiamenti da importare. ACE Arsenal @@ -639,6 +642,7 @@ ACE 아스날 ACE虛擬軍火庫 ACE虚拟军火库 + Arsenale ACE Return to ACE Arsenal. @@ -647,6 +651,7 @@ ACE 아스날로 돌아가기 返回到ACE虛擬軍火庫 返回到ACE虚拟军火库。 + Torna all'arsenale ACE Use ACE Arsenal to try out different weapons and equipment. @@ -655,6 +660,7 @@ ACE Arsenal을 사용하여 다른 무기와 장비를 시험해보십시오. 使用ACE虛擬軍火庫來嘗試不同的武器與裝備 使用ACE虚拟军火库来尝试不同的武器与装备。 + Usa l'arsenale ACE per provare armi ed equipaggiamenti vari. Try weapons and equipment and create your own loadouts. @@ -663,6 +669,7 @@ 무기와 장비를 사용해보고 자신의 로드아웃을 만듭니다. 嘗試不同的武器與裝備來組合你個人的裝備配置 尝试不同的武器与装备来组合你个人的装备配置。 + Prova armi ed equipaggiamenti e creai i tuoi equipaggiamenti personalizzati. Open the loadouts screen @@ -670,6 +677,7 @@ 開啟裝備選單 开启装备选单 装備画面を開く + Apri la pagina degli equipaggiamenti Export current / default loadouts @@ -677,6 +685,7 @@ 匯出當前/預設的裝備 汇出当前/预设的装备 現在 / 標準装備を出力 + Esporta l'equipaggiamento attuale oppure la lista degli equipaggiamenti di base Import current / default loadouts @@ -684,6 +693,7 @@ 匯入當前/預設的裝備 汇入当前/预设的装备 現在 / 標準装備を取込 + Importa l'equipaggiamento attuale oppure la lista degli equipaggiamenti di base Potassium levels @@ -691,6 +701,7 @@ カリウム レベル 钾水平 鉀水平 + Ilvello di potassio Magnification @@ -714,6 +725,7 @@ ページ 页面 頁面 + Pagina Enable the faces / voices / insignias tabs @@ -721,6 +733,7 @@ 顔 / 声 / 記章タブを有効化 启用脸谱/声音/徽章/选项 啟用臉譜/聲音/徽章選項 + Abilita volti, voci e insegne Empty the selected container @@ -728,6 +741,7 @@ 選択されたコンテナは空です 选择的箱子是空的 清空選擇的箱子 + Svuota il contenitore selezionato Exported class name to clipboard @@ -735,6 +749,7 @@ クリップボードへクラスネームを出力 将种类复制到剪贴板 輸出 class name 到剪貼簿上 + Copiato il nome della classe negli appunti diff --git a/addons/common/stringtable.xml b/addons/common/stringtable.xml index 5623d30b37..ceabe0d60b 100644 --- a/addons/common/stringtable.xml +++ b/addons/common/stringtable.xml @@ -1170,6 +1170,7 @@ 允許調低音樂音量 允许调低音乐音量 音楽の音量低下を許可 + Permesso di abbassare la musica Allow ACE scripts to turn down the music. @@ -1178,16 +1179,19 @@ 允許ACE腳本去控制音樂的音量 允许ACE脚本去控制音乐的音量。 ACE スプリントへ音量低下を許可します。 + Permetti agli script di ACEdi abbassare la musica. Flag (ACE - Black) 旗帜(ACE-黑色): 旗幟(ACE-黑色) + Bandiera (ACE - Nera) Flag (ACE - White) 旗帜(ACE-白色): 旗幟(ACE-白色) + Bandiera (ACE - Bianca) diff --git a/addons/explosives/stringtable.xml b/addons/explosives/stringtable.xml index a3f20c0cf8..eed77e702a 100644 --- a/addons/explosives/stringtable.xml +++ b/addons/explosives/stringtable.xml @@ -1025,6 +1025,7 @@ 爆発範囲 爆炸范围 爆炸範圍 + Raggio di detonazione diff --git a/addons/flashlights/stringtable.xml b/addons/flashlights/stringtable.xml index 5ddfcc46d1..0a14c18735 100644 --- a/addons/flashlights/stringtable.xml +++ b/addons/flashlights/stringtable.xml @@ -97,6 +97,7 @@ 光の色 地图上手电的颜色 地圖上使用手電筒的顏色 + Colore della luce sulla mappa diff --git a/addons/gforces/stringtable.xml b/addons/gforces/stringtable.xml index 44139920d9..3a887c175a 100644 --- a/addons/gforces/stringtable.xml +++ b/addons/gforces/stringtable.xml @@ -37,6 +37,7 @@ 耐 G 性 减少G力 減少G力 + Riduzione forza G diff --git a/addons/hearing/stringtable.xml b/addons/hearing/stringtable.xml index 1ba8b8564f..1bf1ccad07 100644 --- a/addons/hearing/stringtable.xml +++ b/addons/hearing/stringtable.xml @@ -288,6 +288,7 @@ 聴覚保護 听力保护 聽力保護 + Protezione auditiva Volume muffling @@ -295,30 +296,35 @@ 音量低下 降低音量 進低音量 + Volume attenuazione Earplugs Volume 耳栓時の音量 耳塞时音量 耳塞時音量 + Volume tappi per le orecchie Volume when using earplugs. 耳栓使用時の音量を決定します。 决定带上耳塞时的音量 使用耳塞時音量 + Volume audio quandi si indossano i tappi per le orecchie. Unconscious Volume 気絶時の音量 无意识时音量 昏迷時音量 + Volume quando incoscente Volume when unconscious. 気絶時の音量を決定します。 决定处于无意识时的音量 昏迷時使用耳塞的音量 + Volume quando incoscente. diff --git a/addons/interact_menu/stringtable.xml b/addons/interact_menu/stringtable.xml index a876b8af38..c27932f214 100644 --- a/addons/interact_menu/stringtable.xml +++ b/addons/interact_menu/stringtable.xml @@ -451,6 +451,7 @@ セレクターの色 选择器颜色 選單的顏色 + Controllo Settore diff --git a/addons/interaction/stringtable.xml b/addons/interaction/stringtable.xml index bc7de0c344..53cd04e133 100644 --- a/addons/interaction/stringtable.xml +++ b/addons/interaction/stringtable.xml @@ -845,6 +845,7 @@ Перевернуть ひっくり返す + Gira Interact diff --git a/addons/markers/stringtable.xml b/addons/markers/stringtable.xml index 564a685b4f..eddb7014dd 100644 --- a/addons/markers/stringtable.xml +++ b/addons/markers/stringtable.xml @@ -33,6 +33,7 @@ 마커 이동 허가 誰可以移動標誌 谁可以移动标志 + Permetti di spostare i marcatori a: Restricts which players are able to move markers while holding the Alt key. @@ -41,6 +42,7 @@ Alt 키를 누른 상태에서 마커를 움직일 수있는 플레이어를 제한합니다. 設定誰可以透過按住Alt鍵來移動標誌 设定谁可以透过按住Alt键来移动标志。 + Limita quali giocatori possono spostare i marcatori mentre premono il tasto Alt. Nobody @@ -49,6 +51,7 @@ 비활성 沒有人 没有人 + Nessuno All players diff --git a/addons/medical/stringtable.xml b/addons/medical/stringtable.xml index 78c89a46df..03a7033bf4 100644 --- a/addons/medical/stringtable.xml +++ b/addons/medical/stringtable.xml @@ -408,7 +408,7 @@ Transfusion (plasma)... Переливание плазмы... Infúzió vérplazmával... - Effettu la trasfusione di plasma... + Effettuo la trasfusione di plasma... Transfundindo plasma... 血しょうを投与しています・・・ 혈장 수혈중... @@ -5628,36 +5628,42 @@ 処置中に気絶アニメーション 治疗时死亡动画 醫療時加入的昏迷動作 + Animazione da svenuto durante la cura Allow animation of unconscious patients during treatment. 患者の処置中に気絶アニメーションを許可します。 在无意识患者治疗时死亡,会播放死亡动画? 允許醫療時加入昏迷的動作 + Permette l'animazione da svenuto dei pazioenti durante loro la cura. Move unconscious units from group グループから気絶ユニットを移動 从小队中移除无意识伤者 從小隊中移動昏迷的單位 + Toglie le unità svenute dal grouppo When a group member goes unconscious, removes them from their group. グループのメンバーが気絶すると、グループから退出させます。 当一个队员失去意识时,他将被移除出小队 當隊員昏迷時,將被他的小組中刪除 + Quando un membro del gruppo sviene, viene tolto dal gruppo. Overdosing 過剰投与 过量 過量 + Overdose Makes patient vulnerable to Morphine/Epinephrine/Atropine overdosing. モルヒネ/アドレナリン/アトロピンの過剰投与により患者を脆弱にします。 当队员处于吗啡/肾上腺素/阿托品过量时再次受伤,他的伤害会更重 當隊員對嗎啡/腎上腺素/阿托品過量時,會使他的傷害更重 + Rende il paziente suscettibile di overdose da morfina, epinefrina o atropina. diff --git a/addons/medical_ai/stringtable.xml b/addons/medical_ai/stringtable.xml index 9e07a40d49..21027747a5 100644 --- a/addons/medical_ai/stringtable.xml +++ b/addons/medical_ai/stringtable.xml @@ -6,12 +6,14 @@ 次に AI 治療を有効 AI医疗启用 AI醫療啟用 + AI medica per: Enable AI units to heal themselves and each other. AI ユニットの自己や相互治療を有効化します。 使AI单位能够彼此治疗自己 啟用AI能夠彼此醫療自己 + Permette alle unità AI di curare se stesse e fra di loro. Only Server and HC diff --git a/addons/medical_menu/stringtable.xml b/addons/medical_menu/stringtable.xml index 6ec4802a02..8398a96a01 100644 --- a/addons/medical_menu/stringtable.xml +++ b/addons/medical_menu/stringtable.xml @@ -831,12 +831,14 @@ 治療メニューの最大範囲 医疗菜单最大范围 醫療選單最大範圍 + Dirstanza menù medico Maximum distance from where the Medical Menu can be opened. 你可以打开医疗菜单的最大范围 醫療選單可以開啟的最大距離 医疗选单可以开启的最大距离 + Massima distanza dalla quale si può aprire il menù medico. diff --git a/addons/nametags/stringtable.xml b/addons/nametags/stringtable.xml index 43512f855d..5cc0d8872d 100644 --- a/addons/nametags/stringtable.xml +++ b/addons/nametags/stringtable.xml @@ -544,6 +544,7 @@ プレイヤー名札の透明度 玩家名字标签透明度 玩家名稱透明度 + Trasparenza Etichette Nome diff --git a/addons/nightvision/stringtable.xml b/addons/nightvision/stringtable.xml index eb991a1216..b91eff3b09 100644 --- a/addons/nightvision/stringtable.xml +++ b/addons/nightvision/stringtable.xml @@ -4,7 +4,7 @@ ACE Nightvision ACE 暗視装置 - Visione notturna ACE + ACE Visione notturna ACE-Nachtsicht ACE夜視鏡 ACE夜视镜 diff --git a/addons/pylons/stringtable.xml b/addons/pylons/stringtable.xml index 250bf3acd8..f40af57651 100644 --- a/addons/pylons/stringtable.xml +++ b/addons/pylons/stringtable.xml @@ -4,7 +4,7 @@ AIRCRAFT LOADOUT 航空機の兵装 - LOADOUT AEREO + ARMAMENTO DELL'AEREO 飛機武裝配置 飞机武器配置 항공기 무장 @@ -13,7 +13,7 @@ Loadouts for %1 %1の兵装 - Loadouts per %1 + Armamenti per %1 %1用的武裝配置 %1用的武器配置 %1 무장 @@ -49,7 +49,7 @@ Pylons that are colored red will have to be manually rearmed. 赤色に設定されたパイロンは手動で再武装する必要があります。 - I Piloni di colore rosso devono essere riarmati manualmente. + I piloni di colore rosso devono essere riarmati manualmente. 以紅色標記出的派龍架必須以手動方式進行彈藥整補 以红色标记出的导弹挂架必须以手动方式进行弹药整补。 붉은색의 파일런은 수동으로 재무장해야 합니다. @@ -95,31 +95,37 @@ Enable Pylons Menu for Zeus 启用宙斯导弹挂架菜单 啟用派龍架選單給宙斯 + Abilita Menù Piloni da Zeus Enables use of the zeus module. 允许启用宙斯模组 允啟使用宙斯模塊 + Abilita l'uso dal modulo di Zeus Enable Pylons Menu from Ammo Trucks 启用弹药车导弹挂架菜单 啟用從彈藥卡車使用派龍架選單 + Abilita Menù Piloni da mezzi rifornimento munizioni Enables use of pylons menu from ammo trucks. 允许在弹药车上启用导弹挂架菜单 允許從彈藥卡車使用派龍架選單 + Abilita l'uso del Menù Piloni da mezzi rifornimento munizioni This aircraft doesn't have pylons 这架飞机没有导弹挂架 這架飛機沒有派龍架 + Questo aereo non ha piloni Configure pylons module is disabled for zeus 宙斯模组的导弹挂架已禁用 宙斯模塊的派龍架設定已被禁用 + Il modulo per configurare i piloni da Zeus è disabilitato Rearm New Pylons diff --git a/addons/repair/stringtable.xml b/addons/repair/stringtable.xml index b4805c31e4..aa94feddbd 100644 --- a/addons/repair/stringtable.xml +++ b/addons/repair/stringtable.xml @@ -1861,12 +1861,14 @@ 修理時にエンジン自動停止 维修时自动关闭发动机。 維修時自動關閉引擎 + Motore spento automaticamente durante la riparazione Automatically shut off the engine when doing repairs. 修理時にエンジンを自動で停止します。 修理时自动关闭发动机。 維修時自動關閉引擎 + Spegne automaticamente il motore quando si fanno riparazioni. diff --git a/addons/vehicles/stringtable.xml b/addons/vehicles/stringtable.xml index d7f141c66a..076c96c193 100644 --- a/addons/vehicles/stringtable.xml +++ b/addons/vehicles/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -35,6 +35,7 @@ Speed Limit + Limite di velocità Speed Limiter @@ -54,9 +55,11 @@ Increase Speed Limit + Aumenta limite di velocità Decrease Speed Limit + Diminuisce limite di velocità diff --git a/addons/zeus/stringtable.xml b/addons/zeus/stringtable.xml index 400d994aa2..76b0add7d2 100644 --- a/addons/zeus/stringtable.xml +++ b/addons/zeus/stringtable.xml @@ -276,14 +276,17 @@ Editing Mode 編輯模式 + Modalità per editare Add or remove editable objects from Zeus 新增或移除可編輯物件給宙斯 + Agguingi o rimuovi oggetti che Zeus può modificare Add Objects 新增物件 + Aggiungi Oggetti Remove Objects @@ -967,6 +970,7 @@ Select cargo to unload 選擇要卸載的貨物 + Scegli il carico da scaricare Task Radius @@ -1082,12 +1086,14 @@ 目標を切り替え 切换目标 切換目標 + Scambia obiettivo Units affected by the toggle ユニットは切り替えに影響を受けます 被选单位受切换影响 受切換所影響的單位 + Unità influenzate dallo scambio Selected Group @@ -1471,12 +1477,14 @@ ACE 武器庫を追加 添加ACE模式军火库 增加完整的ACE軍火庫 + Aggiungi l'arsenale ACE completo Remove ACE Arsenal ACE 武器庫を削除 删除ACE模式军火库 移除ACE軍火庫 + Rimuovi l'arsenale ACE From def05b9cf1cb820a75df140e898139260cecf2ae Mon Sep 17 00:00:00 2001 From: mharis001 <34453221+mharis001@users.noreply.github.com> Date: Fri, 13 Jul 2018 12:30:13 -0400 Subject: [PATCH 169/235] Wire cutter - Various improvements and cleanup (#6389) * Optimize and cleanup interactEH function * Add missing fences and improve formatting * Improve cutDownFence function * Remove unused sound files and cleanup * Multi-line condition and fix examples * Increase PFH delay and use distanceSqr --- .../logistics_wirecutter/CfgEventHandlers.hpp | 3 +- addons/logistics_wirecutter/CfgSounds.hpp | 12 -- addons/logistics_wirecutter/CfgVehicles.hpp | 87 +++++++++--- addons/logistics_wirecutter/CfgWeapons.hpp | 2 +- addons/logistics_wirecutter/README.md | 2 +- addons/logistics_wirecutter/XEH_PREP.hpp | 1 - addons/logistics_wirecutter/config.cpp | 2 +- .../data/ace_wirecutter.rvmat | 127 ++++++++---------- .../functions/fnc_cutDownFence.sqf | 73 +++++----- .../functions/fnc_interactEH.sqf | 85 ++++++------ .../functions/fnc_isFence.sqf | 20 +-- .../logistics_wirecutter/script_component.hpp | 21 ++- .../logistics_wirecutter/sound/wire_cut.ogg | Bin 53392 -> 0 bytes .../sound/wire_cut_long.ogg | Bin 110622 -> 0 bytes 14 files changed, 246 insertions(+), 189 deletions(-) delete mode 100644 addons/logistics_wirecutter/CfgSounds.hpp delete mode 100644 addons/logistics_wirecutter/sound/wire_cut.ogg delete mode 100644 addons/logistics_wirecutter/sound/wire_cut_long.ogg diff --git a/addons/logistics_wirecutter/CfgEventHandlers.hpp b/addons/logistics_wirecutter/CfgEventHandlers.hpp index 47564cbd2d..36c0fca8a3 100644 --- a/addons/logistics_wirecutter/CfgEventHandlers.hpp +++ b/addons/logistics_wirecutter/CfgEventHandlers.hpp @@ -1,4 +1,3 @@ - class Extended_PreStart_EventHandlers { class ADDON { init = QUOTE(call COMPILE_FILE(XEH_preStart)); @@ -13,6 +12,6 @@ class Extended_PreInit_EventHandlers { class Extended_PostInit_EventHandlers { class ADDON { - clientInit = QUOTE( call COMPILE_FILE(XEH_clientInit) ); + clientInit = QUOTE(call COMPILE_FILE(XEH_clientInit)); }; }; diff --git a/addons/logistics_wirecutter/CfgSounds.hpp b/addons/logistics_wirecutter/CfgSounds.hpp deleted file mode 100644 index 598e72255b..0000000000 --- a/addons/logistics_wirecutter/CfgSounds.hpp +++ /dev/null @@ -1,12 +0,0 @@ -class CfgSounds { - class ACE_Wirecutter_sound { - name = "ACE_wirecutter_sound"; - sound[] = {QPATHTOF(sound\wire_cut.ogg), "db-0", 1}; - titles[] = {}; - }; - class ACE_Wirecutter_sound_long { - name = "ACE_wirecutter_sound_long"; - sound[] = {QPATHTOF(sound\wire_cut_long.ogg), "db-0", 1}; - titles[] = {}; - }; -}; diff --git a/addons/logistics_wirecutter/CfgVehicles.hpp b/addons/logistics_wirecutter/CfgVehicles.hpp index d9c2943d45..7dd57f207f 100644 --- a/addons/logistics_wirecutter/CfgVehicles.hpp +++ b/addons/logistics_wirecutter/CfgVehicles.hpp @@ -8,19 +8,76 @@ class CfgVehicles { class Wall_F; class NonStrategic; - - class Land_Net_Fence_4m_F: Wall_F { GVAR(isFence) = 1; }; - class Land_Net_Fence_8m_F: Wall_F { GVAR(isFence) = 1; }; - class Land_New_WiredFence_5m_F: Wall_F { GVAR(isFence) = 1; }; - class Land_New_WiredFence_10m_F: Wall_F { GVAR(isFence) = 1; }; - class Land_SportGround_fence_F: Wall_F { GVAR(isFence) = 1; }; - class Land_Wired_Fence_4m_F: Wall_F { GVAR(isFence) = 1; }; - class Land_Wired_Fence_8m_F: Wall_F { GVAR(isFence) = 1; }; - class Land_SportGround_fence_noLC_F: Wall_F { GVAR(isFence) = 1; }; - class Land_Mil_WiredFence_F: Wall_F { GVAR(isFence) = 1; }; - class Land_IndFnc_Corner_F: Wall_F { GVAR(isFence) = 1; }; - class Land_IndFnc_9_F: Wall_F { GVAR(isFence) = 1; }; - class Land_IndFnc_3_Hole_F: Wall_F { GVAR(isFence) = 1; }; - class Land_IndFnc_3_F: Wall_F { GVAR(isFence) = 1; }; - class Land_Razorwire_F: NonStrategic { GVAR(isFence) = 1; }; + class Land_Net_Fence_4m_F: Wall_F { + GVAR(isFence) = 1; + }; + class Land_Net_Fence_8m_F: Wall_F { + GVAR(isFence) = 1; + }; + class Land_New_WiredFence_5m_F: Wall_F { + GVAR(isFence) = 1; + }; + class Land_New_WiredFence_10m_F: Wall_F { + GVAR(isFence) = 1; + }; + class Land_SportGround_fence_F: Wall_F { + GVAR(isFence) = 1; + }; + class Land_Wired_Fence_4m_F: Wall_F { + GVAR(isFence) = 1; + }; + class Land_Wired_Fence_8m_F: Wall_F { + GVAR(isFence) = 1; + }; + class Land_SportGround_fence_noLC_F: Wall_F { + GVAR(isFence) = 1; + }; + class Land_Mil_WiredFence_F: Wall_F { + GVAR(isFence) = 1; + }; + class Land_IndFnc_Corner_F: Wall_F { + GVAR(isFence) = 1; + }; + class Land_IndFnc_9_F: Wall_F { + GVAR(isFence) = 1; + }; + class Land_IndFnc_3_Hole_F: Wall_F { + GVAR(isFence) = 1; + }; + class Land_IndFnc_3_F: Wall_F { + GVAR(isFence) = 1; + }; + class Land_Razorwire_F: NonStrategic { + GVAR(isFence) = 1; + }; + class Land_PlasticNetFence_01_short_F: Wall_F { + GVAR(isFence) = 1; + }; + class Land_PlasticNetFence_01_long_F: Wall_F { + GVAR(isFence) = 1; + }; + class Land_NetFence_01_m_4m_F: Wall_F { + GVAR(isFence) = 1; + }; + class Land_NetFence_01_m_8m_F: Wall_F { + GVAR(isFence) = 1; + }; + class Land_WiredFence_01_4m_F: Wall_F { + GVAR(isFence) = 1; + }; + class Land_WiredFence_01_8m_F: Wall_F { + GVAR(isFence) = 1; + }; + class Land_WiredFence_01_16m_F: Wall_F { + GVAR(isFence) = 1; + }; + class Land_Slums01_8m: Wall_F { + GVAR(isFence) = 1; + }; + class Land_Slums02_4m: Wall_F { + GVAR(isFence) = 1; + }; + class Land_BackAlley_01_l_1m_F: Wall_F { + GVAR(isFence) = 1; + }; }; diff --git a/addons/logistics_wirecutter/CfgWeapons.hpp b/addons/logistics_wirecutter/CfgWeapons.hpp index 1eebf82877..cfaa6c3259 100644 --- a/addons/logistics_wirecutter/CfgWeapons.hpp +++ b/addons/logistics_wirecutter/CfgWeapons.hpp @@ -1,6 +1,6 @@ class CfgWeapons { - class CBA_MiscItem_ItemInfo; class ACE_ItemCore; + class CBA_MiscItem_ItemInfo; class ACE_wirecutter: ACE_ItemCore { author = ECSTRING(common,ACETeam); diff --git a/addons/logistics_wirecutter/README.md b/addons/logistics_wirecutter/README.md index 89d42c419f..b40242cd86 100644 --- a/addons/logistics_wirecutter/README.md +++ b/addons/logistics_wirecutter/README.md @@ -1,7 +1,7 @@ ace_logistics_wirecutter =========== -Adds an item that allows cutting of fences in Aarma 3 and AiA/CUP maps. +Adds an item that allows cutting of fences in Arma 3 and AiA/CUP maps. #### Items Added: `ACE_wirecutter` diff --git a/addons/logistics_wirecutter/XEH_PREP.hpp b/addons/logistics_wirecutter/XEH_PREP.hpp index d52c83547b..6ab95824ff 100644 --- a/addons/logistics_wirecutter/XEH_PREP.hpp +++ b/addons/logistics_wirecutter/XEH_PREP.hpp @@ -1,4 +1,3 @@ - PREP(cutDownFence); PREP(interactEH); PREP(isFence); diff --git a/addons/logistics_wirecutter/config.cpp b/addons/logistics_wirecutter/config.cpp index e1bdf84e47..c68f362be8 100644 --- a/addons/logistics_wirecutter/config.cpp +++ b/addons/logistics_wirecutter/config.cpp @@ -8,7 +8,7 @@ class CfgPatches { requiredVersion = REQUIRED_VERSION; requiredAddons[] = {"ace_interaction"}; author = ECSTRING(common,ACETeam); - authors[] = {"gpgpgpgp", "PabstMirror"}; + authors[] = {"gpgpgpgp", "PabstMirror", "mharis001"}; url = ECSTRING(main,URL); VERSION_CONFIG; }; diff --git a/addons/logistics_wirecutter/data/ace_wirecutter.rvmat b/addons/logistics_wirecutter/data/ace_wirecutter.rvmat index 1983a2c8f1..2afba8dcbc 100644 --- a/addons/logistics_wirecutter/data/ace_wirecutter.rvmat +++ b/addons/logistics_wirecutter/data/ace_wirecutter.rvmat @@ -1,6 +1,5 @@ -class StageTI -{ - texture = "a3\data_f\default_glass_ti_ca.paa"; +class StageTI { + texture = "a3\data_f\default_glass_ti_ca.paa"; }; ambient[] = {1,1,1,1}; diffuse[] = {1,1,1,1}; @@ -10,81 +9,71 @@ specular[] = {0,0,0,1}; specularPower = 0; PixelShaderID = "Super"; VertexShaderID = "Super"; -class Stage1 -{ - texture = "z\ace\addons\logistics_wirecutter\data\ace_wirecutter_nohq.paa"; - uvSource = "tex"; - class uvTransform - { - aside[] = {1,0,0}; - up[] = {0,1,0}; - dir[] = {0,0,0}; - pos[] = {0,0,0}; - }; +class Stage1 { + texture = "z\ace\addons\logistics_wirecutter\data\ace_wirecutter_nohq.paa"; + uvSource = "tex"; + class uvTransform { + aside[] = {1,0,0}; + up[] = {0,1,0}; + dir[] = {0,0,0}; + pos[] = {0,0,0}; + }; }; -class Stage2 -{ - texture = "#(argb,8,8,3)color(0.5,0.5,0.5,0.5,DT)"; - uvSource = "tex"; - class uvTransform - { - aside[] = {1,0,0}; - up[] = {0,1,0}; - dir[] = {0,0,0}; - pos[] = {0,0,0}; - }; +class Stage2 { + texture = "#(argb,8,8,3)color(0.5,0.5,0.5,0.5,DT)"; + uvSource = "tex"; + class uvTransform { + aside[] = {1,0,0}; + up[] = {0,1,0}; + dir[] = {0,0,0}; + pos[] = {0,0,0}; + }; }; class Stage3 { - texture = "#(argb,8,8,3)color(0,0,0,0,MC)"; - uvSource = "tex"; - class uvTransform - { - aside[] = {1,0,0}; - up[] = {0,1,0}; - dir[] = {0,0,0}; - pos[] = {0,0,0}; - }; + texture = "#(argb,8,8,3)color(0,0,0,0,MC)"; + uvSource = "tex"; + class uvTransform { + aside[] = {1,0,0}; + up[] = {0,1,0}; + dir[] = {0,0,0}; + pos[] = {0,0,0}; + }; }; class Stage4 { - texture = "#(argb,8,8,3)color(1,1,1,1,AS)"; - uvSource = "tex"; - class uvTransform - { - aside[] = {1,0,0}; - up[] = {0,1,0}; - dir[] = {0,0,0}; - pos[] = {0,0,0}; - }; + texture = "#(argb,8,8,3)color(1,1,1,1,AS)"; + uvSource = "tex"; + class uvTransform { + aside[] = {1,0,0}; + up[] = {0,1,0}; + dir[] = {0,0,0}; + pos[] = {0,0,0}; + }; }; class Stage5 { - texture = "#(argb,8,8,3)color(0,0.6,1,1,SMDI)"; - uvSource = "tex"; - class uvTransform - { - aside[] = {1,0,0}; - up[] = {0,1,0}; - dir[] = {0,0,0}; - pos[] = {0,0,0}; - }; + texture = "#(argb,8,8,3)color(0,0.6,1,1,SMDI)"; + uvSource = "tex"; + class uvTransform { + aside[] = {1,0,0}; + up[] = {0,1,0}; + dir[] = {0,0,0}; + pos[] = {0,0,0}; + }; }; -class Stage6 -{ - texture = "#(ai,32,128,1)fresnel(0.71,0.74)"; - uvSource = "none"; +class Stage6 { + texture = "#(ai,32,128,1)fresnel(0.71,0.74)"; + uvSource = "none"; +}; +class Stage7 { + texture = "a3\data_f\env_land_co.paa"; + useWorldEnvMap = "true"; + uvSource = "tex"; + class uvTransform { + aside[] = {1.0,0.0,0.0}; + up[] = {0.0,1.0,0.0}; + dir[] = {0.0,0.0,0.0}; + pos[] = {0.0,0.0,0.0}; + }; }; -class Stage7 -{ - texture = "a3\data_f\env_land_co.paa"; - useWorldEnvMap = "true"; - uvSource = "tex"; - class uvTransform - { - aside[] = {1.0,0.0,0.0}; - up[] = {0.0,1.0,0.0}; - dir[] = {0.0,0.0,0.0}; - pos[] = {0.0,0.0,0.0}; - }; -}; \ No newline at end of file diff --git a/addons/logistics_wirecutter/functions/fnc_cutDownFence.sqf b/addons/logistics_wirecutter/functions/fnc_cutDownFence.sqf index 911ddcf01d..9eb214d8c2 100644 --- a/addons/logistics_wirecutter/functions/fnc_cutDownFence.sqf +++ b/addons/logistics_wirecutter/functions/fnc_cutDownFence.sqf @@ -1,6 +1,6 @@ /* - * Author: gpgpgpgp, edited by commy2, PabstMirror - * Starts cutting down a fence + * Author: gpgpgpgp, commy2, PabstMirror, mharis001 + * Starts cutting down a fence. Triggers global "ace_wireCuttingStarted" event. * * Arguments: * 0: Unit @@ -10,52 +10,59 @@ * None * * Example: - * [player, berlinWall] call ace_logistics_wirecutter_fnc_cutDownFence + * [player, cursorObject] call ace_logistics_wirecutter_fnc_cutDownFence * * Public: No */ #include "script_component.hpp" -params ["_unit", "_fenceObject"]; -TRACE_2("params",_unit,_fenceObject); +params ["_unit", "_fence"]; +TRACE_2("Fence cutting started",_unit,_fence); if (_unit != ACE_player) exitWith {}; -private _timeToCut = if ([_unit] call EFUNC(common,isEngineer)) then {7.5} else {11}; +// Get cut time based on if unit is a engineer +private _cutTime = if (_unit call EFUNC(common,isEngineer)) then {CUT_TIME_ENGINEER} else {CUT_TIME_DEFAULT}; if !(_unit call EFUNC(common,isSwimming)) then { [_unit, "AinvPknlMstpSnonWnonDr_medic5", 0] call EFUNC(common,doAnimation); }; -private _onCompletion = { - TRACE_1("_onCompletion",_this); - (_this select 0) params ["_fenceObject", "", "_unit"]; - _fenceObject setdamage 1; - if !(_unit call EFUNC(common,isSwimming)) then { - [_unit, "AmovPknlMstpSrasWrflDnon", 1] call EFUNC(common,doAnimation); - }; -}; +[ + _cutTime, + [_unit, _fence, 0], + { + TRACE_1("Fence cutting successful",_this); + (_this select 0) params ["_unit", "_fence"]; -private _onFail = { - TRACE_1("_onFail", _this); - (_this select 0) params ["", "", "_unit"]; - if !(_unit call EFUNC(common,isSwimming)) then { - [_unit, "AmovPknlMstpSrasWrflDnon", 1] call EFUNC(common,doAnimation); - }; -}; + _fence setDamage 1; + if !(_unit call EFUNC(common,isSwimming)) then { + [_unit, "AmovPknlMstpSrasWrflDnon", 1] call EFUNC(common,doAnimation); + }; + }, + { + TRACE_1("Fence cutting failed",_this); + (_this select 0) params ["_unit"]; -private _progressCheck = { - params ["_args", "_passedTime"]; - _args params ["_fenceObject", "_lastSoundEffectTime", "_unit"]; + if !(_unit call EFUNC(common,isSwimming)) then { + [_unit, "AmovPknlMstpSrasWrflDnon", 1] call EFUNC(common,doAnimation); + }; + }, + localize LSTRING(CuttingFence), + { + params ["_args", "_elapsedTime"]; + _args params ["_unit", "_fence", "_lastSoundTime"]; - if (_passedTime > (_lastSoundEffectTime + SOUND_CLIP_TIME_SPACEING)) then { - playSound3D [QUOTE(PATHTO_R(sound\wirecut.ogg)), objNull, false, (getPosASL _unit), 3, 1, 10]; - _args set [1, _passedTime]; - }; + if (_elapsedTime > _lastSoundTime + SOUND_CLIP_TIME_SPACING) then { + playSound3D [QPATHTO_R(sound\wirecut.ogg), objNull, false, getPosASL _unit, 3, 1, 10]; + _args set [2, _elapsedTime]; + }; - ((!isNull _fenceObject) && {(damage _fenceObject) < 1} && {("ACE_wirecutter" in (items _unit))}) -}; + !isNull _fence + && {damage _fence < 1} + && {"ACE_wirecutter" in ([_player, false, true, true, true, false] call CBA_fnc_uniqueUnitItems)} + }, + ["isNotSwimming"] +] call EFUNC(common,progressBar); -[_timeToCut, [_fenceObject,0,_unit], _onCompletion, _onFail, localize LSTRING(CuttingFence), _progressCheck, ["isNotSwimming"]] call EFUNC(common,progressBar); - -["ace_wireCuttingStarted", [_unit, _fenceObject]] call CBA_fnc_globalEvent; +["ace_wireCuttingStarted", [_unit, _fence]] call CBA_fnc_globalEvent; diff --git a/addons/logistics_wirecutter/functions/fnc_interactEH.sqf b/addons/logistics_wirecutter/functions/fnc_interactEH.sqf index 74f59a8104..7a9bb01602 100644 --- a/addons/logistics_wirecutter/functions/fnc_interactEH.sqf +++ b/addons/logistics_wirecutter/functions/fnc_interactEH.sqf @@ -1,9 +1,10 @@ /* - * Author: PabstMirror - * When interact_menu starts rendering (from "interact_keyDown" event) + * Author: PabstMirror, mharis001 + * Dynamically adds "Cut Fence" actions to nearby fences when interact_menu is opened. + * Called by the "ace_interactMenuOpened" event. * * Arguments: - * Interact Menu Type (0 - world, 1 - self) + * Interact Menu Type (0 - World, 1 - Self) * * Return Value: * None @@ -11,65 +12,69 @@ * Example: * [0] call ace_logistics_wirecutter_fnc_interactEH * - * Public: Yes + * Public: No */ #include "script_component.hpp" params ["_interactionType"]; -//Ignore self-interaction menu or mounted vehicle interaction -if ((_interactionType != 0) || {(vehicle ACE_player) != ACE_player}) exitWith {}; +// Ignore self-interaction menu or mounted vehicle interaction +// For performance reasons only add PFH if player has wirecutter item +// If player somehow gets a wirecutter during keyDown, they will just have to reopen menu +if ( + _interactionType != 0 + || {vehicle ACE_player != ACE_player} + || {!("ACE_wirecutter" in ([ACE_player, false, true, true, true, false] call CBA_fnc_uniqueUnitItems))} +) exitWith {}; -//for performance only do stuff it they have a wirecutter item -//(if they somehow get one durring keydown they'll just have to reopen) -if (!("ACE_wirecutter" in (items ace_player))) exitWith {}; - -TRACE_1("Starting wire-cut action PFEH",_interactionType); +TRACE_1("Starting wirecuter interact PFH",_interactionType); [{ - params ["_args", "_pfID"]; + BEGIN_COUNTER(interactEH); + params ["_args", "_pfhID"]; _args params ["_setPosition", "_addedHelpers", "_fencesHelped"]; if (!EGVAR(interact_menu,keyDown)) then { - {deleteVehicle _x; nil} count _addedHelpers; - [_pfID] call CBA_fnc_removePerFrameHandler; + {deleteVehicle _x} forEach _addedHelpers; + [_pfhID] call CBA_fnc_removePerFrameHandler; } else { - // Prevent Rare Error when ending mission with interact key down: - if (isNull ace_player) exitWith {}; - - //If player moved >5 meters from last pos, then rescan - if (((getPosASL ace_player) distance _setPosition) > 5) then { + // Prevent rare error when ending mission with interact key down + if (isNull ACE_player) exitWith {}; + // Rescan if player has moved more than 5 meters from last position + if (getPosASL ACE_player distanceSqr _setPosition > 25) then { private _fncStatement = { params ["", "_player", "_attachedFence"]; + [_player, _attachedFence] call FUNC(cutDownFence); }; private _fncCondition = { params ["_helper", "_player", "_attachedFence"]; - if (!([_player, _attachedFence, ["isNotSwimming"]] call EFUNC(common,canInteractWith))) exitWith {false}; - ((!isNull _attachedFence) && {(damage _attachedFence) < 1} && {("ACE_wirecutter" in (items _player))} && { - //Custom LOS check for fence - private _headPos = ACE_player modelToWorldVisual (ACE_player selectionPosition "pilot"); - ((!(lineIntersects [AGLtoASL _headPos, AGLtoASL (_helper modelToWorldVisual [0,0,1.25]), _attachedFence, ACE_player])) || - {!(lineIntersects [AGLtoASL _headPos, getPosASL _attachedFence, _attachedFence, ACE_player])}) - }) + + !isNull _attachedFence + && {damage _attachedFence < 1} + && {"ACE_wirecutter" in ([_player, false, true, true, true, false] call CBA_fnc_uniqueUnitItems)} + && {[_player, _attachedFence, ["isNotSwimming"]] call EFUNC(common,canInteractWith)} + && { + // Custom LOS check for fence + private _headPos = AGLtoASL (_player modelToWorldVisual (_player selectionPosition "pilot")); + !lineIntersects [_headPos, AGLtoASL (_helper modelToWorldVisual [0, 0, 1.25]), _attachedFence, _player] + || {!lineIntersects [_headPos, getPosASL _attachedFence, _attachedFence, _player]} + } }; - { - if (!(_x in _fencesHelped)) then { - if ([_x] call FUNC(isFence)) then { - _fencesHelped pushBack _x; - private _helper = "ACE_LogicDummy" createVehicleLocal (getpos _x); - private _action = [QGVAR(helperCutFence), (localize LSTRING(CutFence)), QPATHTOF(ui\wirecutter_ca.paa), _fncStatement, _fncCondition, {}, _x, {[0,0,0]}, 5.5, [false, false, false, false, true]] call EFUNC(interact_menu,createAction); - [_helper, 0, [],_action] call EFUNC(interact_menu,addActionToObject); - _helper setPosASL ((getPosASL _x) vectorAdd [0,0,1.25]); - _addedHelpers pushBack _helper; - }; + if (!(_x in _fencesHelped) && {_x call FUNC(isFence)}) then { + _fencesHelped pushBack _x; + private _helper = "ACE_LogicDummy" createVehicleLocal [0, 0, 0]; + private _action = [QGVAR(helperCutFence), localize LSTRING(CutFence), QPATHTOF(ui\wirecutter_ca.paa), _fncStatement, _fncCondition, {}, _x, {[0, 0, 0]}, 5.5, [false, false, false, false, true]] call EFUNC(interact_menu,createAction); + [_helper, 0, [], _action] call EFUNC(interact_menu,addActionToObject); + _helper setPosASL (getPosASL _x vectorAdd [0, 0, 1.25]); + _addedHelpers pushBack _helper; }; - nil - } count nearestObjects [ace_player, [], 15]; + } forEach nearestObjects [ACE_player, [], 15]; - _args set [0, (getPosASL ace_player)]; + _args set [0, getPosASL ACE_player]; }; }; -}, 0.1, [((getPosASL ace_player) vectorAdd [-100,0,0]), [], []]] call CBA_fnc_addPerFrameHandler; + END_COUNTER(interactEH); +}, 0.5, [getPosASL ACE_player vectorAdd [-100, 0, 0], [], []]] call CBA_fnc_addPerFrameHandler; diff --git a/addons/logistics_wirecutter/functions/fnc_isFence.sqf b/addons/logistics_wirecutter/functions/fnc_isFence.sqf index d9122139b7..ab06fcd934 100644 --- a/addons/logistics_wirecutter/functions/fnc_isFence.sqf +++ b/addons/logistics_wirecutter/functions/fnc_isFence.sqf @@ -1,32 +1,32 @@ /* * Author: PabstMirror - * Checks if object is a fence. Should work on any fence type, even (typeOf == ""). - * Call is fairly expensive because of all of the string checking. + * Checks if object is a fence. Should work on any fence type, even when (typeOf == ""). + * Call is fairly expensive because of string checking. * * Arguments: - * 0: An Object To Test + * 0: Object to test * * Return Value: - * Is it a fence + * Is fence * * Example: - * [aFence] call ace_logistics_wirecutter_fnc_isFence + * [cursorObject] call ace_logistics_wirecutter_fnc_isFence * * Public: No */ #include "script_component.hpp" params ["_object"]; -TRACE_1("params",_object); +TRACE_1("Checking if fence",_object); private _typeOf = typeOf _object; private _returnValue = if (_typeOf != "") then { - //If the fence has configEntry we can check it directly - (1 == (getNumber (configFile >> "CfgVehicles" >> _typeOf >> QGVAR(isFence)))); + // Check for isFence entry since we have valid typeOf + 1 == getNumber (configFile >> "CfgVehicles" >> _typeOf >> QGVAR(isFence)); } else { - //Check the p3d name against list (in script_component.hpp) - ((getModelInfo _object) select 0) in FENCE_P3DS; + // Check the p3d name against list (in script_component.hpp) + (getModelInfo _object select 0) in FENCE_P3DS; }; _returnValue diff --git a/addons/logistics_wirecutter/script_component.hpp b/addons/logistics_wirecutter/script_component.hpp index 74494a6aa4..d5623128ab 100644 --- a/addons/logistics_wirecutter/script_component.hpp +++ b/addons/logistics_wirecutter/script_component.hpp @@ -16,8 +16,7 @@ #include "\z\ace\addons\main\script_macros.hpp" - -//find is case sensitive, so keep everything lowercase +// find is case sensitive, so keep everything lowercase #define FENCE_P3DS [\ "mil_wiredfence_f.p3d",\ "wall_indfnc_3.p3d",\ @@ -26,7 +25,21 @@ "pletivo_wired.p3d",\ "wall_fen1_5.p3d",\ "net_fence_8m_f.p3d",\ - "razorwire_f.p3d"\ + "razorwire_f.p3d",\ + "wired_fence_4m_f.p3d",\ + "wired_fence_8m_f.p3d",\ + "plasticnetfence_01_short_f.p3d",\ + "plasticnetfence_01_long_f.p3d",\ + "netfence_01_m_4m_f.p3d",\ + "netfence_01_m_8m_f.p3d",\ + "wiredfence_01_4m_f.p3d",\ + "wiredfence_01_8m_f.p3d",\ + "wiredfence_01_16m_f.p3d",\ + "slums01_8m.p3d",\ + "slums02_4m.p3d",\ + "backalley_01_l_1m_f.p3d"\ ] -#define SOUND_CLIP_TIME_SPACEING 1.5 +#define SOUND_CLIP_TIME_SPACING 1.5 +#define CUT_TIME_DEFAULT 11 +#define CUT_TIME_ENGINEER 7.5 diff --git a/addons/logistics_wirecutter/sound/wire_cut.ogg b/addons/logistics_wirecutter/sound/wire_cut.ogg deleted file mode 100644 index 246b15432c10199815bda1b19957c1d04d06485f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 53392 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 From a84daca95938bfce7c07dee824b8f202427e0f51 Mon Sep 17 00:00:00 2001 From: mharis001 <34453221+mharis001@users.noreply.github.com> Date: Fri, 13 Jul 2018 13:04:55 -0400 Subject: [PATCH 170/235] Explosives - Optimize interactEH function (#6406) * Optimize explosives interactEH * Use local player variable and distanceSqr --- .../explosives/functions/fnc_interactEH.sqf | 81 ++++++++++--------- 1 file changed, 41 insertions(+), 40 deletions(-) diff --git a/addons/explosives/functions/fnc_interactEH.sqf b/addons/explosives/functions/fnc_interactEH.sqf index b42acd5cec..f391e4fa62 100644 --- a/addons/explosives/functions/fnc_interactEH.sqf +++ b/addons/explosives/functions/fnc_interactEH.sqf @@ -1,10 +1,10 @@ /* - * Author: PabstMirror - * When interact_menu starts rendering (from "interact_keyDown" event) - * Add defuse helpers to all nearby mines + * Author: PabstMirror, mharis001 + * Dynamically adds "Defuse" actions to nearby mines when interact_menu is opened. + * Called by the "ace_interactMenuOpened" event. * * Arguments: - * Interact Menu Type (0 - world, 1 - self) + * Interact Menu Type (0 - World, 1 - Self) * * Return Value: * None @@ -12,61 +12,62 @@ * Example: * [0] call ace_explosives_fnc_interactEH * - * Public: Yes + * Public: No */ #include "script_component.hpp" params ["_interactionType"]; -TRACE_1("params",_interactionType); +TRACE_1("Explosives interactEH",_interactionType); -//Ignore self-interaction menu -if (_interactionType != 0) exitWith {}; -//Ignore while mounted: -if ((vehicle ACE_player) != ACE_player) exitWith {}; -//Ignore if we don't have defuse kit -if (!("ACE_DefusalKit" in (items ACE_player))) exitWith {}; +// Ignore self-interaction menu or mounted vehicle interaction +// For performance reasons only add PFH if player has a defusal kit +// If player somehow gets a defusal kit during keyDown, they will just have to reopen menu +if ( + _interactionType != 0 + || {vehicle ACE_player != ACE_player} + || {!("ACE_DefusalKit" in ([ACE_player, false, true, true, true, false] call CBA_fnc_uniqueUnitItems))} +) exitWith {}; [{ - params ["_args", "_pfID"]; - _args params ["_setPosition", "_addedDefuseHelpers", "_minesHelped"]; + BEGIN_COUNTER(interactEH); + params ["_args", "_pfhID"]; + _args params ["_setPosition", "_addedHelpers", "_minesHelped"]; if (!EGVAR(interact_menu,keyDown)) then { - TRACE_1("Cleaning Defuse Helpers",(count _addedDefuseHelpers)); - {deleteVehicle _x;} forEach _addedDefuseHelpers; - [_pfID] call CBA_fnc_removePerFrameHandler; + TRACE_1("Cleaning defuse helpers",count _addedHelpers); + {deleteVehicle _x} forEach _addedHelpers; + [_pfhID] call CBA_fnc_removePerFrameHandler; } else { // Prevent Rare Error when ending mission with interact key down: - if (isNull ace_player) exitWith {}; + private _player = ACE_player; + if (isNull _player) exitWith {}; + private _playerPos = getPosASL _player; - //If player moved >5 meters from last pos, then rescan - if (((getPosASL ace_player) distance _setPosition) > 5) then { + // Rescan if player has moved more than 5 meters from last position + if (_playerPos distanceSqr _setPosition > 25) then { + private _cfgAmmo = configFile >> "CfgAmmo"; { - if (((_x distance ACE_player) < 15) && {!(_x in _minesHelped)} && {(getModelInfo _x) select 0 != "empty.p3d"}) then { - - private _config = configFile >> "CfgAmmo" >> typeOf _x; + if (_x distanceSqr _player < 225 && {!(_x in _minesHelped)} && {!(getModelInfo _x select 0 isEqualTo "empty.p3d")}) then { + private _config = _cfgAmmo >> typeOf _x; private _size = getNumber (_config >> QGVAR(size)); - TRACE_3("Making Defuse Helper",(_x),(typeOf _x),(_size == 1)); - private _defuseHelper = objNull; - if (_size == 1) then { - _defuseHelper = "ACE_DefuseObject_Large" createVehicleLocal (getPos _x); - } else { - _defuseHelper = "ACE_DefuseObject" createVehicleLocal (getPos _x); + private _defuseClass = ["ACE_DefuseObject", "ACE_DefuseObject_Large"] select (_size == 1); + private _defusePos = getArray (_config >> QGVAR(defuseObjectPosition)); + if (_defusePos isEqualTo []) then { + _defusePos = [0, 0, 0]; }; - private _defuseObjectPosition = getArray (_config >> QGVAR(defuseObjectPosition)); - if (_defuseObjectPosition isEqualTo []) then { - _defuseObjectPosition = [0,0,0]; - }; + TRACE_4("Creating defuse helper",_x,typeOf _x,_defuseClass,_defusePos); + private _helper = _defuseClass createVehicleLocal [0, 0, 0]; - TRACE_1("DefuseObjectPosition",(_defuseObjectPosition)); - - _defuseHelper attachTo [_x, _defuseObjectPosition]; - _defuseHelper setVariable [QGVAR(Explosive),_x]; - _addedDefuseHelpers pushBack _defuseHelper; + _helper attachTo [_x, _defusePos]; + _helper setVariable [QGVAR(Explosive), _x]; + _addedHelpers pushBack _helper; _minesHelped pushBack _x; }; } forEach allMines; - _args set [0, (getPosASL ace_player)]; + + _args set [0, _playerPos]; }; }; -}, 0.5, [((getPosASL ace_player) vectorAdd [-100,0,0]), [], []]] call CBA_fnc_addPerFrameHandler; + END_COUNTER(interactEH); +}, 0.5, [getPosASL ACE_player vectorAdd [-100, 0, 0], [], []]] call CBA_fnc_addPerFrameHandler; From 5fe82662e560de92347908645c87d35c9770e7a1 Mon Sep 17 00:00:00 2001 From: shukari Date: Fri, 13 Jul 2018 19:19:58 +0200 Subject: [PATCH 171/235] ace_infoDisplayChanged will now trigger also for mods (#6422) * add RscUnitInfo to DisplayLoad eh * delete all ace_infoDisplayChanged that also have initDisplay with RscUnitInfo --- addons/common/CfgEventHandlers.hpp | 3 +++ addons/common/RscInfoType.hpp | 18 +++++++----------- 2 files changed, 10 insertions(+), 11 deletions(-) diff --git a/addons/common/CfgEventHandlers.hpp b/addons/common/CfgEventHandlers.hpp index 895b3fd13a..fa4f3dcacd 100644 --- a/addons/common/CfgEventHandlers.hpp +++ b/addons/common/CfgEventHandlers.hpp @@ -23,6 +23,9 @@ class Extended_DisplayLoad_EventHandlers { class RscDisplayMission { ADDON = QUOTE(_this call COMPILE_FILE(XEH_missionDisplayLoad)); }; + class RscUnitInfo { + ADDON = QUOTE([ARR_2('ace_infoDisplayChanged', [ARR_2(_this select 0, 'Any')])] call CBA_fnc_localEvent;); + }; }; class Extended_InitPost_EventHandlers { diff --git a/addons/common/RscInfoType.hpp b/addons/common/RscInfoType.hpp index 97d4b325e9..eb3bacc9cc 100644 --- a/addons/common/RscInfoType.hpp +++ b/addons/common/RscInfoType.hpp @@ -1,27 +1,23 @@ class RscInGameUI { - class RscUnitInfo { - onLoad = QUOTE([ARR_4(""onLoad"",_this,""RscUnitInfo"",'IGUI')] call (uinamespace getvariable 'BIS_fnc_initDisplay'); [ARR_2('ace_infoDisplayChanged', [ARR_2(_this select 0, 'Any')])] call CBA_fnc_localEvent;); - }; - class RscUnitInfoNoHUD { onLoad = QUOTE([ARR_2('ace_infoDisplayChanged', [ARR_2(_this select 0, 'Any')])] call CBA_fnc_localEvent;); }; class RscUnitInfoSoldier: RscUnitInfo { - onLoad = QUOTE([ARR_4(""onLoad"",_this,""RscUnitInfo"",'IGUI')] call (uinamespace getvariable 'BIS_fnc_initDisplay'); uiNamespace setVariable [ARR_2('ACE_dlgSoldier', _this select 0)]; [ARR_2('ace_infoDisplayChanged', [ARR_2(_this select 0, 'Soldier')])] call CBA_fnc_localEvent;); + onLoad = QUOTE([ARR_4(""onLoad"",_this,""RscUnitInfo"",'IGUI')] call (uinamespace getvariable 'BIS_fnc_initDisplay'); uiNamespace setVariable [ARR_2('ACE_dlgSoldier', _this select 0)];); }; class RscUnitInfoTank: RscUnitInfo { - onLoad = QUOTE([ARR_4(""onLoad"",_this,""RscUnitInfo"",'IGUI')] call (uinamespace getvariable 'BIS_fnc_initDisplay'); uiNamespace setVariable [ARR_2('ACE_dlgVehicle', _this select 0)]; [ARR_2('ace_infoDisplayChanged', [ARR_2(_this select 0, 'Vehicle')])] call CBA_fnc_localEvent;); + onLoad = QUOTE([ARR_4(""onLoad"",_this,""RscUnitInfo"",'IGUI')] call (uinamespace getvariable 'BIS_fnc_initDisplay'); uiNamespace setVariable [ARR_2('ACE_dlgVehicle', _this select 0)];); }; class RscUnitInfoAirNoWeapon: RscUnitInfo { - onLoad = QUOTE([ARR_4(""onLoad"",_this,""RscUnitInfo"",'IGUI')] call (uinamespace getvariable 'BIS_fnc_initDisplay'); uiNamespace setVariable [ARR_2('ACE_dlgAircraft', _this select 0)]; [ARR_2('ace_infoDisplayChanged', [ARR_2(_this select 0, 'Aircraft')])] call CBA_fnc_localEvent;); + onLoad = QUOTE([ARR_4(""onLoad"",_this,""RscUnitInfo"",'IGUI')] call (uinamespace getvariable 'BIS_fnc_initDisplay'); uiNamespace setVariable [ARR_2('ACE_dlgAircraft', _this select 0)];); }; class RscUnitInfoAir: RscUnitInfoAirNoWeapon { - onLoad = QUOTE([ARR_4(""onLoad"",_this,""RscUnitInfo"",'IGUI')] call (uinamespace getvariable 'BIS_fnc_initDisplay'); uiNamespace setVariable [ARR_2('ACE_dlgAircraft', _this select 0)]; [ARR_2('ace_infoDisplayChanged', [ARR_2(_this select 0, 'Aircraft')])] call CBA_fnc_localEvent;); + onLoad = QUOTE([ARR_4(""onLoad"",_this,""RscUnitInfo"",'IGUI')] call (uinamespace getvariable 'BIS_fnc_initDisplay'); uiNamespace setVariable [ARR_2('ACE_dlgAircraft', _this select 0)];); }; class RscUnitInfo_AH64D_gunner { @@ -33,11 +29,11 @@ class RscInGameUI { }; class RscUnitInfoSubmarine: RscUnitInfo { - onLoad = QUOTE([ARR_4(""onLoad"",_this,""RscUnitInfo"",'IGUI')] call (uinamespace getvariable 'BIS_fnc_initDisplay'); uiNamespace setVariable [ARR_2('ACE_dlgSubmarine', _this select 0)]; [ARR_2('ace_infoDisplayChanged', [ARR_2(_this select 0, 'Submarine')])] call CBA_fnc_localEvent;); + onLoad = QUOTE([ARR_4(""onLoad"",_this,""RscUnitInfo"",'IGUI')] call (uinamespace getvariable 'BIS_fnc_initDisplay'); uiNamespace setVariable [ARR_2('ACE_dlgSubmarine', _this select 0)];); }; class RscUnitInfoShip: RscUnitInfo { - onLoad = QUOTE([ARR_4(""onLoad"",_this,""RscUnitInfo"",'IGUI')] call (uinamespace getvariable 'BIS_fnc_initDisplay'); uiNamespace setVariable [ARR_2('ACE_dlgShip', _this select 0)]; [ARR_2('ace_infoDisplayChanged', [ARR_2(_this select 0, 'Ship')])] call CBA_fnc_localEvent;); + onLoad = QUOTE([ARR_4(""onLoad"",_this,""RscUnitInfo"",'IGUI')] call (uinamespace getvariable 'BIS_fnc_initDisplay'); uiNamespace setVariable [ARR_2('ACE_dlgShip', _this select 0)];); }; class RscWeaponEmpty { @@ -97,7 +93,7 @@ class RscInGameUI { }; class RscUnitInfoParachute: RscUnitInfo { - onLoad = QUOTE([ARR_4(""onLoad"",_this,""RscUnitInfo"",'IGUI')] call (uinamespace getvariable 'BIS_fnc_initDisplay'); uiNamespace setVariable [ARR_2('ACE_dlgParachute', _this select 0)]; [ARR_2('ace_infoDisplayChanged', [ARR_2(_this select 0, 'Parachute')])] call CBA_fnc_localEvent;); + onLoad = QUOTE([ARR_4(""onLoad"",_this,""RscUnitInfo"",'IGUI')] call (uinamespace getvariable 'BIS_fnc_initDisplay'); uiNamespace setVariable [ARR_2('ACE_dlgParachute', _this select 0)];); }; class RscUnitVehicle { From fa7b2ed73d49c13ef8505819f21c33dd91265f9c Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Fri, 13 Jul 2018 12:35:56 -0500 Subject: [PATCH 172/235] Fix unit info base class (#6430) --- addons/common/RscInfoType.hpp | 1 + 1 file changed, 1 insertion(+) diff --git a/addons/common/RscInfoType.hpp b/addons/common/RscInfoType.hpp index eb3bacc9cc..9da45d0ec2 100644 --- a/addons/common/RscInfoType.hpp +++ b/addons/common/RscInfoType.hpp @@ -1,5 +1,6 @@ class RscInGameUI { + class RscUnitInfo; class RscUnitInfoNoHUD { onLoad = QUOTE([ARR_2('ace_infoDisplayChanged', [ARR_2(_this select 0, 'Any')])] call CBA_fnc_localEvent;); }; From f4a0747493d8d5c46026a6c8f2b0bb321990c3f7 Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Fri, 13 Jul 2018 12:36:21 -0500 Subject: [PATCH 173/235] Explosives - Increase defuse range for underwater mines (#6429) Fix #6427 --- addons/explosives/CfgAmmo.hpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/addons/explosives/CfgAmmo.hpp b/addons/explosives/CfgAmmo.hpp index 65b1ca3fad..c79030d2ab 100644 --- a/addons/explosives/CfgAmmo.hpp +++ b/addons/explosives/CfgAmmo.hpp @@ -15,10 +15,6 @@ class CfgAmmo { class APERSMine_Range_Ammo: MineBase; class ATMine_Range_Ammo: MineBase; - class UnderwaterMine_Range_Ammo: MineBase; - class UnderwaterMineAB_Range_Ammo: UnderwaterMine_Range_Ammo; - class UnderwaterMinePDM_Range_Ammo: UnderwaterMine_Range_Ammo; - class DirectionalBombCore: TimeBombCore; class DirectionalBombBase: DirectionalBombCore; @@ -183,4 +179,8 @@ class CfgAmmo { GVAR(size) = 0; GVAR(defuseObjectPosition)[] = {0, 0, 0.15}; }; + class MineBase; + class UnderwaterMine_Range_Ammo: MineBase { + GVAR(size) = 1; + }; }; From bf2cbaab7986439df8fd8a48b0be83133ff79a0c Mon Sep 17 00:00:00 2001 From: shukari Date: Thu, 19 Jul 2018 23:59:46 +0200 Subject: [PATCH 174/235] added new fences to wirecutter (#6423) * added apex and tacops fences informations from #6420 * added new p3d fences infos by #6420 * tabs fix * tabs fix2 * fix tabs3 * Remove comments from macro * Fix merge * Update script_component.hpp --- .../logistics_wirecutter/script_component.hpp | 41 ++++++++++++------- 1 file changed, 27 insertions(+), 14 deletions(-) diff --git a/addons/logistics_wirecutter/script_component.hpp b/addons/logistics_wirecutter/script_component.hpp index d5623128ab..19d1b159b7 100644 --- a/addons/logistics_wirecutter/script_component.hpp +++ b/addons/logistics_wirecutter/script_component.hpp @@ -17,27 +17,40 @@ #include "\z\ace\addons\main\script_macros.hpp" // find is case sensitive, so keep everything lowercase +// also set as isFence, but if the model is reused like for xcam #define FENCE_P3DS [\ + "net_fence_4m_f.p3d",\ + "net_fence_8m_f.p3d",\ + "netfence_01_m_4m_f.p3d",\ + "netfence_01_m_8m_f.p3d",\ + "wired_fence_4m_f.p3d",\ + "wired_fence_8m_f.p3d",\ + "new_wiredfence_5m_f.p3d",\ + "new_wiredfence_10m_f.p3d",\ + "wiredfence_01_4m_f.p3d",\ + "wiredfence_01_8m_f.p3d",\ + "wiredfence_01_16m_f.p3d",\ "mil_wiredfence_f.p3d",\ + "sportground_fence_f.p3d",\ + "sportground_fence_nolc_f.p3d",\ + "indfnc_3_f.p3d",\ + "indfnc_3_hole_f.p3d",\ + "indfnc_9_f.p3d",\ + "indfnc_corner_f.p3d",\ + "slums01_8m.p3d",\ + "razorwire_f.p3d",\ + "slums02_4m.p3d",\ + "backalley_01_l_1m_f.p3d",\ + "plasticnetfence_01_short_f.p3d",\ + "plasticnetfence_01_long_f.p3d",\ "wall_indfnc_3.p3d",\ "wall_indfnc_9.p3d",\ "wall_indfnc_corner.p3d",\ "pletivo_wired.p3d",\ "wall_fen1_5.p3d",\ - "net_fence_8m_f.p3d",\ - "razorwire_f.p3d",\ - "wired_fence_4m_f.p3d",\ - "wired_fence_8m_f.p3d",\ - "plasticnetfence_01_short_f.p3d",\ - "plasticnetfence_01_long_f.p3d",\ - "netfence_01_m_4m_f.p3d",\ - "netfence_01_m_8m_f.p3d",\ - "wiredfence_01_4m_f.p3d",\ - "wiredfence_01_8m_f.p3d",\ - "wiredfence_01_16m_f.p3d",\ - "slums01_8m.p3d",\ - "slums02_4m.p3d",\ - "backalley_01_l_1m_f.p3d"\ + "plot_provizorni.p3d",\ + "plp_ctm_partitioningfencegrey.p3d",\ + "fence.p3d"\ ] #define SOUND_CLIP_TIME_SPACING 1.5 From c33fc6106d34e1959d54511420d0cf5c210198fd Mon Sep 17 00:00:00 2001 From: Dmitry-Yuri <39197412+Dmitry-Yuri@users.noreply.github.com> Date: Fri, 20 Jul 2018 00:40:04 +0100 Subject: [PATCH 175/235] Fix Rearming Pylon Magazines (#6378) * Update fnc_keyPress.sqf * Update fnc_keyPress.sqf * Update fnc_rearmSuccessLocal.sqf * Update fnc_rearmSuccessLocal.sqf --- .../rearm/functions/fnc_rearmSuccessLocal.sqf | 26 ++++++++++++++----- 1 file changed, 20 insertions(+), 6 deletions(-) diff --git a/addons/rearm/functions/fnc_rearmSuccessLocal.sqf b/addons/rearm/functions/fnc_rearmSuccessLocal.sqf index 5ba5492ad4..0a2255272b 100644 --- a/addons/rearm/functions/fnc_rearmSuccessLocal.sqf +++ b/addons/rearm/functions/fnc_rearmSuccessLocal.sqf @@ -27,12 +27,26 @@ TRACE_7("rearmSuccessLocal",_vehicle,_unit,_turretPath,_numMagazines,_magazineCl private _rounds = getNumber (configFile >> "CfgMagazines" >> _magazineClass >> "count"); if (_pylon > 0) exitWith { - if (_turretPath isEqualTo [-1]) then {_turretPath = [];}; // Convert back to pylon turret format - private _currentCount = _vehicle ammoOnPylon _pylon; - private _newCount = ((_currentCount max 0) + _numRounds) min _rounds; - TRACE_2("",_pylon,_magazineClass,_newCount); - _vehicle setPylonLoadOut [_pylon, _magazineClass, false, _turretPath]; - _vehicle setAmmoOnPylon [_pylon, _newCount]; + if (GVAR(level) == 1) then { + // Fill magazine completely + if (_turretPath isEqualTo [-1]) then {_turretPath = [];}; // Convert back to pylon turret format + TRACE_2("",_pylon,_magazineClass,_rounds); + _vehicle setPylonLoadOut [_pylon, _magazineClass, true, _turretPath]; + [QEGVAR(common,displayTextStructured), [[LSTRING(Hint_RearmedTriple), _rounds, + getText(configFile >> "CfgMagazines" >> _magazineClass >> "displayName"), + getText(configFile >> "CfgVehicles" >> (typeOf _vehicle) >> "displayName")], 3, _unit], [_unit]] call CBA_fnc_targetEvent; + } else { + // Fill only at most _numRounds + if (_turretPath isEqualTo [-1]) then {_turretPath = [];}; // Convert back to pylon turret format + private _currentCount = _vehicle ammoOnPylon _pylon; + private _newCount = ((_currentCount max 0) + _numRounds) min _rounds; + TRACE_2("",_pylon,_magazineClass,_newCount); + _vehicle setPylonLoadOut [_pylon, _magazineClass, true, _turretPath]; + _vehicle setAmmoOnPylon [_pylon, _newCount]; + [QEGVAR(common,displayTextStructured), [[LSTRING(Hint_RearmedTriple), _numRounds, + getText(configFile >> "CfgMagazines" >> _magazineClass >> "displayName"), + getText(configFile >> "CfgVehicles" >> (typeOf _vehicle) >> "displayName")], 3, _unit], [_unit]] call CBA_fnc_targetEvent; + }; }; private _currentRounds = 0; From 8a81e3b675cf3a2a4a75c5513214b9b1a04e2b50 Mon Sep 17 00:00:00 2001 From: shukari Date: Fri, 20 Jul 2018 05:54:06 +0200 Subject: [PATCH 176/235] Geforce, RHS Geforce adjustments and MH6M can now fastrope (#6439) --- addons/gforces/CfgWeapons.hpp | 6 ++++++ optionals/compat_rhs_usf3/CfgVehicles.hpp | 17 +++++++++++++++++ 2 files changed, 23 insertions(+) diff --git a/addons/gforces/CfgWeapons.hpp b/addons/gforces/CfgWeapons.hpp index 7b69dc24b9..2349ba7b2a 100644 --- a/addons/gforces/CfgWeapons.hpp +++ b/addons/gforces/CfgWeapons.hpp @@ -7,9 +7,15 @@ class CfgWeapons { class U_B_PilotCoveralls: Uniform_Base { ACE_GForceCoef = 0.8; }; + class U_B_HeliPilotCoveralls: Uniform_Base { + ACE_GForceCoef = 0.8; + }; class U_I_pilotCoveralls: Uniform_Base { ACE_GForceCoef = 0.8; }; + class U_I_HeliPilotCoveralls: Uniform_Base { + ACE_GForceCoef = 0.8; + }; class U_O_PilotCoveralls: Uniform_Base { ACE_GForceCoef = 0.8; }; diff --git a/optionals/compat_rhs_usf3/CfgVehicles.hpp b/optionals/compat_rhs_usf3/CfgVehicles.hpp index 18e400f016..2684bd65f5 100644 --- a/optionals/compat_rhs_usf3/CfgVehicles.hpp +++ b/optionals/compat_rhs_usf3/CfgVehicles.hpp @@ -94,6 +94,8 @@ class CfgVehicles { class RHS_MELB_MH6M: RHS_MELB_base { EGVAR(fastroping,enabled) = 1; EGVAR(fastroping,ropeOrigins)[] = {{1.166, 0.79, -0.01}, {-1.166, 0.79, -0.01}}; + EGVAR(fastroping,onCut) = QFUNC(onCut); + EGVAR(fastroping,onPrepare) = QFUNC(onPrepare); }; class RHS_UH60_Base: Heli_Transport_01_base_F { EGVAR(refuel,fuelCapacity) = 1360; @@ -284,4 +286,19 @@ class CfgVehicles { EGVAR(cargo,space) = 4; EGVAR(cargo,hasCargo) = 1; }; + + class rhsusf_infantry_usmc_base; + class rhsusf_usmc_marpat_wd_helipilot: rhsusf_infantry_usmc_base { + ace_gforcecoef = 0.55; + }; + + class rhsusf_infantry_army_base; + class rhsusf_army_ocp_helipilot: rhsusf_infantry_army_base { + ace_gforcecoef = 0.55; + }; + + class rhsusf_usmc_marpat_wd_rifleman_m4; + class rhsusf_airforce_jetpilot: rhsusf_usmc_marpat_wd_rifleman_m4 { + ace_gforcecoef = 0.55; + }; }; From 0b19a8d5279a67b08049c7dbe490b88fb91833c4 Mon Sep 17 00:00:00 2001 From: mharis001 <34453221+mharis001@users.noreply.github.com> Date: Fri, 20 Jul 2018 13:35:44 -0400 Subject: [PATCH 177/235] Arsenal - 3DEN Attribute (#6257) * Initial commit * Add/remove items and switching between categories * Add ability to change mode * Save attribute and clear button * Search bar and double click to toggle * Add export button * Add attribute init function * Fix multiple selection with different items * Correct bad code and remove unneeded include * Update stringtable.xml From common pbo whitelist (modified) and a3 stringtables * Disable attribute on humans * Move includes to top ref #6407 --- addons/arsenal/Cfg3DEN.hpp | 188 ++++++++++++++++++ addons/arsenal/XEH_PREP.hpp | 7 + addons/arsenal/config.cpp | 25 +-- addons/arsenal/defines.hpp | 18 ++ .../functions/fnc_attributeAddItems.sqf | 122 ++++++++++++ .../arsenal/functions/fnc_attributeClear.sqf | 46 +++++ .../functions/fnc_attributeDblClick.sqf | 26 +++ .../arsenal/functions/fnc_attributeInit.sqf | 33 +++ .../arsenal/functions/fnc_attributeLoad.sqf | 32 +++ .../arsenal/functions/fnc_attributeMode.sqf | 29 +++ .../arsenal/functions/fnc_attributeSelect.sqf | 49 +++++ addons/arsenal/stringtable.xml | 54 +++++ 12 files changed, 606 insertions(+), 23 deletions(-) create mode 100644 addons/arsenal/Cfg3DEN.hpp create mode 100644 addons/arsenal/functions/fnc_attributeAddItems.sqf create mode 100644 addons/arsenal/functions/fnc_attributeClear.sqf create mode 100644 addons/arsenal/functions/fnc_attributeDblClick.sqf create mode 100644 addons/arsenal/functions/fnc_attributeInit.sqf create mode 100644 addons/arsenal/functions/fnc_attributeLoad.sqf create mode 100644 addons/arsenal/functions/fnc_attributeMode.sqf create mode 100644 addons/arsenal/functions/fnc_attributeSelect.sqf diff --git a/addons/arsenal/Cfg3DEN.hpp b/addons/arsenal/Cfg3DEN.hpp new file mode 100644 index 0000000000..9b058f48c0 --- /dev/null +++ b/addons/arsenal/Cfg3DEN.hpp @@ -0,0 +1,188 @@ +class Cfg3DEN { + class Mission { + class GVAR(DummyCategory) { + displayName = "Dummy attribute, should never show up"; + class AttributeCategories { + class ACE3_Arsenal { + class Attributes { + class GVAR(DefaultLoadoutsListAttribute) { + property = QGVAR(DefaultLoadoutsListAttribute); + value = 0; + expression = "if !(is3DEN) then {ace_arsenal_defaultLoadoutsList = _value};"; + defaultValue = "[]"; + validate = "none"; + wikiType = "[[Array]]"; + }; + }; + }; + }; + }; + }; + class Attributes { + class GVAR(attribute): ctrlControlsGroupNoScrollbars { + idc = -1; + // onLoad fixes attributeLoad not happening on multiple selection with different attribute + onLoad = QUOTE(private _objects = get3DENSelected 'object'; if (count _objects > 1) then {[ARR_2(_this select 0,((_objects select 0) get3DENAttribute QQGVAR(attribute)) select 0)] call FUNC(attributeLoad)}); + x = QUOTE(0); + y = QUOTE(0); + w = QUOTE(130 * ATTRIBUTE_W); + h = QUOTE(106.83 * ATTRIBUTE_H); + attributeLoad = QUOTE([ARR_2(_this,+_value)] call FUNC(attributeLoad)); + attributeSave = QUOTE(uiNamespace getVariable [ARR_2(QQGVAR(attributeValue),[ARR_2([], 0)])]); + class controls { + class ModeTitle: ctrlStatic { + idc = -1; + text = CSTRING(Mode); + x = QUOTE(5 * ATTRIBUTE_W); + y = QUOTE(0); + w = QUOTE(125 * ATTRIBUTE_W); + h = QUOTE(5 * ATTRIBUTE_H); + }; + class Mode: ctrlToolbox { + idc = IDC_ATTRIBUTE_MODE; + onToolBoxSelChanged = QUOTE([ARR_2(ctrlParentControlsGroup (_this select 0), _this select 1)] call FUNC(attributeMode)); + x = QUOTE(5 * ATTRIBUTE_W); + y = QUOTE(5 * ATTRIBUTE_H); + w = QUOTE(125 * ATTRIBUTE_W); + h = QUOTE(5 * ATTRIBUTE_H); + rows = 1; + columns = 2; + strings[] = {CSTRING(Whitelist), CSTRING(Blacklist)}; + }; + class ItemsTitle: ModeTitle { + text = CSTRING(Items); + y = QUOTE(10 * ATTRIBUTE_H); + }; + class Category: ctrlToolboxPictureKeepAspect { + idc = IDC_ATTRIBUTE_CATEGORY; + onToolBoxSelChanged = QUOTE([ctrlParentControlsGroup (_this select 0)] call FUNC(attributeAddItems)); + x = QUOTE(5 * ATTRIBUTE_W); + y = QUOTE(15 * ATTRIBUTE_H); + w = QUOTE(125 * ATTRIBUTE_W); + h = QUOTE(20.83 * ATTRIBUTE_H); + rows = 2; + columns = 12; + strings[] = { + "\a3\Ui_F_Curator\Data\RscCommon\RscAttributeInventory\filter_0_ca.paa", + "\A3\Ui_f\data\GUI\Rsc\RscDisplayArsenal\PrimaryWeapon_ca.paa", + "\A3\Ui_f\data\GUI\Rsc\RscDisplayArsenal\SecondaryWeapon_ca.paa", + "\A3\Ui_f\data\GUI\Rsc\RscDisplayArsenal\Handgun_ca.paa", + "\A3\Ui_f\data\GUI\Rsc\RscDisplayArsenal\ItemOptic_ca.paa", + "\A3\Ui_f\data\GUI\Rsc\RscDisplayArsenal\ItemAcc_ca.paa", + "\A3\Ui_f\data\GUI\Rsc\RscDisplayArsenal\ItemMuzzle_ca.paa", + "\A3\Ui_f\data\GUI\Rsc\RscDisplayArsenal\ItemBipod_ca.paa", + "\A3\Ui_f\data\GUI\Rsc\RscDisplayArsenal\CargoMagAll_ca.paa", + "\A3\Ui_f\data\GUI\Rsc\RscDisplayArsenal\Headgear_ca.paa", + "\A3\Ui_f\data\GUI\Rsc\RscDisplayArsenal\Uniform_ca.paa", + "\A3\Ui_f\data\GUI\Rsc\RscDisplayArsenal\Vest_ca.paa", + "\A3\Ui_f\data\GUI\Rsc\RscDisplayArsenal\Backpack_ca.paa", + "\A3\Ui_f\data\GUI\Rsc\RscDisplayArsenal\Goggles_ca.paa", + "\A3\Ui_f\data\GUI\Rsc\RscDisplayArsenal\NVGs_ca.paa", + "\A3\Ui_f\data\GUI\Rsc\RscDisplayArsenal\Binoculars_ca.paa", + "\A3\Ui_f\data\GUI\Rsc\RscDisplayArsenal\Map_ca.paa", + "\A3\Ui_f\data\GUI\Rsc\RscDisplayArsenal\Compass_ca.paa", + "\A3\Ui_f\data\GUI\Rsc\RscDisplayArsenal\Radio_ca.paa", + "\A3\Ui_f\data\GUI\Rsc\RscDisplayArsenal\Watch_ca.paa", + "\A3\Ui_f\data\GUI\Rsc\RscDisplayArsenal\GPS_ca.paa", + "\A3\Ui_f\data\GUI\Rsc\RscDisplayArsenal\CargoThrow_ca.paa", + "\A3\Ui_f\data\GUI\Rsc\RscDisplayArsenal\CargoPut_ca.paa", + "\A3\Ui_f\data\GUI\Rsc\RscDisplayArsenal\CargoMisc_ca.paa" + }; + }; + class ListBackground: ctrlStatic { + idc = -1; + x = QUOTE(5 * ATTRIBUTE_W); + y = QUOTE(35.83 * ATTRIBUTE_H); + w = QUOTE(125 * ATTRIBUTE_W); + h = QUOTE(65 * ATTRIBUTE_H); + colorBackground[] = {1, 1, 1, 0.1}; + }; + class List: ctrlListNBox { + idc = IDC_ATTRIBUTE_LIST; + idcLeft = IDC_ATTRIBUTE_LIST_LEFT; + idcRight = IDC_ATTRIBUTE_LIST_RIGHT; + onLBDblClick = QUOTE(_this call FUNC(attributeDblClick)); + x = QUOTE(5 * ATTRIBUTE_W); + y = QUOTE(35.83 * ATTRIBUTE_H); + w = QUOTE(125 * ATTRIBUTE_W); + h = QUOTE(65 * ATTRIBUTE_H); + drawSideArrows = 1; + disableOverflow = 1; + columns[] = {0.05, 0.15, 0.85}; + }; + class ArrowLeft: ctrlButton { + idc = IDC_ATTRIBUTE_LIST_LEFT; + onButtonClick = QUOTE([ARR_2(ctrlParentControlsGroup (_this select 0),false)] call FUNC(attributeSelect)); + text = SYMBOL_ITEM_NONE; + font = "RobotoCondensedBold"; + x = QUOTE(-1); + y = QUOTE(-1); + w = QUOTE(5 * ATTRIBUTE_W); + H = QUOTE(5 * ATTRIBUTE_H); + }; + class ArrowRight: ArrowLeft { + idc = IDC_ATTRIBUTE_LIST_RIGHT; + onButtonClick = QUOTE([ARR_2(ctrlParentControlsGroup (_this select 0),true)] call FUNC(attributeSelect)); + text = SYMBOL_ITEM_VIRTUAL; + }; + class SearchButton: ctrlButtonPicture { + idc = IDC_ATTRIBUTE_SEARCH_BUTTON; + onButtonClick = QUOTE(((ctrlParentControlsGroup (_this select 0)) controlsGroupCtrl IDC_ATTRIBUTE_SEARCHBAR) ctrlSetText ''; [ctrlParentControlsGroup (_this select 0)] call FUNC(attributeAddItems)); + text = "\a3\Ui_f\data\GUI\RscCommon\RscButtonSearch\search_start_ca.paa"; + x = QUOTE(5 * ATTRIBUTE_W); + y = QUOTE(101.83 * ATTRIBUTE_H); + w = QUOTE(5 * ATTRIBUTE_W); + h = QUOTE(5 * ATTRIBUTE_H); + colorBackground[] = {0, 0, 0, 0.5}; + }; + class SearchBar: ctrlEdit { + idc = IDC_ATTRIBUTE_SEARCHBAR; + onKeyUp = QUOTE([ctrlParentControlsGroup (_this select 0)] call FUNC(attributeAddItems)); + x = QUOTE(11 * ATTRIBUTE_W); + y = QUOTE(101.83 * ATTRIBUTE_H); + w = QUOTE(55 * ATTRIBUTE_W); + h = QUOTE(5 * ATTRIBUTE_H); + }; + class ClearButton: ctrlButton { + idc = IDC_ATTRIBUTE_CLEAR_BUTTON; + onButtonClick = QUOTE([ctrlParentControlsGroup (_this select 0)] call FUNC(attributeClear)); + text = "$STR_disp_arcmap_clear"; + x = QUOTE(105 * ATTRIBUTE_W); + y = QUOTE(101.83 * ATTRIBUTE_H); + w = QUOTE(25 * ATTRIBUTE_W); + h = QUOTE(5 * ATTRIBUTE_H); + colorBackground[] = {0, 0, 0, 0.6}; + }; + class ExportButton: ClearButton { + idc = IDC_ATTRIBUTE_EXPORT_BUTTON; + onButtonClick = QUOTE(copyToClipboard str ((uiNamespace getVariable [ARR_2(QQGVAR(attributeValue),[ARR_2([],0)])]) select 0)); + text = CSTRING(buttonExportText); + tooltip = CSTRING(AttributeExport_Tooltip); + x = QUOTE(79 * ATTRIBUTE_W); + }; + }; + }; + }; + class Object { + class AttributeCategories { + class ADDON { + displayName = CSTRING(Mission); + collapsed = 1; + class Attributes { + class ADDON { + property = QGVAR(attribute); + control = QGVAR(attribute); + displayName = CSTRING(Mission); + tooltip = ""; + expression = QUOTE(if (!is3DEN) then {[ARR_2(_this,+_value)] call FUNC(attributeInit)}); + defaultValue = "[[], 0]"; + condition = "1 - objectControllable"; + wikiType = "[[Array]]"; + validate = "none"; + value = 0; + }; + }; + }; + }; + }; +}; diff --git a/addons/arsenal/XEH_PREP.hpp b/addons/arsenal/XEH_PREP.hpp index 6b3ace5c1d..98753b070c 100644 --- a/addons/arsenal/XEH_PREP.hpp +++ b/addons/arsenal/XEH_PREP.hpp @@ -1,6 +1,13 @@ PREP(addListBoxItem); PREP(addStat); PREP(addVirtualItems); +PREP(attributeAddItems); +PREP(attributeClear); +PREP(attributeDblClick); +PREP(attributeInit); +PREP(attributeLoad); +PREP(attributeMode); +PREP(attributeSelect); PREP(buttonCargo); PREP(buttonClearAll); PREP(buttonExport); diff --git a/addons/arsenal/config.cpp b/addons/arsenal/config.cpp index 9ba31a31f6..32bc41d254 100644 --- a/addons/arsenal/config.cpp +++ b/addons/arsenal/config.cpp @@ -8,35 +8,14 @@ class CfgPatches { requiredVersion = REQUIRED_VERSION; requiredAddons[] = {"ace_common"}; author = ECSTRING(common,ACETeam); - authors[] = {"alganthe"}; + authors[] = {"alganthe", "mharis001"}; url = ECSTRING(main,URL); VERSION_CONFIG; }; }; -class Cfg3DEN { - class Mission { - class GVAR(DummyCategory) { - displayName="Dummy attribute, should never show up"; - class AttributeCategories { - class ACE3_Arsenal { - class Attributes { - class GVAR(DefaultLoadoutsListAttribute) { - property = QGVAR(DefaultLoadoutsListAttribute); - value=0; - expression="if !(is3DEN) then {ace_arsenal_defaultLoadoutsList = _value};"; - defaultValue="[]"; - validate="none"; - wikiType="[[Array]]"; - }; - }; - }; - }; - }; - }; -}; - #include "ui\RscAttributes.hpp" +#include "Cfg3DEN.hpp" #include "CfgEventHandlers.hpp" #include "RscDisplayMain.hpp" #include "ACE_Arsenal_Stats.hpp" diff --git a/addons/arsenal/defines.hpp b/addons/arsenal/defines.hpp index 31d9a27802..6bc200b32f 100644 --- a/addons/arsenal/defines.hpp +++ b/addons/arsenal/defines.hpp @@ -149,6 +149,24 @@ #define IDC_buttonSharedLoadoutsBackground 405 #define IDC_buttonSharedLoadouts 406 +// 3DEN Attribute +#define ATTRIBUTE_W (pixelW * pixelGrid * 0.5) +#define ATTRIBUTE_H (pixelH * pixelGrid * 0.5) + +#define IDC_ATTRIBUTE_MODE 8100 +#define IDC_ATTRIBUTE_CATEGORY 8101 +#define IDC_ATTRIBUTE_LIST 8102 +#define IDC_ATTRIBUTE_LIST_LEFT 8103 +#define IDC_ATTRIBUTE_LIST_RIGHT 8104 +#define IDC_ATTRIBUTE_SEARCH_BUTTON 8105 +#define IDC_ATTRIBUTE_SEARCHBAR 8106 +#define IDC_ATTRIBUTE_CLEAR_BUTTON 8107 +#define IDC_ATTRIBUTE_EXPORT_BUTTON 8108 + +#define SYMBOL_ITEM_NONE "−" +#define SYMBOL_ITEM_REMOVE "×" +#define SYMBOL_ITEM_VIRTUAL "∞" + #define FADE_DELAY 0.15 #define CAM_DIS_MAX 5 diff --git a/addons/arsenal/functions/fnc_attributeAddItems.sqf b/addons/arsenal/functions/fnc_attributeAddItems.sqf new file mode 100644 index 0000000000..edc62ea6ed --- /dev/null +++ b/addons/arsenal/functions/fnc_attributeAddItems.sqf @@ -0,0 +1,122 @@ +#include "script_component.hpp" +#include "..\defines.hpp" +/* + * Author: mharis001 + * Populates 3DEN attribute listbox with items of given category. + * + * Arguments: + * 0: Attribute controls group + * + * Return Value: + * None + * + * Example: + * [CONTROL, 0] call ace_arsenal_fnc_attributeAddItems + * + * Public: No + */ + +params ["_controlsGroup"]; + +private _category = lbCurSel (_controlsGroup controlsGroupCtrl IDC_ATTRIBUTE_CATEGORY) - 1; +private _filter = toLower ctrlText (_controlsGroup controlsGroupCtrl IDC_ATTRIBUTE_SEARCHBAR); +private _configItems = +(uiNamespace getVariable [QGVAR(configItems), []]); +private _attributeValue = uiNamespace getVariable [QGVAR(attributeValue), [[], 0]]; +TRACE_3("Populating list",_category,_filter,_attributeValue); + +_attributeValue params ["_attributeItems", "_attributeMode"]; +private _modeSymbol = [SYMBOL_ITEM_VIRTUAL, SYMBOL_ITEM_REMOVE] select _attributeMode; + +// Clear listbox +private _listbox = _controlsGroup controlsGroupCtrl IDC_ATTRIBUTE_LIST; +lnbClear _listbox; + +// Exit with current items (no specific category) +if (_category == -1) exitWith { + { + // Get appropriate config for each item (different since items can be from any category) + private _config = switch (true) do { + case (_x in (_configItems select 2)); + case (_x in (_configItems select 15)); + case (_x in (_configItems select 16)): { + configFile >> "CfgMagazines" >> _x; + }; + case (_x in (_configItems select 6)): { + configFile >> "CfgVehicles" >> _x; + }; + case (_x in (_configItems select 7)): { + configFile >> "CfgGlasses" >> _x; + }; + default { + configFile >> "CfgWeapons" >> _x; + }; + }; + + // Add item if not filtered + private _displayName = getText (_config >> "displayName"); + if (toLower _displayName find _filter > -1) then { + private _picture = getText (_config >> "picture"); + private _index = _listbox lnbAddRow ["", _displayName, _modeSymbol]; + _listbox lnbSetData [[_index, 1], _x]; + _listbox lnbSetPicture [[_index, 0], _picture]; + _listbox lbSetTooltip [_index * (count lnbGetColumnsPosition _listbox), _x]; + }; + } forEach _attributeItems; + + _listbox lnbSort [1]; +}; + +// Get list of category items +private _categoryItems = switch (true) do { + case (_category < 3): { + _configItems select 0 select _category; + }; + case (_category < 7): { + _configItems select 1 select (_category - 3); + }; + default { + _configItems select (_category - 5); + }; +}; + +// Get config for current category +private _config = switch (true) do { + case (_category in [7, 20, 21]): { + configFile >> "CfgMagazines"; + }; + case (_category == 11): { + configFile >> "CfgVehicles"; + }; + case (_category == 12): { + configFile >> "CfgGlasses"; + }; + default { + configFile >> "CfgWeapons"; + }; +}; + +// Populate listbox with category items +{ + // Add item if not filtered + private _displayName = getText (_config >> _x >> "displayName"); + if (toLower _displayName find _filter > -1) then { + private _picture = getText (_config >> _x >> "picture"); + private _symbol = SYMBOL_ITEM_NONE; + private _alpha = 0.5; + + // Change symbol and alpha if item already selected + if (_x in _attributeItems) then { + _symbol = _modeSymbol; + _alpha = 1; + }; + + private _index = _listbox lnbAddRow ["", _displayName, _symbol]; + _listbox lnbSetData [[_index, 1], _x]; + _listbox lnbSetPicture [[_index, 0], _picture]; + _listbox lbSetTooltip [_index * (count lnbGetColumnsPosition _listbox), _x]; + _listbox lnbSetColor [[_index, 1], [1, 1, 1, _alpha]]; + _listbox lnbSetColor [[_index, 2], [1, 1, 1, _alpha]]; + }; +} forEach _categoryItems; + +_listbox lnbSort [1]; diff --git a/addons/arsenal/functions/fnc_attributeClear.sqf b/addons/arsenal/functions/fnc_attributeClear.sqf new file mode 100644 index 0000000000..a0a8cb070d --- /dev/null +++ b/addons/arsenal/functions/fnc_attributeClear.sqf @@ -0,0 +1,46 @@ +#include "script_component.hpp" +#include "..\defines.hpp" +/* + * Author: mharis001 + * Clears all items from current category in 3DEN attribute. + * + * Arguments: + * 0: Attribute controls group + * + * Return Value: + * None + * + * Example: + * [CONTROL] call ace_arsenal_fnc_attributeClear + * + * Public: No + */ + +params ["_controlsGroup"]; + +private _category = lbCurSel (_controlsGroup controlsGroupCtrl IDC_ATTRIBUTE_CATEGORY) - 1; +private _attributeValue = uiNamespace getVariable [QGVAR(attributeValue), [[], 0]]; +TRACE_1("Handling clear button",_category); + +// Remove all if no specific category +if (_category == -1) then { + _attributeValue set [0, []]; +} else { + // Find category items and remove from list + private _configItems = +(uiNamespace getVariable [QGVAR(configItems), []]); + private _categoryItems = switch (true) do { + case (_category < 3): { + _configItems select 0 select _category; + }; + case (_category < 7): { + _configItems select 1 select (_category - 3); + }; + default { + _configItems select (_category - 5); + }; + }; + _attributeValue set [0, (_attributeValue select 0) - _categoryItems]; +}; + +// Refresh the list after clear +[_controlsGroup] call FUNC(attributeAddItems); diff --git a/addons/arsenal/functions/fnc_attributeDblClick.sqf b/addons/arsenal/functions/fnc_attributeDblClick.sqf new file mode 100644 index 0000000000..6cb9314bcf --- /dev/null +++ b/addons/arsenal/functions/fnc_attributeDblClick.sqf @@ -0,0 +1,26 @@ +#include "script_component.hpp" +/* + * Author: mharis001 + * Handles double clicking a row in 3DEN attribute listbox. + * + * Arguments: + * 0: Listbox + * 1: Row index + * + * Return Value: + * None + * + * Example: + * [CONTROL, 0] call ace_arsenal_fnc_attributeDblClick + * + * Public: No + */ + +params ["_listbox", "_currentRow"]; +TRACE_1("Double click toggle",_currentRow); + +// Get toggle mode (add or remove item) +private _itemClassname = _listbox lnbData [_currentRow, 1]; +private _addItem = !(_itemClassname in ((uiNamespace getVariable [QGVAR(attributeValue), [[], 0]]) select 0)); + +[ctrlParentControlsGroup _listbox, _addItem] call FUNC(attributeSelect); diff --git a/addons/arsenal/functions/fnc_attributeInit.sqf b/addons/arsenal/functions/fnc_attributeInit.sqf new file mode 100644 index 0000000000..14afa31691 --- /dev/null +++ b/addons/arsenal/functions/fnc_attributeInit.sqf @@ -0,0 +1,33 @@ +#include "script_component.hpp" +/* + * Author: mharis001 + * Initializes the objects 3DEN attribute at scenario start. + * + * Arguments: + * 0: Attribute target + * 1: Attribute value + * + * Return Value: + * None + * + * Example: + * [box, [[], 1]] call ace_arsenal_fnc_attributeInit + * + * Public: No + */ + +params ["_object", "_value"]; +_value params ["_items", "_mode"]; +TRACE_2("Initializing object with attribute",_object,_value); + +if (_mode > 0) then { + // Blacklist: all full arsenal and take items away + [_object, true, true] call FUNC(initBox); + [_object, _items, true] call FUNC(removeVirtualItems); +} else { + // Exit on whitelist mode with no items + if (_items isEqualTo []) exitWith {}; + + // Whitelist: add only selected items + [_object, _items, true] call FUNC(initBox); +}; diff --git a/addons/arsenal/functions/fnc_attributeLoad.sqf b/addons/arsenal/functions/fnc_attributeLoad.sqf new file mode 100644 index 0000000000..b2b3f13b1e --- /dev/null +++ b/addons/arsenal/functions/fnc_attributeLoad.sqf @@ -0,0 +1,32 @@ +#include "script_component.hpp" +#include "..\defines.hpp" +/* + * Author: mharis001 + * Initializes the 3DEN attribute. + * + * Arguments: + * 0: Attribute controls group + * 1: Attribute value + * + * Return Value: + * None + * + * Example: + * [CONTROL, [[], 0]] call ace_arsenal_fnc_attributeLoad + * + * Public: No + */ + +params ["_controlsGroup", "_value"]; +TRACE_1("Initializing 3DEN attribute",_value); + +// Store working attribute value +uiNamespace setVariable [QGVAR(attributeValue), _value]; + +// Handle selected mode +if (_value select 1 > 0) then { + (_controlsGroup controlsGroupCtrl IDC_ATTRIBUTE_MODE) lbSetCurSel 1; + (_controlsGroup controlsGroupCtrl IDC_ATTRIBUTE_LIST_RIGHT) ctrlSetText SYMBOL_ITEM_REMOVE; +}; + +[_controlsGroup] call FUNC(attributeAddItems); diff --git a/addons/arsenal/functions/fnc_attributeMode.sqf b/addons/arsenal/functions/fnc_attributeMode.sqf new file mode 100644 index 0000000000..807fea2ec4 --- /dev/null +++ b/addons/arsenal/functions/fnc_attributeMode.sqf @@ -0,0 +1,29 @@ +#include "script_component.hpp" +#include "..\defines.hpp" +/* + * Author: mharis001 + * Handles changing the mode in 3DEN attribute. + * + * Arguments: + * 0: Attribute controls group + * 1: Mode + * + * Return Value: + * None + * + * Example: + * [CONTROL, 0] call ace_arsenal_fnc_attributeMode + * + * Public: No + */ + +params ["_controlsGroup", "_mode"]; +TRACE_1("Changing attribute mode",_mode); + +// Store mode change +private _attributeValue = uiNamespace getVariable [QGVAR(attributeValue), [[], 0]]; +_attributeValue set [1, _mode]; + +// Change right list button and refresh list items with new mode +(_controlsGroup controlsGroupCtrl IDC_ATTRIBUTE_LIST_RIGHT) ctrlSetText ([SYMBOL_ITEM_VIRTUAL, SYMBOL_ITEM_REMOVE] select _mode); +[_controlsGroup] call FUNC(attributeAddItems); diff --git a/addons/arsenal/functions/fnc_attributeSelect.sqf b/addons/arsenal/functions/fnc_attributeSelect.sqf new file mode 100644 index 0000000000..7af0ecc764 --- /dev/null +++ b/addons/arsenal/functions/fnc_attributeSelect.sqf @@ -0,0 +1,49 @@ +#include "script_component.hpp" +#include "..\defines.hpp" +/* + * Author: mharis001 + * Handles adding/removing an item from 3DEN attribute list. + * + * Arguments: + * 0: Attribute controls group + * 1: Add (true) or remove (false) item + * + * Return Value: + * None + * + * Example: + * [CONTROL, true] call ace_arsenal_fnc_attributeSelect + * + * Public: No + */ + +params ["_controlsGroup", "_addItem"]; + +// Get item class from listbox +private _listbox = _controlsGroup controlsGroupCtrl IDC_ATTRIBUTE_LIST; +private _currentRow = lnbCurSelRow _listbox; +private _itemClassname = _listbox lnbData [_currentRow, 1]; +TRACE_2("Handling item selection",_itemClassname,_addItem); + +private _attributeValue = uiNamespace getVariable [QGVAR(attributeValue), [[], 0]]; +_attributeValue params ["_attributeItems", "_attributeMode"]; + +private _findItem = _attributeItems find _itemClassname; + +// Add item if not already in list +if (_addItem && {_findItem < 0}) exitWith { + _attributeItems pushBack _itemClassname; + // Change symbol and increase alpha + _listbox lnbSetText [[_currentRow, 2], [SYMBOL_ITEM_VIRTUAL, SYMBOL_ITEM_REMOVE] select _attributeMode]; + _listbox lnbSetColor [[_currentRow, 1], [1, 1, 1, 1]]; + _listbox lnbSetColor [[_currentRow, 2], [1, 1, 1, 1]]; +}; + +// Remove item if in list +if (!_addItem && {_findItem > -1}) exitWith { + _attributeItems deleteAt _findItem; + // Change symbol and reduce alpha + _listbox lnbSetText [[_currentRow, 2], SYMBOL_ITEM_NONE]; + _listbox lnbSetColor [[_currentRow, 1], [1, 1, 1, 0.5]]; + _listbox lnbSetColor [[_currentRow, 2], [1, 1, 1, 0.5]]; +}; diff --git a/addons/arsenal/stringtable.xml b/addons/arsenal/stringtable.xml index 1eea2b74f6..20796a96af 100644 --- a/addons/arsenal/stringtable.xml +++ b/addons/arsenal/stringtable.xml @@ -751,5 +751,59 @@ 輸出 class name 到剪貼簿上 Copiato il nome della classe negli appunti + + Mode + 模式 + Mode + Modo + Modalità + Tryb + Режим + Modus + Režim + Modo + 모드 + 模式 + モード + Mod + + + Whitelist + Biała lista + Lista blanca + Whitelist + Seznam povolených + Lista branca + Liste blanche + Fehérlista + Вайтлист + Lista Bianca + 許可制 + 화이트리스트 + 白名單 + 白名单 + + + Blacklist + + + Items + 物品 + Objets + Objetos + Oggetti + Przedmioty + Предметы + Gegenstände + Předměty + Itens + 물품 + 物品 + アイテム + Eşyalar + + + Export current items list as an array for use in scripts + From 8a37b6093d781556f3361e20c8f714dfee4280d4 Mon Sep 17 00:00:00 2001 From: Josuan Albin Date: Fri, 20 Jul 2018 22:54:04 +0200 Subject: [PATCH 178/235] Arsenal - Fix locality issue for adding weapons/backpacks and remove unnecessary check in scanConfig (#6456) * Remove unnecessary itemInfo check in scanConfig I got the best tests folks, believe me, the best. I made sure this didn't break anything by making sure the array had the same number of elements before and after removing those, best tests folks. * Change onSelChangedLeft to use global variant of addWeapon and addBackpack Fix a possible locality issue when opening ace arsenal on other players. --- addons/arsenal/functions/fnc_onSelChangedLeft.sqf | 10 +++++----- addons/arsenal/functions/fnc_scanConfig.sqf | 8 ++++---- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/addons/arsenal/functions/fnc_onSelChangedLeft.sqf b/addons/arsenal/functions/fnc_onSelChangedLeft.sqf index ebfaeb0666..6c1e76a239 100644 --- a/addons/arsenal/functions/fnc_onSelChangedLeft.sqf +++ b/addons/arsenal/functions/fnc_onSelChangedLeft.sqf @@ -57,7 +57,7 @@ switch (GVAR(currentLeftPanel)) do { call _fnc_clearPreviousWepMags; private _compatibleItems = (_item call bis_fnc_compatibleItems) apply {tolower _x}; - GVAR(center) addWeapon _item; + GVAR(center) addWeaponGlobal _item; GVAR(center) addWeaponItem [_item, [(getArray (configfile >> "cfgweapons" >> _item >> "magazines")) select 0]]; { @@ -95,7 +95,7 @@ switch (GVAR(currentLeftPanel)) do { call _fnc_clearPreviousWepMags; private _compatibleItems = (_item call bis_fnc_compatibleItems) apply {tolower _x}; - GVAR(center) addWeapon _item; + GVAR(center) addWeaponGlobal _item; GVAR(center) addWeaponItem [_item, [(getArray (configfile >> "cfgweapons" >> _item >> "magazines")) select 0]]; { @@ -132,7 +132,7 @@ switch (GVAR(currentLeftPanel)) do { call _fnc_clearPreviousWepMags; private _compatibleItems = (_item call bis_fnc_compatibleItems) apply {tolower _x}; - GVAR(center) addWeapon _item; + GVAR(center) addWeaponGlobal _item; GVAR(center) addWeaponItem [_item, [(getArray (configfile >> "cfgweapons" >> _item >> "magazines")) select 0]]; { @@ -240,7 +240,7 @@ switch (GVAR(currentLeftPanel)) do { if ((GVAR(currentItems) select 6) != _item) then { removeBackpack GVAR(center); - GVAR(center) addBackpack _item; + GVAR(center) addBackpackGlobal _item; while {count backpackItems GVAR(center) > 0} do { GVAR(center) removeItemFromBackpack (backpackItems GVAR(center) select 0); }; //--- Remove default config contents @@ -295,7 +295,7 @@ switch (GVAR(currentLeftPanel)) do { GVAR(currentItems) set [9, _item]; } else { if ((GVAR(currentItems) select 9) != _item) then { - GVAR(center) addWeapon _item; + GVAR(center) addWeaponGlobal _item; GVAR(currentItems) set [9, _item]; call FUNC(showItem); ADDBINOCULARSMAG diff --git a/addons/arsenal/functions/fnc_scanConfig.sqf b/addons/arsenal/functions/fnc_scanConfig.sqf index bf0c95248f..f5c608db78 100644 --- a/addons/arsenal/functions/fnc_scanConfig.sqf +++ b/addons/arsenal/functions/fnc_scanConfig.sqf @@ -54,15 +54,15 @@ private _configCfgWeapons = configFile >> "CfgWeapons"; //Save this lookup in va (_cargo select 1) select ([201,301,101,302] find _itemInfoType) pushBackUnique _className; }; /* Headgear */ - case (_hasItemInfo && {_itemInfoType == 605}): { + case (_itemInfoType == 605): { (_cargo select 3) pushBackUnique _className; }; /* Uniform */\ - case (_hasItemInfo && {_itemInfoType == 801}): { + case (_itemInfoType == 801): { (_cargo select 4) pushBackUnique _className; }; /* Vest */ - case (_hasItemInfo && {_itemInfoType == 701}): { + case (_itemInfoType == 701): { (_cargo select 5) pushBackUnique _className; }; /* NVgs */ @@ -95,7 +95,7 @@ private _configCfgWeapons = configFile >> "CfgWeapons"; //Save this lookup in va (_cargo select 14) pushBackUnique _className; }; /* UAV terminals */ - case (_hasItemInfo && {_itemInfoType == 621}): { + case (_itemInfoType == 621): { (_cargo select 14) pushBackUnique _className; }; /* Weapon, at the bottom to avoid adding binos */ From 2203cb7b16681d87f11d06ead58956096049d27b Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Sat, 21 Jul 2018 18:03:00 -0500 Subject: [PATCH 179/235] Common - Update showHud function for new elements (#6459) Showhud command has been updated to 10 elements --- addons/arsenal/functions/fnc_onArsenalClose.sqf | 2 +- addons/arsenal/functions/fnc_onArsenalOpen.sqf | 2 +- .../captives/functions/fnc_handlePlayerChanged.sqf | 2 +- .../functions/fnc_handleZeusDisplayChanged.sqf | 2 +- addons/captives/functions/fnc_setHandcuffed.sqf | 2 +- addons/captives/functions/fnc_setSurrendered.sqf | 2 +- addons/common/functions/fnc_showHud.sqf | 13 ++++++++----- addons/ui/functions/fnc_setElements.sqf | 2 ++ 8 files changed, 16 insertions(+), 11 deletions(-) diff --git a/addons/arsenal/functions/fnc_onArsenalClose.sqf b/addons/arsenal/functions/fnc_onArsenalClose.sqf index 316197faf0..bbf1e36f08 100644 --- a/addons/arsenal/functions/fnc_onArsenalClose.sqf +++ b/addons/arsenal/functions/fnc_onArsenalClose.sqf @@ -104,4 +104,4 @@ GVAR(statsInfo) = nil; GVAR(center) = nil; GVAR(centerNotPlayer) = nil; -showHUD true; +[QUOTE(ADDON), []] call EFUNC(common,showHud); diff --git a/addons/arsenal/functions/fnc_onArsenalOpen.sqf b/addons/arsenal/functions/fnc_onArsenalOpen.sqf index b67bd4173a..f61a60e2c1 100644 --- a/addons/arsenal/functions/fnc_onArsenalOpen.sqf +++ b/addons/arsenal/functions/fnc_onArsenalOpen.sqf @@ -231,7 +231,7 @@ showCommandingMenu ""; GVAR(cameraView) = cameraView; GVAR(center) switchCamera "internal"; -showHUD false; +[QUOTE(ADDON), [false, true, true, true, true, true, true, false, true, true]] call EFUNC(common,showHud); private _mouseAreaCtrl = _display displayCtrl IDC_mouseArea; ctrlSetFocus _mouseAreaCtrl; diff --git a/addons/captives/functions/fnc_handlePlayerChanged.sqf b/addons/captives/functions/fnc_handlePlayerChanged.sqf index 3ff0e00752..b15312be64 100644 --- a/addons/captives/functions/fnc_handlePlayerChanged.sqf +++ b/addons/captives/functions/fnc_handlePlayerChanged.sqf @@ -21,7 +21,7 @@ params ["_newUnit","_oldUnit"]; //set showHUD based on new unit status: if ((_newUnit getVariable [QGVAR(isHandcuffed), false]) || {_newUnit getVariable [QGVAR(isSurrendering), false]}) then { TRACE_1("Player Change (showHUD false)",_newUnit); - ["captive", [false, false, false, false, false, false, false, false]] call EFUNC(common,showHud); + ["captive", [false, false, false, false, false, false, false, false, false, true]] call EFUNC(common,showHud); } else { TRACE_1("Player Change (showHUD true)",_newUnit); ["captive", []] call EFUNC(common,showHud); //same as showHud true; diff --git a/addons/captives/functions/fnc_handleZeusDisplayChanged.sqf b/addons/captives/functions/fnc_handleZeusDisplayChanged.sqf index bdb1450874..2b7c55241d 100644 --- a/addons/captives/functions/fnc_handleZeusDisplayChanged.sqf +++ b/addons/captives/functions/fnc_handleZeusDisplayChanged.sqf @@ -19,7 +19,7 @@ if ((ACE_player getVariable [QGVAR(isHandcuffed), false]) || {ACE_player getVariable [QGVAR(isSurrendering), false]}) then { TRACE_1("Player Change (showHUD false)",ACE_player); - ["captive", [false, false, false, false, false, false, false, false]] call EFUNC(common,showHud); + ["captive", [false, false, false, false, false, false, false, false, false, true]] call EFUNC(common,showHud); } else { TRACE_1("Player Change (showHUD true)",ACE_player); ["captive", []] call EFUNC(common,showHud); //same as showHud true; diff --git a/addons/captives/functions/fnc_setHandcuffed.sqf b/addons/captives/functions/fnc_setHandcuffed.sqf index 4f949db60d..ad43137b18 100644 --- a/addons/captives/functions/fnc_setHandcuffed.sqf +++ b/addons/captives/functions/fnc_setHandcuffed.sqf @@ -50,7 +50,7 @@ if (_state) then { _unit setVariable [QGVAR(CargoIndex), ((vehicle _unit) getCargoIndex _unit), true]; if (_unit == ACE_player) then { - ["captive", [false, false, false, false, false, false, false, false]] call EFUNC(common,showHud); + ["captive", [false, false, false, false, false, false, false, false, false, true]] call EFUNC(common,showHud); }; // fix anim on mission start (should work on dedicated servers) diff --git a/addons/captives/functions/fnc_setSurrendered.sqf b/addons/captives/functions/fnc_setSurrendered.sqf index ee54b6b5e7..2deec8cb84 100644 --- a/addons/captives/functions/fnc_setSurrendered.sqf +++ b/addons/captives/functions/fnc_setSurrendered.sqf @@ -47,7 +47,7 @@ if (_state) then { [_unit, "setCaptive", QGVAR(Surrendered), true] call EFUNC(common,statusEffect_set); if (_unit == ACE_player) then { - ["captive", [false, false, false, false, false, false, false, false]] call EFUNC(common,showHud); + ["captive", [false, false, false, false, false, false, false, false, false, true]] call EFUNC(common,showHud); }; [_unit] call EFUNC(common,fixLoweredRifleAnimation); diff --git a/addons/common/functions/fnc_showHud.sqf b/addons/common/functions/fnc_showHud.sqf index 4fe088d3a8..5cf2e876bd 100644 --- a/addons/common/functions/fnc_showHud.sqf +++ b/addons/common/functions/fnc_showHud.sqf @@ -15,12 +15,14 @@ * - menu: Boolean - show commanding menu (hides HC related menus) * - group: Boolean - show group info bar (hides squad leader info bar) * - cursors: Boolean - show HUD weapon cursors (connected with scripted HUD) + * - panels: Boolean - show vehicle panels / GPS + * - ???: Boolean - Possibly related to changelog entry `Added: A new showKillConfirmations parameter for the showHud command` * * Return Value: * Resulting ShowHud Array * * Example: - * ["hideHud", [false, true, true, true, true, true, true, false]] call ace_common_fnc_showHud; //This is equivalent to the old showHud false + * ["hideHud", [false, true, true, true, true, true, true, false, true, true]] call ace_common_fnc_showHud; //This is equivalent to the old showHud false * [] call ace_common_fnc_showHud; //sets `showHud` and returns the result array used * * Public: Yes @@ -29,7 +31,7 @@ if (!hasInterface) exitWith {[-1]}; -params [["_reason", "", [""]], ["_mask", [], [[]], [0,8]]]; +params [["_reason", "", [""]], ["_mask", [], [[]]]]; if (isArray (missionConfigFile >> "showHUD")) then { //(showHud = 0;) is fine - the array is the problem @@ -39,10 +41,11 @@ if (isArray (missionConfigFile >> "showHUD")) then { if (_reason != "") then { _reason = toLower _reason; if (_mask isEqualTo []) then { - TRACE_2("Setting", _reason, _mask); + TRACE_2("Removing", _reason, _mask); [GVAR(showHudHash), _reason] call CBA_fnc_hashRem; } else { - TRACE_2("Removing", _reason, _mask); + while {(count _mask) < 10} do { _mask pushBack true; }; + TRACE_2("Setting", _reason, _mask); [GVAR(showHudHash), _reason, _mask] call CBA_fnc_hashSet; }; }; @@ -50,7 +53,7 @@ if (_reason != "") then { GVAR(showHudHash) params ["", "_reasons", "_masks"]; private _resultMask = []; -for "_index" from 0 to 7 do { +for "_index" from 0 to 9 do { private _set = true; //Default to true { if (!(_x select _index)) exitWith { diff --git a/addons/ui/functions/fnc_setElements.sqf b/addons/ui/functions/fnc_setElements.sqf index f029a9f5ae..1d296ba7d8 100644 --- a/addons/ui/functions/fnc_setElements.sqf +++ b/addons/ui/functions/fnc_setElements.sqf @@ -31,5 +31,7 @@ if (isArray (missionConfigFile >> "showHUD")) exitWith { true, GVAR(commandMenu), GVAR(groupBar), + true, + true, true ]] call EFUNC(common,showHud); From 10a988836d6a31dfcc43d790d1d36bb50888169b Mon Sep 17 00:00:00 2001 From: Tim Beswick Date: Sun, 22 Jul 2018 00:07:16 +0100 Subject: [PATCH 180/235] Ignore interaction distance with zeus cargo load module (#6396) --- addons/zeus/functions/fnc_moduleLoadIntoCargo.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/zeus/functions/fnc_moduleLoadIntoCargo.sqf b/addons/zeus/functions/fnc_moduleLoadIntoCargo.sqf index 33ceb703a1..f0a6968278 100644 --- a/addons/zeus/functions/fnc_moduleLoadIntoCargo.sqf +++ b/addons/zeus/functions/fnc_moduleLoadIntoCargo.sqf @@ -52,7 +52,7 @@ if (!alive _cargo) exitWith { }; private _displayName = [_cargo] call EFUNC(common,getName); - if ([_cargo, _holder] call EFUNC(cargo,loadItem)) then { + if ([_cargo, _holder, true] call EFUNC(cargo,loadItem)) then { private _loadedItem = [localize ELSTRING(cargo,LoadedItem), "
", " "] call CBA_fnc_replace; private _holderDisplayName = [_holder] call EFUNC(common,getName); [_loadedItem, _displayName, _holderDisplayName] call FUNC(showMessage); From 5ad9641ee6990dae4644ac20e7d89b47155c2cf1 Mon Sep 17 00:00:00 2001 From: Glowbal Date: Tue, 24 Jul 2018 20:59:35 +0200 Subject: [PATCH 181/235] Line endings on fortify.md --- docs/wiki/featurex/fortify.md | 82 +++++++++++++++++------------------ 1 file changed, 41 insertions(+), 41 deletions(-) diff --git a/docs/wiki/featurex/fortify.md b/docs/wiki/featurex/fortify.md index 3fe2863ae7..39176e6f9f 100644 --- a/docs/wiki/featurex/fortify.md +++ b/docs/wiki/featurex/fortify.md @@ -1,41 +1,41 @@ ---- -layout: wiki -title: Fortify -description: Enables player to build fortifications. -group: feature -category: interaction -parent: wiki -mod: acex -version: - major: 3 - minor: 3 - patch: 0 ---- - -## 1. Overview - -Enable players to place down fortifications. Budget enables mission makers / admin to restrict the amount of resources available. - -## 2. Usage - -Please note that to use this function the Fortify module needs to be placed down and `Fortify Tool` equipped by player. - -### 2.1 Placing fortification - -- Open self-interaction menu with Ctrl + ⊞ Win (ACE3 default). -- Select `Equipment` -> `Fortify`. -- Choose your fortification object and follow the instructions on the screen. - -### 2.1 Removing fortification - -- Use interaction ⊞ Win on object. - -## 3. Tips - -- Using Alt / Ctrl / Shift + Scroll Wheel you can rotate object on different axis. -- You can use planks to get up on rooftops. -- Holding Ctrl while placing allows for placing multiple objects of the same type. - -## 4. Dependencies - -{% include dependenciesx_list.md component="fortify" %} +--- +layout: wiki +title: Fortify +description: Enables player to build fortifications. +group: feature +category: interaction +parent: wiki +mod: acex +version: + major: 3 + minor: 3 + patch: 0 +--- + +## 1. Overview + +Enable players to place down fortifications. Budget enables mission makers / admin to restrict the amount of resources available. + +## 2. Usage + +Please note that to use this function the Fortify module needs to be placed down and `Fortify Tool` equipped by player. + +### 2.1 Placing fortification + +- Open self-interaction menu with Ctrl + ⊞ Win (ACE3 default). +- Select `Equipment` -> `Fortify`. +- Choose your fortification object and follow the instructions on the screen. + +### 2.1 Removing fortification + +- Use interaction ⊞ Win on object. + +## 3. Tips + +- Using Alt / Ctrl / Shift + Scroll Wheel you can rotate object on different axis. +- You can use planks to get up on rooftops. +- Holding Ctrl while placing allows for placing multiple objects of the same type. + +## 4. Dependencies + +{% include dependenciesx_list.md component="fortify" %} From 4e0df9b90ec2e96126f18975aa30bf1424aa634b Mon Sep 17 00:00:00 2001 From: Dystopian Date: Fri, 27 Jul 2018 20:24:56 +0300 Subject: [PATCH 182/235] Minor fixes (#6465) * Fix example in ace_map_fnc_simulateMapLight * Make fnc_addActionToObject public * Repair - Delete unnecessary condition --- addons/interact_menu/functions/fnc_addActionToObject.sqf | 2 +- addons/map/functions/fnc_simulateMapLight.sqf | 2 +- addons/repair/functions/fnc_addRepairActions.sqf | 6 +----- 3 files changed, 3 insertions(+), 7 deletions(-) diff --git a/addons/interact_menu/functions/fnc_addActionToObject.sqf b/addons/interact_menu/functions/fnc_addActionToObject.sqf index c250296af6..4b993f9971 100644 --- a/addons/interact_menu/functions/fnc_addActionToObject.sqf +++ b/addons/interact_menu/functions/fnc_addActionToObject.sqf @@ -15,7 +15,7 @@ * Example: * [cursorTarget, 0, ["ACE_TapShoulderRight"],VulcanPinchAction] call ace_interact_menu_fnc_addActionToObject; * - * Public: No + * Public: Yes */ #include "script_component.hpp" diff --git a/addons/map/functions/fnc_simulateMapLight.sqf b/addons/map/functions/fnc_simulateMapLight.sqf index 05eb15ba3e..538b49a37a 100644 --- a/addons/map/functions/fnc_simulateMapLight.sqf +++ b/addons/map/functions/fnc_simulateMapLight.sqf @@ -12,7 +12,7 @@ * None * * Example: - * [CONTROL, 5, [5, 4, 6], []] call ACE_map_fnc_simulateMapLights + * [CONTROL, 5, [5, 4, 6], []] call ace_map_fnc_simulateMapLight * * Public: No */ diff --git a/addons/repair/functions/fnc_addRepairActions.sqf b/addons/repair/functions/fnc_addRepairActions.sqf index 503c11bd97..ed8528a4bc 100644 --- a/addons/repair/functions/fnc_addRepairActions.sqf +++ b/addons/repair/functions/fnc_addRepairActions.sqf @@ -126,11 +126,7 @@ private _hitpointGroups = getArray(configFile >> "CfgVehicles" >> _type >> QGVAR if (_hitpoint in TRACK_HITPOINTS) then { // Tracks should always be unique if (_hitpoint in _processedHitpoints) exitWith {TRACE_3("Duplicate Track",_hitpoint,_forEachIndex,_selection);}; - if (_hitpoint == "HitLTrack") then { - _position = compile format ["private _return = _target selectionPosition ['%1', 'HitPoints']; _return set [1, 0]; _return", _selection]; - } else { - _position = compile format ["private _return = _target selectionPosition ['%1', 'HitPoints']; _return set [1, 0]; _return", _selection]; - }; + _position = compile format ["private _return = _target selectionPosition ['%1', 'HitPoints']; _return set [1, 0]; _return", _selection]; TRACE_4("Adding RepairTrack",_hitpoint,_forEachIndex,_selection,_text); private _condition = {[_this select 1, _this select 0, _this select 2 select 0, "RepairTrack"] call DFUNC(canRepair)}; private _statement = {[_this select 1, _this select 0, _this select 2 select 0, "RepairTrack"] call DFUNC(repair)}; From a44411c6660caafa278dda733cbeef83de0d763c Mon Sep 17 00:00:00 2001 From: Dystopian Date: Fri, 27 Jul 2018 20:26:26 +0300 Subject: [PATCH 183/235] Wire cutter - Allow use when unit has RHS Engineer UMBTS backpack (#6462) * Allow wirecutter use when unit has RHS Engineer UMBTS backpack * Move flag from code to config --- addons/logistics_wirecutter/functions/fnc_cutDownFence.sqf | 2 +- addons/logistics_wirecutter/functions/fnc_interactEH.sqf | 4 ++-- addons/logistics_wirecutter/script_component.hpp | 6 ++++++ optionals/compat_rhs_afrf3/CfgVehicles.hpp | 5 +++++ 4 files changed, 14 insertions(+), 3 deletions(-) diff --git a/addons/logistics_wirecutter/functions/fnc_cutDownFence.sqf b/addons/logistics_wirecutter/functions/fnc_cutDownFence.sqf index 9eb214d8c2..3f31a7e841 100644 --- a/addons/logistics_wirecutter/functions/fnc_cutDownFence.sqf +++ b/addons/logistics_wirecutter/functions/fnc_cutDownFence.sqf @@ -60,7 +60,7 @@ if !(_unit call EFUNC(common,isSwimming)) then { !isNull _fence && {damage _fence < 1} - && {"ACE_wirecutter" in ([_player, false, true, true, true, false] call CBA_fnc_uniqueUnitItems)} + && {HAS_WIRECUTTER(_player)} }, ["isNotSwimming"] ] call EFUNC(common,progressBar); diff --git a/addons/logistics_wirecutter/functions/fnc_interactEH.sqf b/addons/logistics_wirecutter/functions/fnc_interactEH.sqf index 7a9bb01602..9e64f9edb4 100644 --- a/addons/logistics_wirecutter/functions/fnc_interactEH.sqf +++ b/addons/logistics_wirecutter/functions/fnc_interactEH.sqf @@ -24,7 +24,7 @@ params ["_interactionType"]; if ( _interactionType != 0 || {vehicle ACE_player != ACE_player} - || {!("ACE_wirecutter" in ([ACE_player, false, true, true, true, false] call CBA_fnc_uniqueUnitItems))} + || {!HAS_WIRECUTTER(ACE_player)} ) exitWith {}; TRACE_1("Starting wirecuter interact PFH",_interactionType); @@ -53,7 +53,7 @@ TRACE_1("Starting wirecuter interact PFH",_interactionType); !isNull _attachedFence && {damage _attachedFence < 1} - && {"ACE_wirecutter" in ([_player, false, true, true, true, false] call CBA_fnc_uniqueUnitItems)} + && {HAS_WIRECUTTER(_player)} && {[_player, _attachedFence, ["isNotSwimming"]] call EFUNC(common,canInteractWith)} && { // Custom LOS check for fence diff --git a/addons/logistics_wirecutter/script_component.hpp b/addons/logistics_wirecutter/script_component.hpp index 19d1b159b7..f971acd88f 100644 --- a/addons/logistics_wirecutter/script_component.hpp +++ b/addons/logistics_wirecutter/script_component.hpp @@ -56,3 +56,9 @@ #define SOUND_CLIP_TIME_SPACING 1.5 #define CUT_TIME_DEFAULT 11 #define CUT_TIME_ENGINEER 7.5 + +#define HAS_WIRECUTTER(unit) (\ + "ACE_wirecutter" in ([ARR_6(unit, false, true, true, true, false)] call CBA_fnc_uniqueUnitItems) \ + || {1 == getNumber (configFile >> "CfgVehicles" >> (backpack unit) >> QGVAR(hasWirecutter))} \ + || {1 == getNumber (configFile >> "CfgWeapons" >> (vest unit) >> QGVAR(hasWirecutter))} \ +) diff --git a/optionals/compat_rhs_afrf3/CfgVehicles.hpp b/optionals/compat_rhs_afrf3/CfgVehicles.hpp index 60c6b78d9a..6d27039836 100644 --- a/optionals/compat_rhs_afrf3/CfgVehicles.hpp +++ b/optionals/compat_rhs_afrf3/CfgVehicles.hpp @@ -218,4 +218,9 @@ class CfgVehicles { class OTR21_Base: Truck_F { EGVAR(refuel,fuelCapacity) = 500; }; + + class rhs_assault_umbts; + class rhs_assault_umbts_engineer: rhs_assault_umbts { + EGVAR(logistics_wirecutter,hasWirecutter) = 1; + }; }; From 2767fddd92bd48199ba580601dd148f77e001f00 Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Sun, 29 Jul 2018 13:53:16 -0500 Subject: [PATCH 184/235] Update goggles.md (#6479) --- docs/wiki/feature/goggles.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/wiki/feature/goggles.md b/docs/wiki/feature/goggles.md index cc22f98084..3fc5393dd2 100644 --- a/docs/wiki/feature/goggles.md +++ b/docs/wiki/feature/goggles.md @@ -21,7 +21,7 @@ Adds color tint to sunglasses and other eyewear. Causes raindrops to appear on t ## 2. Usage ### 2.1 Cleaning your goggles -- To clean your goggles press SHIFT + ALT + T(ACE3 deault key bind `Wipe goggles`) +- To clean your goggles press Ctrl+⇧ Shift+T (ACE3 deault key bind `Wipe goggles`) ## 3. Dependencies From 9f85a5371154aa824cb5a3711aa800163d45199f Mon Sep 17 00:00:00 2001 From: Josuan Albin Date: Wed, 1 Aug 2018 00:36:22 +0200 Subject: [PATCH 185/235] Fix error in setupExplosive with CBA 3.8.0 (#6476) * Fix error in setupExplosive with CBA 3.8.0 getFov has a param check now, this function was passing args to it and causing an error. * Fix getFov call in attach and viewDistance modules --- addons/attach/functions/fnc_attach.sqf | 2 +- addons/explosives/functions/fnc_setupExplosive.sqf | 2 +- addons/viewdistance/functions/fnc_setFovBasedOvdPFH.sqf | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/addons/attach/functions/fnc_attach.sqf b/addons/attach/functions/fnc_attach.sqf index e7a8630ac9..743b344c63 100644 --- a/addons/attach/functions/fnc_attach.sqf +++ b/addons/attach/functions/fnc_attach.sqf @@ -106,7 +106,7 @@ if (_unit == _attachToVehicle) then { //Self Attachment if (_screenPos isEqualTo []) exitWith { ((uiNamespace getVariable [QGVAR(virtualAmmoDisplay), displayNull]) displayCtrl 800851) ctrlShow false; }; - private _realDistance = (_virtualPos distance (positionCameraToWorld [0,0,0])) / ((call CBA_fnc_getFov) select 1); + private _realDistance = (_virtualPos distance (positionCameraToWorld [0,0,0])) / (([] call CBA_fnc_getFov) select 1); _screenPos = [(_screenPos select 0), _realDistance, (_screenPos select 1)]; ((uiNamespace getVariable [QGVAR(virtualAmmoDisplay), displayNull]) displayCtrl 800851) ctrlSetPosition _screenPos; private _dir = (positionCameraToWorld [0,0,1]) vectorFromTo (positionCameraToWorld [0,0,0]); diff --git a/addons/explosives/functions/fnc_setupExplosive.sqf b/addons/explosives/functions/fnc_setupExplosive.sqf index 6e356a6f8d..b69f7eb40b 100644 --- a/addons/explosives/functions/fnc_setupExplosive.sqf +++ b/addons/explosives/functions/fnc_setupExplosive.sqf @@ -196,7 +196,7 @@ GVAR(TweakedAngle) = 0; //Show the model on the hud in aprox the same size/location as it will be placed: ((uiNamespace getVariable [QGVAR(virtualAmmoDisplay), displayNull]) displayCtrl 800851) ctrlShow true; - private _realDistance = ((_virtualPosASL call EFUNC(common,ASLToPosition)) distance (positionCameraToWorld [0,0,0])) / ((call CBA_fnc_getFov) select 1); + private _realDistance = ((_virtualPosASL call EFUNC(common,ASLToPosition)) distance (positionCameraToWorld [0,0,0])) / (([] call CBA_fnc_getFov) select 1); _screenPos = [(_screenPos select 0), _realDistance, (_screenPos select 1)]; ((uiNamespace getVariable [QGVAR(virtualAmmoDisplay), displayNull]) displayCtrl 800851) ctrlSetPosition _screenPos; diff --git a/addons/viewdistance/functions/fnc_setFovBasedOvdPFH.sqf b/addons/viewdistance/functions/fnc_setFovBasedOvdPFH.sqf index 4a57747d97..b4338b0511 100644 --- a/addons/viewdistance/functions/fnc_setFovBasedOvdPFH.sqf +++ b/addons/viewdistance/functions/fnc_setFovBasedOvdPFH.sqf @@ -25,7 +25,7 @@ if (GVAR(objectViewDistanceCoeff) < 6) exitWith { GVAR(fovBasedPFHminimalViewDistance) = nil; }; -private _zoom = (call CBA_fnc_getFov) select 1; +private _zoom = ([] call CBA_fnc_getFov) select 1; if (_zoom > VD_ZOOM_NORMAL) then { // Dynamically set Object View Distance based on player's Zoom Level and View Distance From 6ae7c28025e54efbff9ec4cbfb86910da3c5cd81 Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Wed, 1 Aug 2018 15:29:54 -0500 Subject: [PATCH 186/235] Dragging - Add compatibilty for 1.84 static weapons and radars (#6494) * Dragging - Add compatibilty for 1.84 static weapons and radars * Reload - Disable check ammo keybind when in UAV --- addons/dragging/CfgVehicles.hpp | 26 +++++++++++++++++++++++++- addons/reload/XEH_postInit.sqf | 2 ++ 2 files changed, 27 insertions(+), 1 deletion(-) diff --git a/addons/dragging/CfgVehicles.hpp b/addons/dragging/CfgVehicles.hpp index 182bc76596..9d5389efd8 100644 --- a/addons/dragging/CfgVehicles.hpp +++ b/addons/dragging/CfgVehicles.hpp @@ -30,7 +30,7 @@ class CfgVehicles { GVAR(dragDirection) = 0; }; - // Big 1.70 Autonomous AA Turrets + // Big 1.70 and 1.84 Autonomous AA Turrets class StaticMGWeapon; class AAA_System_01_base_F: StaticMGWeapon { // Praetorian 1C (aka Phalanx CIWS) GVAR(canCarry) = 0; @@ -44,6 +44,30 @@ class CfgVehicles { GVAR(canCarry) = 0; GVAR(canDrag) = 0; }; + class SAM_System_03_base_F: StaticMGWeapon { // MIM-145 Defender + GVAR(canCarry) = 0; + GVAR(canDrag) = 0; + }; + class SAM_System_04_base_F: StaticMGWeapon { // S-750 Rhea + GVAR(canCarry) = 0; + GVAR(canDrag) = 0; + }; + class B_Ship_Gun_01_base_F: StaticMGWeapon { // Mk45 Hammer + GVAR(canCarry) = 0; + GVAR(canDrag) = 0; + }; + class B_Ship_MRLS_01_base_F: StaticMGWeapon { // Mk41 VLS + GVAR(canCarry) = 0; + GVAR(canDrag) = 0; + }; + class Radar_System_01_base_F: StaticMGWeapon { // AN/MPQ-105 Radar + GVAR(canCarry) = 0; + GVAR(canDrag) = 0; + }; + class Radar_System_02_base_F: StaticMGWeapon { // R-750 Cronus Radar + GVAR(canCarry) = 0; + GVAR(canDrag) = 0; + }; // ammo boxes class ThingX; diff --git a/addons/reload/XEH_postInit.sqf b/addons/reload/XEH_postInit.sqf index 070edfa225..eda5c61faa 100644 --- a/addons/reload/XEH_postInit.sqf +++ b/addons/reload/XEH_postInit.sqf @@ -9,6 +9,8 @@ if (!hasInterface) exitWith {}; if !([ACE_player, vehicle ACE_player, ["isNotInside", "isNotSwimming", "isNotSitting"]] call EFUNC(common,canInteractWith)) exitWith {false}; // Conditions: specific if !(ACE_player call CBA_fnc_canUseWeapon || {(vehicle ACE_player) isKindOf "StaticWeapon"}) exitWith {false}; + // Ignore if controlling UAV (blocks radar keybind) + if (!isNull (ACE_controlledUAV param [0, objNull])) exitWith {false}; // Statement [ACE_player] call FUNC(checkAmmo); From 240046ceeeaf4ecfd52d3b6f8daf7c205ef7e33e Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Thu, 2 Aug 2018 14:42:44 -0500 Subject: [PATCH 187/235] Medical Menu - Check cursorObject if cursorTarget is invalid (#6496) Should fix #6488 --- addons/medical_menu/XEH_postInit.sqf | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/addons/medical_menu/XEH_postInit.sqf b/addons/medical_menu/XEH_postInit.sqf index 89488c0d69..fcf2dbfd66 100644 --- a/addons/medical_menu/XEH_postInit.sqf +++ b/addons/medical_menu/XEH_postInit.sqf @@ -17,8 +17,12 @@ GVAR(pendingReopen) = false; ["ACE3 Common", QGVAR(displayMenuKeyPressed), localize LSTRING(DisplayMenuKey), { + TRACE_3("keyDown",cursorTarget,cursorObject,ACE_player); private _target = cursorTarget; - if (!((_target isKindOf "CAManBase") && {[ACE_player, _target] call FUNC(canOpenMenu)})) then {_target = ACE_player}; + if (!((_target isKindOf "CAManBase") && {[ACE_player, _target] call FUNC(canOpenMenu)})) then { + _target = cursorObject; + if (!((_target isKindOf "CAManBase") && {[ACE_player, _target] call FUNC(canOpenMenu)})) then { _target = ACE_player; }; + }; // Conditions: canInteract if !([ACE_player, _target, ["isNotInside", "isNotSwimming"]] call EFUNC(common,canInteractWith)) exitWith {false}; From d48e3369156e2086c9053305e784d880c31a9902 Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Thu, 2 Aug 2018 14:48:41 -0500 Subject: [PATCH 188/235] v3.12.3 --- README.md | 2 +- addons/main/script_mod.hpp | 4 ++-- addons/main/script_version.hpp | 4 ++-- docs/README_DE.md | 2 +- docs/README_PL.md | 2 +- mod.cpp | 4 ++-- 6 files changed, 9 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index 8241ea340f..8a49da1078 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@

- ACE3 Version + ACE3 Version ACE3 Issues diff --git a/addons/main/script_mod.hpp b/addons/main/script_mod.hpp index d24e2f7d9f..65aa94f8fa 100644 --- a/addons/main/script_mod.hpp +++ b/addons/main/script_mod.hpp @@ -9,8 +9,8 @@ #define VERSION_AR MAJOR,MINOR,PATCHLVL,BUILD // MINIMAL required version for the Mod. Components can specify others.. -#define REQUIRED_VERSION 1.82 -#define REQUIRED_CBA_VERSION {3,6,0} +#define REQUIRED_VERSION 1.84 +#define REQUIRED_CBA_VERSION {3,8,0} #ifdef COMPONENT_BEAUTIFIED #define COMPONENT_NAME QUOTE(ACE3 - COMPONENT_BEAUTIFIED) diff --git a/addons/main/script_version.hpp b/addons/main/script_version.hpp index 4f432970c0..fc08a85ace 100644 --- a/addons/main/script_version.hpp +++ b/addons/main/script_version.hpp @@ -1,4 +1,4 @@ #define MAJOR 3 #define MINOR 12 -#define PATCHLVL 2 -#define BUILD 33 +#define PATCHLVL 3 +#define BUILD 34 diff --git a/docs/README_DE.md b/docs/README_DE.md index 806c31cea0..297113ed81 100644 --- a/docs/README_DE.md +++ b/docs/README_DE.md @@ -4,7 +4,7 @@

- ACE3 Version + ACE3 Version ACE3 Fehlermeldungen diff --git a/docs/README_PL.md b/docs/README_PL.md index 4f2c9b80b7..a8f008ed77 100644 --- a/docs/README_PL.md +++ b/docs/README_PL.md @@ -3,7 +3,7 @@

- ACE3 Wersja + ACE3 Wersja ACE3 Zagadnienia diff --git a/mod.cpp b/mod.cpp index cbb26b3acb..b23f34ab79 100644 --- a/mod.cpp +++ b/mod.cpp @@ -1,8 +1,8 @@ -name = "Advanced Combat Environment 3.12.2"; +name = "Advanced Combat Environment 3.12.3"; picture = "logo_ace3_ca.paa"; actionName = "GitHub"; action = "https://github.com/acemod/ACE3"; -description = "ACE3 - Version 3.12.2"; +description = "ACE3 - Version 3.12.3"; logo = "logo_ace3_ca.paa"; logoOver = "logo_ace3_ca.paa"; tooltip = "ACE3"; From bac4156d1a369c14e3fc997ffa5a4375a0833200 Mon Sep 17 00:00:00 2001 From: Josuan Albin Date: Mon, 6 Aug 2018 05:22:39 +0200 Subject: [PATCH 189/235] Arsenal - Fix weapon without mag showing weird velocity (#6500) * Fix weapon without mag showing weird velocity * Update stringtable.xml * Change string to str_empty --- .../fnc_statTextStatement_weaponMuzzleVelocity.sqf | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/addons/ballistics/functions/fnc_statTextStatement_weaponMuzzleVelocity.sqf b/addons/ballistics/functions/fnc_statTextStatement_weaponMuzzleVelocity.sqf index 1fcc75d405..4751b76902 100644 --- a/addons/ballistics/functions/fnc_statTextStatement_weaponMuzzleVelocity.sqf +++ b/addons/ballistics/functions/fnc_statTextStatement_weaponMuzzleVelocity.sqf @@ -25,10 +25,8 @@ if (EGVAR(arsenal,currentLeftPanel) == 2002) then { [handgunWeapon EGVAR(arsenal,center), _primaryMag param [0, ""]] } params ["_weapon", "_magazine"]; -private _initSpeed = getNumber (_config >> "initSpeed"); - if (_magazine isEqualTo "") then { - _initSpeed + localize "str_empty"; } else { private _ammoCfg = (configFile >> "CfgAmmo" >> (getText (configFile >> "CfgMagazines" >> _magazine >> "ammo"))); private _barrelLength = getNumber (_config >> "ACE_barrelLength"); @@ -40,6 +38,6 @@ if (_magazine isEqualTo "") then { format ["%1 m/s (%2 ft/s)", _muzzleVelocity toFixed 0, (_muzzleVelocity * 3.28084) toFixed 0] } else { - _initSpeed + localize "str_empty"; }; }; From 29d11bc75206a212e3cb4f74d98da995dc3a02cb Mon Sep 17 00:00:00 2001 From: Josuan Albin Date: Mon, 6 Aug 2018 06:15:49 +0200 Subject: [PATCH 190/235] Fix terminals not being properly added to currentItems (#6504) --- addons/arsenal/functions/fnc_buttonLoadoutsLoad.sqf | 13 ++++++++++--- addons/arsenal/functions/fnc_onArsenalOpen.sqf | 11 +++++++++-- 2 files changed, 19 insertions(+), 5 deletions(-) diff --git a/addons/arsenal/functions/fnc_buttonLoadoutsLoad.sqf b/addons/arsenal/functions/fnc_buttonLoadoutsLoad.sqf index 131bc1331f..9146246fa9 100644 --- a/addons/arsenal/functions/fnc_buttonLoadoutsLoad.sqf +++ b/addons/arsenal/functions/fnc_buttonLoadoutsLoad.sqf @@ -76,10 +76,17 @@ for "_index" from 0 to 15 do { }; { private _simulationType = getText (configFile >> "CfgWeapons" >> _x >> "simulation"); - private _index = 10 + (["itemmap", "itemcompass", "itemradio", "itemwatch", "itemgps"] find (tolower _simulationType)); - GVAR(currentItems) set [_index, _x]; -} foreach (assignedItems GVAR(center)); + if (_simulationType != "NVGoggles") then { + if (_simulationType == "ItemGps" || _simulationType == "Weapon") then { + GVAR(currentItems) set [14, _x]; + } else { + + private _index = 10 + (["itemmap", "itemcompass", "itemradio", "itemwatch"] find (tolower _simulationType)); + GVAR(currentItems) set [_index, _x]; + }; + }; +} forEach (assignedItems GVAR(center)); call FUNC(updateUniqueItemsList); diff --git a/addons/arsenal/functions/fnc_onArsenalOpen.sqf b/addons/arsenal/functions/fnc_onArsenalOpen.sqf index f61a60e2c1..b18d3c3080 100644 --- a/addons/arsenal/functions/fnc_onArsenalOpen.sqf +++ b/addons/arsenal/functions/fnc_onArsenalOpen.sqf @@ -165,9 +165,16 @@ for "_index" from 0 to 15 do { { private _simulationType = getText (configFile >> "CfgWeapons" >> _x >> "simulation"); - private _index = 10 + (["itemmap", "itemcompass", "itemradio", "itemwatch", "itemgps"] find (tolower _simulationType)); - GVAR(currentItems) set [_index, _x]; + if (_simulationType != "NVGoggles") then { + if (_simulationType == "ItemGps" || _simulationType == "Weapon") then { + GVAR(currentItems) set [14, _x]; + } else { + + private _index = 10 + (["itemmap", "itemcompass", "itemradio", "itemwatch"] find (tolower _simulationType)); + GVAR(currentItems) set [_index, _x]; + }; + }; } forEach (assignedItems GVAR(center)); GVAR(currentWeaponType) = switch true do { From d31f004ac2b67e007bd6aa1a29af605c92ce629c Mon Sep 17 00:00:00 2001 From: classic Date: Tue, 7 Aug 2018 01:18:59 +0900 Subject: [PATCH 191/235] Update Japanese translation (#6503) * Update Japanese translation * Update Japanese translation * Update Japanese translation * Update Japanese translation * Update Japanese translation * Update Japanese translation * Update Japanese translation --- addons/arsenal/stringtable.xml | 4 ++- addons/common/stringtable.xml | 2 ++ addons/dogtags/stringtable.xml | 1 + addons/pylons/stringtable.xml | 8 +++++- addons/realisticnames/stringtable.xml | 38 +++++++++++++++++++++++++++ addons/vehicles/stringtable.xml | 3 +++ addons/zeus/stringtable.xml | 1 + 7 files changed, 55 insertions(+), 2 deletions(-) diff --git a/addons/arsenal/stringtable.xml b/addons/arsenal/stringtable.xml index 20796a96af..f1136cb55b 100644 --- a/addons/arsenal/stringtable.xml +++ b/addons/arsenal/stringtable.xml @@ -778,13 +778,14 @@ Fehérlista Вайтлист Lista Bianca - 許可制 + 許可リスト 화이트리스트 白名單 白名单 Blacklist + 禁止リスト Items @@ -804,6 +805,7 @@ Export current items list as an array for use in scripts + スクリプト用に現在のアイテム リストをアレイで出力します diff --git a/addons/common/stringtable.xml b/addons/common/stringtable.xml index ceabe0d60b..7a4a0bce48 100644 --- a/addons/common/stringtable.xml +++ b/addons/common/stringtable.xml @@ -1186,12 +1186,14 @@ 旗帜(ACE-黑色): 旗幟(ACE-黑色) Bandiera (ACE - Nera) + 旗 (ACE - 黒) Flag (ACE - White) 旗帜(ACE-白色): 旗幟(ACE-白色) Bandiera (ACE - Bianca) + 旗 (ACE - 白) diff --git a/addons/dogtags/stringtable.xml b/addons/dogtags/stringtable.xml index 216ece6f78..c53ce132e8 100644 --- a/addons/dogtags/stringtable.xml +++ b/addons/dogtags/stringtable.xml @@ -82,6 +82,7 @@ Onscreen display for checking dogtags 在畫面中顯示檢查兵籍牌 + 確認中のドッグタグを画面上で表示します diff --git a/addons/pylons/stringtable.xml b/addons/pylons/stringtable.xml index f40af57651..8a15c5ebad 100644 --- a/addons/pylons/stringtable.xml +++ b/addons/pylons/stringtable.xml @@ -96,36 +96,42 @@ 启用宙斯导弹挂架菜单 啟用派龍架選單給宙斯 Abilita Menù Piloni da Zeus + Zeus でパイロン メニューを有効化 Enables use of the zeus module. 允许启用宙斯模组 允啟使用宙斯模塊 Abilita l'uso dal modulo di Zeus + Zeus モジュールでパイロン メニューを利用できます。 Enable Pylons Menu from Ammo Trucks 启用弹药车导弹挂架菜单 啟用從彈藥卡車使用派龍架選單 Abilita Menù Piloni da mezzi rifornimento munizioni + 弾薬トラックからパイロン メニューを有効化 Enables use of pylons menu from ammo trucks. 允许在弹药车上启用导弹挂架菜单 允許從彈藥卡車使用派龍架選單 Abilita l'uso del Menù Piloni da mezzi rifornimento munizioni + 弾薬給弾トラックからパイロン メニューを利用できます。 This aircraft doesn't have pylons 这架飞机没有导弹挂架 這架飛機沒有派龍架 Questo aereo non ha piloni + 航空機にパイロンがありません Configure pylons module is disabled for zeus 宙斯模组的导弹挂架已禁用 宙斯模塊的派龍架設定已被禁用 Il modulo per configurare i piloni da Zeus è disabilitato + Zeus のパイロン モジュールを無効化 Rearm New Pylons @@ -174,7 +180,7 @@ The distance an aircraft needs to be from a rearm vehicle. - 補給車両から航空機までの必要な距離。 + 航空機と補給車両との間に必要な距離です。 La distanza necessaria per un aereo da un veicolo di riarmo. 設定飛機必須距離整補載具多少公尺才能進行彈藥整補 设定飞机必须距离整装载具多少公尺才能进行弹药整装。 diff --git a/addons/realisticnames/stringtable.xml b/addons/realisticnames/stringtable.xml index 25f9d749f9..59b79a3155 100644 --- a/addons/realisticnames/stringtable.xml +++ b/addons/realisticnames/stringtable.xml @@ -2626,12 +2626,14 @@ Jeep Wrangler (SPG-9) "牧马人"吉普车(SPG-9火箭筒) "牧馬人"吉普車 (SPG-9火箭筒) + ジープ ラングラー (SPG-9) Jeep Wrangler (LMG) Jeep Wrangler (LMG) "牧马人"吉普车(轻机枪) "牧馬人"吉普車 (輕機槍) + ジープ ラングラー (LMG) Cessna TTx @@ -3210,12 +3212,14 @@ LSV Mk. II (M134) 輕型突擊車2式 (M134迷你機炮) 轻型突击车2式 (M134迷你机炮) + LSV Mk. II (M134) LSV Mk. II (Metis-M) LSV Mk. II (Metis-M) 轻型突击车2式 ("麦士蒂索人"-M型反坦克导弹) 輕型突擊車2式 ("麥士蒂索人"-M型反坦克導彈) + LSV Mk. II (メチス-M) LSV Mk. II @@ -3223,18 +3227,21 @@ LSV Mk. II 輕型突擊車2式 轻型突击车2式 + LSV Mk. II Rooikat 120 Rooikat 120 "狞猫"120主炮轮式装甲车 "獰貓"120主炮輪式裝甲車 + ルーイカット 120 Rooikat 120 UP Rooikat 120 UP "狞猫"120主炮轮式装甲车 (城市版) "獰貓"120主炮輪式裝甲車 (城市版) + ルーイカット 120 UP T-14 Armata @@ -3242,6 +3249,7 @@ Т-14 Армата T-14"阿玛塔"主战坦克 T-14"阿瑪塔"主戰坦克 + T-14 アルマータ T-14K Armata @@ -3249,173 +3257,203 @@ Т-14К Армата T-14K"阿玛塔"主战坦克 T-14K"阿瑪塔"主戰坦克 + T-14K アルマータ Wiesel 2 Ozelot (AA) Wiesel 2 Ozelot (FlaRaWaTrg) "鼬鼠"2装甲车 (防空) "鼬鼠"2裝甲車 (防空) + ウィーゼル 2 オゼロット (対空) Wiesel 2 (ATGM) Wiesel 2 (PzAbw) "鼬鼠"2装甲车 (反坦导弹) "鼬鼠"2裝甲車 (反坦導彈) + ウィーゼル 2 (ATGM) Wiesel 2 (MK20) Wiesel 2 (MK20) "鼬鼠"2装甲车 (MK20机炮) "鼬鼠"2裝甲車 (MK20機炮) + ウィーゼル 2 (MK20) Wiesel 2 RFCV (Radar) Wiesel 2 AFF (Radar) "鼬鼠"2装甲车 (雷达) "鼬鼠"2裝甲車 (雷達) + ウィーゼル 2 (レーダー) Leupold Mark 4 HAMR Leupold Mark 4 HAMR Leupold Mark 4 HAMR Leupold Mark 4 HAMR + Leupold Mark 4 HAMR Leupold Mark 4 HAMR (Khaki) Leupold Mark 4 HAMR (Khaki) Leupold Mark 4 HAMR (卡其色) Leupold Mark 4 HAMR (卡其色) + Leupold Mark 4 HAMR (土埃) ELCAN SpecterOS (Tan) ELCAN SpecterOS (Beige) ELCAN SpecterOS (黃褐色) ELCAN SpecterOS (黄褐色) + ELCAN SpecterOS (黄褐) ELCAN SpecterOS (Black) ELCAN SpecterOS (Schwarz) ELCAN SpecterOS (黑色) ELCAN SpecterOS (黑色) + ELCAN SpecterOS (黒) ELCAN SpecterOS (Green Hex) ELCAN SpecterOS (綠色數位蜂巢迷彩) ELCAN SpecterOS (绿色数位蜂巢迷彩) + ELCAN SpecterOS (緑蜂巣) SIG BRAVO4 / ROMEO3 (Black) SIG BRAVO4 / ROMEO3 (Schwarz) SIG BRAVO4 / ROMEO3 (黑色) SIG BRAVO4 / ROMEO3 (黑色) + SIG BRAVO4 / ROMEO3 (黒) SIG BRAVO4 / ROMEO3 (Khaki) SIG BRAVO4 / ROMEO3 (Khaki) SIG BRAVO4 / ROMEO3 (卡其色) SIG BRAVO4 / ROMEO3 (卡其色) + SIG BRAVO4 / ROMEO3 (土埃) SIG BRAVO4 / ROMEO3 (Sand) SIG BRAVO4 / ROMEO3 (Beige) SIG BRAVO4 / ROMEO3 (沙色) SIG BRAVO4 / ROMEO3 (沙色) + SIG BRAVO4 / ROMEO3 (砂地) Nightforce NXS Nightforce NXS Nightforce NXS + Nightforce NXS Nightforce NXS (Green Hex) Nightforce NXS (綠色數位蜂巢迷彩) Nightforce NXS (绿色数位蜂巢迷彩) + Nightforce NXS (緑蜂巣)/Japanese> Nightforce NXS (Jungle) Nightforce NXS (Dschungel) Nightforce NXS (叢林色) Nightforce NXS (丛林色) + Nightforce NXS (熱帯)Japanese> Burris XTR II Burris XTR II Burris XTR II + Burris XTR II Burris XTR II (Green Hex) Burris XTR II (綠色數位蜂巢迷彩) Burris XTR II (绿色数位蜂巢迷彩) + Burris XTR II (緑蜂巣) EOTech XPS3 (Tan) EOTech XPS3 (Beige) EOTech XPS3 (黃褐色) EOTech XPS3 (黄褐色) + EOTech XPS3 (黄褐) EOTech XPS3 (Black) EOTech XPS3 (Schwarz) EOTech XPS3 (黑色) EOTech XPS3 (黑色) + EOTech XPS3 (黒) EOTech XPS3 (Khaki) EOTech XPS3 (Khaki) EOTech XPS3 (卡其色) EOTech XPS3 (卡其色) + EOTech XPS3 (土埃) EOTech XPS3 SMG (Tan) EOTech XPS3 SMG (Beige) EOTech XPS3 SMG (黃褐色) EOTech XPS3 SMG (黄褐色) + EOTech XPS3 SMG (黄褐) EOTech XPS3 SMG (Black) EOTech XPS3 SMG (Schwarz) EOTech XPS3 SMG (黑色) EOTech XPS3 SMG (黑色) + EOTech XPS3 SMG (黒) EOTech XPS3 SMG (Khaki) EOTech XPS3 SMG (Khaki) EOTech XPS3 SMG (卡其色) EOTech XPS3 SMG (卡其色) + EOTech XPS3 SMG (土埃) IOR-Valdada Pitbull 2 IOR-Valdada Pitbull 2 IOR-Valdada Pitbull 2 + IOR-Valdada ピットブル 2 Burris FastFire 2 Burris FastFire 2 Burris FastFire 2 + Burris ファストファイア 2 C-More Railway (Red) C-More Railway (Rot) C-More Railway (紅色) C-More Railway (红色) + C-More レイルウェイ (赤) C-More Railway (Green) C-More Railway (Grün) C-More Railway (綠色) C-More Railway (绿色) + C-More レイルウェイ (緑) C-More Railway SMG (Red) C-More Railway SMG (Rot) C-More Railway SMG (紅色) C-More Railway SMG (红色) + C-More レイルウェイ SMG (赤) C-More Railway SMG (Green) C-More Railway SMG (Grün) C-More Railway SMG (綠色) C-More Railway SMG (绿色) + C-More レイルウェイ SMG (緑) diff --git a/addons/vehicles/stringtable.xml b/addons/vehicles/stringtable.xml index 076c96c193..b51e262bdc 100644 --- a/addons/vehicles/stringtable.xml +++ b/addons/vehicles/stringtable.xml @@ -36,6 +36,7 @@ Speed Limit Limite di velocità + 速度制限 Speed Limiter @@ -56,10 +57,12 @@ Increase Speed Limit Aumenta limite di velocità + 速度制限を増やす Decrease Speed Limit Diminuisce limite di velocità + 速度制限を減らす diff --git a/addons/zeus/stringtable.xml b/addons/zeus/stringtable.xml index 76b0add7d2..a39fd2f6a6 100644 --- a/addons/zeus/stringtable.xml +++ b/addons/zeus/stringtable.xml @@ -971,6 +971,7 @@ Select cargo to unload 選擇要卸載的貨物 Scegli il carico da scaricare + 選択したカーゴを降ろす Task Radius From 2d5892f2852294765016a98568b6b8ae88470244 Mon Sep 17 00:00:00 2001 From: Dystopian Date: Mon, 6 Aug 2018 19:27:14 +0300 Subject: [PATCH 192/235] Fix facility is like vehicle (#6478) --- .../functions/fnc_isInRepairFacility.sqf | 29 ++++++++++--------- 1 file changed, 16 insertions(+), 13 deletions(-) diff --git a/addons/repair/functions/fnc_isInRepairFacility.sqf b/addons/repair/functions/fnc_isInRepairFacility.sqf index ffc7c26c26..794f899522 100644 --- a/addons/repair/functions/fnc_isInRepairFacility.sqf +++ b/addons/repair/functions/fnc_isInRepairFacility.sqf @@ -21,19 +21,22 @@ TRACE_1("params",_object); private _position = getPosASL _object; private _isInBuilding = false; -private _objects = (lineIntersectsWith [_object modelToWorldVisual [0, 0, (_position select 2)], _object modelToWorldVisual [0, 0, (_position select 2) +10], _object]); -{ - if (_x getVariable ["ACE_isRepairFacility", getNumber (configFile >> "CfgVehicles" >> typeOf _x >> QGVAR(canRepair))] > 0) exitWith { +private _checkObject = { + if ( + _x getVariable ["ACE_isRepairFacility", getNumber (configFile >> "CfgVehicles" >> typeOf _x >> QGVAR(canRepair))] > 0 + && {!(_x isKindOf "AllVehicles")} // check if it's not repair vehicle + && {alive _x} + ) exitWith { _isInBuilding = true; }; -} forEach _objects; - -if (!_isInBuilding) then { - _objects = position _object nearObjects 7.5; - { - if (_x getVariable ["ACE_isRepairFacility", getNumber (configFile >> "CfgVehicles" >> typeOf _x >> QGVAR(canRepair))] > 0) exitWith { - _isInBuilding = true; - }; - } forEach _objects; }; -_isInBuilding; + +private _objects = (lineIntersectsWith [_object modelToWorldVisual [0, 0, (_position select 2)], _object modelToWorldVisual [0, 0, (_position select 2) +10], _object]); +_checkObject forEach _objects; + +if (_isInBuilding) exitWith {true}; + +_objects = position _object nearObjects 7.5; +_checkObject forEach _objects; + +_isInBuilding From 9d24cebb9b316eeb933b18d466ebe80c5e36a66b Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Mon, 6 Aug 2018 11:49:21 -0500 Subject: [PATCH 193/235] Build 35 --- addons/main/script_version.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/main/script_version.hpp b/addons/main/script_version.hpp index fc08a85ace..f719fcf8fe 100644 --- a/addons/main/script_version.hpp +++ b/addons/main/script_version.hpp @@ -1,4 +1,4 @@ #define MAJOR 3 #define MINOR 12 #define PATCHLVL 3 -#define BUILD 34 +#define BUILD 35 From f6737f0c6e7f758b30d6bc7030b85d2535d8a3ae Mon Sep 17 00:00:00 2001 From: jonpas Date: Wed, 8 Aug 2018 10:56:33 +0200 Subject: [PATCH 194/235] Bump required Arma 3 version to 1.84 and CBA to 3.8.0 (#6508) --- addons/main/script_mod.hpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/addons/main/script_mod.hpp b/addons/main/script_mod.hpp index d24e2f7d9f..65aa94f8fa 100644 --- a/addons/main/script_mod.hpp +++ b/addons/main/script_mod.hpp @@ -9,8 +9,8 @@ #define VERSION_AR MAJOR,MINOR,PATCHLVL,BUILD // MINIMAL required version for the Mod. Components can specify others.. -#define REQUIRED_VERSION 1.82 -#define REQUIRED_CBA_VERSION {3,6,0} +#define REQUIRED_VERSION 1.84 +#define REQUIRED_CBA_VERSION {3,8,0} #ifdef COMPONENT_BEAUTIFIED #define COMPONENT_NAME QUOTE(ACE3 - COMPONENT_BEAUTIFIED) From 48c3900507b3b88a4ebf950fc49606f2a07844a6 Mon Sep 17 00:00:00 2001 From: jonpas Date: Wed, 8 Aug 2018 14:17:22 +0200 Subject: [PATCH 195/235] Fix Japanese stringtable (#6511) --- addons/realisticnames/stringtable.xml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/addons/realisticnames/stringtable.xml b/addons/realisticnames/stringtable.xml index 59b79a3155..b55d8f2d86 100644 --- a/addons/realisticnames/stringtable.xml +++ b/addons/realisticnames/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -3333,7 +3333,7 @@ SIG BRAVO4 / ROMEO3 (Khaki) SIG BRAVO4 / ROMEO3 (卡其色) SIG BRAVO4 / ROMEO3 (卡其色) - SIG BRAVO4 / ROMEO3 (土埃) + SIG BRAVO4 / ROMEO3 (土埃) SIG BRAVO4 / ROMEO3 (Sand) @@ -3352,14 +3352,14 @@ Nightforce NXS (Green Hex) Nightforce NXS (綠色數位蜂巢迷彩) Nightforce NXS (绿色数位蜂巢迷彩) - Nightforce NXS (緑蜂巣)/Japanese> + Nightforce NXS (緑蜂巣) Nightforce NXS (Jungle) Nightforce NXS (Dschungel) Nightforce NXS (叢林色) Nightforce NXS (丛林色) - Nightforce NXS (熱帯)Japanese> + Nightforce NXS (熱帯) Burris XTR II From cd980dc28dfa59976f76ad548a6287e68d324d27 Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Thu, 9 Aug 2018 09:42:36 -0500 Subject: [PATCH 196/235] 3.12.3 - Build 36 --- addons/main/script_version.hpp | 2 +- docs/_config.yml | 8 ++++---- docs/_config_dev.yml | 8 ++++---- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/addons/main/script_version.hpp b/addons/main/script_version.hpp index f719fcf8fe..54f90d76f7 100644 --- a/addons/main/script_version.hpp +++ b/addons/main/script_version.hpp @@ -1,4 +1,4 @@ #define MAJOR 3 #define MINOR 12 #define PATCHLVL 3 -#define BUILD 35 +#define BUILD 36 diff --git a/docs/_config.yml b/docs/_config.yml index 18cefe6347..2ae92cadb6 100644 --- a/docs/_config.yml +++ b/docs/_config.yml @@ -9,16 +9,16 @@ ace: version: major: 3 minor: 12 - patch: 2 - build: 33 + patch: 3 + build: 36 acex: githubUrl: https://github.com/acemod/ACEX version: major: 3 minor: 3 - patch: 0 - build: 6 + patch: 1 + build: 8 markdown: kramdown diff --git a/docs/_config_dev.yml b/docs/_config_dev.yml index 0cf7b5256e..09dddceed8 100644 --- a/docs/_config_dev.yml +++ b/docs/_config_dev.yml @@ -9,16 +9,16 @@ ace: version: major: 3 minor: 12 - patch: 1 - build: 31 + patch: 3 + build: 36 acex: githubUrl: https://github.com/acemod/ACEX version: major: 3 minor: 3 - patch: 0 - build: 6 + patch: 1 + build: 8 markdown: kramdown From 0696875175de3d5b060a0ad5ef8d4927212e9826 Mon Sep 17 00:00:00 2001 From: Josuan Albin Date: Thu, 9 Aug 2018 18:01:01 +0200 Subject: [PATCH 197/235] Wiki - Add new Arsenal EHs and stat indexes to arsenal framework doc (#6497) * Add new EHs and stat tab index to wiki * Add added-in collumn for new arsenal EHs --- docs/wiki/framework/arsenal-framework.md | 45 ++++++++++++++++++++++-- 1 file changed, 42 insertions(+), 3 deletions(-) diff --git a/docs/wiki/framework/arsenal-framework.md b/docs/wiki/framework/arsenal-framework.md index eb30728169..cdaae1e398 100644 --- a/docs/wiki/framework/arsenal-framework.md +++ b/docs/wiki/framework/arsenal-framework.md @@ -224,13 +224,48 @@ For config added stats the classname is used, for function added ones the string */ ``` +### 5.4 Stat tab numbers + +Left tabs: + +| Index | Name | +| ---- | ---- | +| 0 | Primary | +| 1 | Handgun | +| 2 | Launcher | +| 3 | Uniform | +| 4 | Vests | +| 5 | Backpacks | +| 6 | Headgear | +| 7 | Goggles | +| 8 | NVGs | +| 9 | Binoculars | +| 10 | Map | +| 11 | GPS | +| 12 | Radio | +| 13 | Compass | +| 14 | Watch | + +Right tabs: + +| Index | Name | +| ---- | ---- | +| 0 | Optics | +| 1 | Side accs | +| 2 | Muzzle | +| 3 | Bipod | +| 4 | Mag | +| 5 | Throw | +| 6 | Put | +| 7 | Misc | + #### 6.0 Eventhandlers All are local. -| Name | Arguments | -| ------------- | ------------- | -| ace_arsenal_displayOpened | Arsenal display (DISPLAY) | +| Name | Arguments | Added in | +| ------------- | ------------- | ------------- | +| ace_arsenal_displayOpened | Arsenal display (DISPLAY) | | ace_arsenal_displayClosed | None | | ace_arsenal_leftPanelFilled | Arsenal display (DISPLAY), current left panel IDC (SCALAR), current right panel IDC (SCALAR) | | ace_arsenal_rightPanelFilled | Arsenal display (DISPLAY), current left panel IDC (SCALAR), current right panel IDC (SCALAR) | @@ -241,3 +276,7 @@ All are local. | ace_arsenal_cargoChanged | Arsenal display (DISPLAY), item (STRING), add or remove (BOOL), shiftState (BOOL) | | ace_arsenal_loadoutImported | Arsenal display (DISPLAY), (import list (BOOL) | | ace_arsenal_loadoutExported | Arsenal display (DISPLAY), export list (BOOL) | +| ace_arsenal_loadoutsDisplayOpened | loadouts screen display (DISPLAY) | 3.12.3 | +| ace_arsenal_loadoutsDisplayClosed | None | 3.12.3 | +| ace_arsenal_loadoutsTabChanged | loadouts screen display (DISPLAY), tab control (CONTROL) | 3.12.3 | +| ace_arsenal_loadoutsListFilled | loadouts screen display (DISPLAY), tab control (CONTROL) | 3.12.3 | From d8f0de1a5d3f6f8985d290b8ecf64469d39768b4 Mon Sep 17 00:00:00 2001 From: Cuel Date: Thu, 9 Aug 2018 18:01:35 +0200 Subject: [PATCH 198/235] acex fortify deploy handler and event docs (#6282) --- docs/wiki/frameworkx/fortify-framework.md | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/docs/wiki/frameworkx/fortify-framework.md b/docs/wiki/frameworkx/fortify-framework.md index 547dd180c7..045bc30e1a 100644 --- a/docs/wiki/frameworkx/fortify-framework.md +++ b/docs/wiki/frameworkx/fortify-framework.md @@ -64,6 +64,21 @@ class ACEX_Fortify_Presets { ``` Then you will have to set the mission preset to `myMissionObjects` with `#fortify blufor myMissionObjects` to enable it. + +## 1.3 Adding custom deploy handlers + +A custom deploy handler allows missions makers to decide if an object can be placed or not. + +To verify that an object isn't above a certain terrain height we can check the heigt of the object before it is confirmed as placed. Returning `false` from the code block means that placement is not allowed. + +```sqf +[{ + params ["_unit", "_object", "_cost"]; + private _return = (getPosATL _object) select 2 < 1; + _return +}] call acex_fortify_fnc_addDeployHandler; +``` + ## 2. Events @@ -73,3 +88,4 @@ Event Name | Passed Parameter(s) | Locality | Description ---------- | ----------- | ------------------- | -------- `acex_fortify_objectPlaced` | [player, side, objectPlaced] | Global | Foritfy object placed `acex_fortify_objectDeleted` | [player, side, objectDeleted] | Global | Foritfy object deleted +`acex_fortify_onDeployStart` | [player, object, cost] | Local | Player starts placing object From ced45b2a4dafa3559a6c82bb3e32f33db3747b9f Mon Sep 17 00:00:00 2001 From: Thomas Kooi Date: Mon, 13 Aug 2018 12:29:22 +0200 Subject: [PATCH 199/235] Remove play with six launch method (#6528) PWS is no longer active. --- docs/wiki/user/installation-guide.md | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/docs/wiki/user/installation-guide.md b/docs/wiki/user/installation-guide.md index 788e1745d5..95ae7dcc1d 100644 --- a/docs/wiki/user/installation-guide.md +++ b/docs/wiki/user/installation-guide.md @@ -65,7 +65,7 @@ Only use the optional components that correspond with your mod-pack. ### 6.1 Swifty -[Swifty](http://getswifty.net/){:target="_blank"} +[Swifty](https://getswifty.net/){:target="_blank"} - tbd ### 6.2 Arma3Sync @@ -79,8 +79,3 @@ Only use the optional components that correspond with your mod-pack. Arma3Sync Launcher - Click `Start Game` -### 6.3 Play withSIX - -[Play withSIX](http://withsix.com/p){:target="_blank"} - -- tbd From 48b459240d9901b629402e0fdce824964370e092 Mon Sep 17 00:00:00 2001 From: jonpas Date: Fri, 17 Aug 2018 02:41:51 +0200 Subject: [PATCH 200/235] Update No Uniform Restrictions for Arma 3 v1.84 (#6513) --- optionals/nouniformrestrictions/CfgVehicles.hpp | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/optionals/nouniformrestrictions/CfgVehicles.hpp b/optionals/nouniformrestrictions/CfgVehicles.hpp index 4a39a2436f..8d10f3f65f 100644 --- a/optionals/nouniformrestrictions/CfgVehicles.hpp +++ b/optionals/nouniformrestrictions/CfgVehicles.hpp @@ -20,6 +20,8 @@ class CfgVehicles { class O_Soldier_diver_base_F; class I_G_Sharpshooter_F; class B_Soldier_F; + class I_G_Soldier_LAT2_F; + class I_crew_F; class Civilian_F: Civilian { modelSides[] = {6}; @@ -234,6 +236,9 @@ class CfgVehicles { class I_Protagonist_VR_F: I_Soldier_base_F { modelSides[] = {6}; }; + class C_Protagonist_VR_F: C_man_1 { + modelSides[] = {6}; + }; class B_G_Sharpshooter_F: I_G_Sharpshooter_F { modelSides[] = {6}; }; @@ -258,4 +263,16 @@ class CfgVehicles { class C_IDAP_Man_Base_F: Civilian_F { modelSides[] = {6}; }; + class O_A_soldier_base_F: O_officer_F { + modelSides[] = {6}; + }; + class B_G_Soldier_LAT2_F: I_G_Soldier_LAT2_F { + modelSides[] = {6}; + }; + class O_G_Soldier_LAT2_F: I_G_Soldier_LAT2_F { + modelSides[] = {6}; + }; + class I_Story_Crew_F: I_crew_F { + modelSides[] = {6}; + }; }; From d8b54a8ef04ff8a078f66d6c28c60342f0268b05 Mon Sep 17 00:00:00 2001 From: Dystopian Date: Fri, 17 Aug 2018 04:52:13 +0300 Subject: [PATCH 201/235] Fix switching non-local portable light on (#6522) --- addons/interaction/CfgVehicles.hpp | 8 ++--- addons/interaction/XEH_PREP.hpp | 1 - addons/interaction/XEH_postInit.sqf | 29 +++++++++------ .../interaction/functions/fnc_switchLamp.sqf | 35 ------------------- addons/interaction/script_component.hpp | 2 ++ 5 files changed, 24 insertions(+), 51 deletions(-) delete mode 100644 addons/interaction/functions/fnc_switchLamp.sqf diff --git a/addons/interaction/CfgVehicles.hpp b/addons/interaction/CfgVehicles.hpp index 06cf266b78..ed208b0435 100644 --- a/addons/interaction/CfgVehicles.hpp +++ b/addons/interaction/CfgVehicles.hpp @@ -665,14 +665,14 @@ class CfgVehicles { class GVAR(TurnOn) { displayName = CSTRING(TurnOn); icon = "\A3\Ui_f\data\IGUI\Cfg\VehicleToggles\LightsIconOn_ca.paa"; - condition = QUOTE(alive _target && !(_target getVariable [ARR_2('ACE_lampOn',true)])); - statement = QUOTE(_target call DFUNC(switchLamp)); + condition = QUOTE(alive _target && !(_target getVariable [ARR_2(QQGVAR(isLightOn),true)])); + statement = QUOTE([ARR_3(QQGVAR(setLight),[ARR_2(_target,true)],_target)] call CBA_fnc_targetEvent); }; class GVAR(TurnOff) { displayName = CSTRING(TurnOff); icon = "\A3\ui_f\data\igui\cfg\actions\ico_cpt_land_OFF_ca.paa"; - condition = QUOTE(alive _target && _target getVariable [ARR_2('ACE_lampOn',true)]); - statement = QUOTE(_target call DFUNC(switchLamp)); + condition = QUOTE(alive _target && _target getVariable [ARR_2(QQGVAR(isLightOn),true)]); + statement = QUOTE([ARR_3(QQGVAR(setLight),[ARR_2(_target,false)],_target)] call CBA_fnc_targetEvent); }; }; }; diff --git a/addons/interaction/XEH_PREP.hpp b/addons/interaction/XEH_PREP.hpp index 06dd7acbe0..ea6c275f36 100644 --- a/addons/interaction/XEH_PREP.hpp +++ b/addons/interaction/XEH_PREP.hpp @@ -43,4 +43,3 @@ PREP(canPush); PREP(push); PREP(canFlip); -PREP(switchLamp); diff --git a/addons/interaction/XEH_postInit.sqf b/addons/interaction/XEH_postInit.sqf index 3604f94511..4b97c408aa 100644 --- a/addons/interaction/XEH_postInit.sqf +++ b/addons/interaction/XEH_postInit.sqf @@ -18,17 +18,6 @@ ACE_Modifier = 0; _unit doMove _position; }] call CBA_fnc_addEventHandler; -[QGVAR(setLampOn), { - params ["_lamp", "_hitPointsDamage", "_disabledLampDMG"]; - {if((_x select 1) == _disabledLampDMG) then {_lamp setHit [_x select 0, 0];};nil} count _hitPointsDamage; -}] call CBA_fnc_addEventHandler; - -[QGVAR(setLampOff), { - params ["_lamp", "_hitPointsDamage", "_disabledLampDMG"]; - {_lamp setHit [_x select 0, (_x select 1) max _disabledLampDMG];nil} count _hitPointsDamage; -}] call CBA_fnc_addEventHandler; - - [QGVAR(flip), { params ["_vehicle"]; private _position = getPosATL _vehicle; @@ -36,6 +25,24 @@ ACE_Modifier = 0; _vehicle setPosATL _position; }] call CBA_fnc_addEventHandler; +[QGVAR(setLight), { + params ["_lamp", "_state"]; + private _hitpoints = _lamp call EFUNC(common,getReflectorsWithSelections) select 1; + { + private _damage = _lamp getHit _x; + if (_state) then { + if (_damage == DISABLED_LAMP_DAMAGE) then { + _lamp setHit [_x, 0]; + }; + } else { + if (_damage < DISABLED_LAMP_DAMAGE) then { + _lamp setHit [_x, DISABLED_LAMP_DAMAGE]; + }; + }; + } forEach _hitpoints; + _lamp setVariable [QGVAR(isLightOn), _state, true]; +}] call CBA_fnc_addEventHandler; + [QGVAR(setCollisionLight), { (_this select 0) setCollisionLight (_this select 1); }] call CBA_fnc_addEventHandler; diff --git a/addons/interaction/functions/fnc_switchLamp.sqf b/addons/interaction/functions/fnc_switchLamp.sqf deleted file mode 100644 index f1d9509de8..0000000000 --- a/addons/interaction/functions/fnc_switchLamp.sqf +++ /dev/null @@ -1,35 +0,0 @@ -/* - * Author: SzwedzikPL - * Turn on/off lamp - * - * Arguments: - * 0: Lamp - * - * Return Value: - * None - * - * Example: - * lamp call ace_interaction_fnc_switchLamp - * - * Public: No - */ -#include "script_component.hpp" - -#define DISABLED_LAMP_DMG 0.95 - -params ["_lamp"]; - -_isOn = _lamp getVariable ["ACE_lampOn", true]; -private _reflectors = "true" configClasses (configfile >> "CfgVehicles" >> (typeof _lamp) >> "Reflectors"); -private _hitPointsDamage = []; -{ - private _hitPoint = getText (_x >> "hitpoint"); - _hitPointsDamage pushback [_hitPoint, _lamp getHit _hitPoint]; - nil -} count _reflectors; - -//if lamp is on turn it off -private _eventName = [QGVAR(setLampOn), QGVAR(setLampOff)] select _isOn; -[_eventName, [_lamp, _hitPointsDamage, DISABLED_LAMP_DMG], [_lamp]] call CBA_fnc_targetEvent; - -_lamp setVariable ["ACE_lampOn", !_isOn, true]; diff --git a/addons/interaction/script_component.hpp b/addons/interaction/script_component.hpp index bd5484992f..e94733c456 100644 --- a/addons/interaction/script_component.hpp +++ b/addons/interaction/script_component.hpp @@ -17,3 +17,5 @@ #include "\z\ace\addons\main\script_macros.hpp" #define MACRO_DOOR_REACH_DISTANCE (AGLToASL positionCameraToWorld [0,0,0] vectorDistance AGLToASL (ACE_player modelToWorld (ACE_player selectionPosition "Head"))) + 2 + +#define DISABLED_LAMP_DAMAGE 0.95 From 8d83800f376ff6382952b83c4d424296012ae81d Mon Sep 17 00:00:00 2001 From: Neviothr Date: Thu, 23 Aug 2018 18:57:23 +0300 Subject: [PATCH 202/235] Fix missing semicolon --- extras/CfgWeaponsReference.hpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/extras/CfgWeaponsReference.hpp b/extras/CfgWeaponsReference.hpp index 15df01e306..7afe3164e8 100644 --- a/extras/CfgWeaponsReference.hpp +++ b/extras/CfgWeaponsReference.hpp @@ -1559,7 +1559,7 @@ class CfgWeapons ACE_barrelTwist=0.0; ACE_twistDirection=0; ACE_barrelLength=429.26; - } + }; class CUP_arifle_Mk16_CQC : Rifle_Base_F { ACE_barrelTwist=177.8; @@ -1891,4 +1891,4 @@ class CfgWeapons ACE_twistDirection=9.45; ACE_barrelLength=414.02; }; -}; \ No newline at end of file +}; From 16a3bd096ace070a9a0df51ddfc9cd832fc96933 Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Mon, 27 Aug 2018 17:13:38 -0500 Subject: [PATCH 203/235] RHS GREF Compat - MG42 (#6552) Close #6550 --- optionals/compat_rhs_gref3/CfgMagazines.hpp | 9 +++++++++ optionals/compat_rhs_gref3/CfgWeapons.hpp | 3 +++ optionals/compat_rhs_gref3/config.cpp | 1 + 3 files changed, 13 insertions(+) create mode 100644 optionals/compat_rhs_gref3/CfgMagazines.hpp diff --git a/optionals/compat_rhs_gref3/CfgMagazines.hpp b/optionals/compat_rhs_gref3/CfgMagazines.hpp new file mode 100644 index 0000000000..f5e84fca6c --- /dev/null +++ b/optionals/compat_rhs_gref3/CfgMagazines.hpp @@ -0,0 +1,9 @@ +class CfgMagazines { + class CA_Magazine; + class rhsgref_50Rnd_792x57_SmE_drum: CA_Magazine { // drum, but still just a belt + ACE_isBelt = 1; + }; + class rhsgref_296Rnd_792x57_SmE_belt: CA_Magazine { + ACE_isBelt = 1; + }; +}; diff --git a/optionals/compat_rhs_gref3/CfgWeapons.hpp b/optionals/compat_rhs_gref3/CfgWeapons.hpp index 7abf45e9a4..f7408af2ba 100644 --- a/optionals/compat_rhs_gref3/CfgWeapons.hpp +++ b/optionals/compat_rhs_gref3/CfgWeapons.hpp @@ -77,4 +77,7 @@ class CfgWeapons { ACE_barrelTwist=240; ACE_barrelLength=658; }; + class rhs_weap_mg42_base: Rifle_Base_F { + ACE_Overheating_allowSwapBarrel = 1; + }; }; diff --git a/optionals/compat_rhs_gref3/config.cpp b/optionals/compat_rhs_gref3/config.cpp index b7cef32194..60b5032dd1 100644 --- a/optionals/compat_rhs_gref3/config.cpp +++ b/optionals/compat_rhs_gref3/config.cpp @@ -14,4 +14,5 @@ class CfgPatches { }; #include "CfgAmmo.hpp" +#include "CfgMagazines.hpp" #include "CfgWeapons.hpp" From 04aeaa0912d6cf6c831e257bdefacf96599e629f Mon Sep 17 00:00:00 2001 From: alganthe Date: Fri, 31 Aug 2018 18:20:55 +0200 Subject: [PATCH 204/235] Add support for mission defined unitInsignias --- addons/arsenal/functions/fnc_fillLeftPanel.sqf | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/addons/arsenal/functions/fnc_fillLeftPanel.sqf b/addons/arsenal/functions/fnc_fillLeftPanel.sqf index 357b1594e0..51b16e2412 100644 --- a/addons/arsenal/functions/fnc_fillLeftPanel.sqf +++ b/addons/arsenal/functions/fnc_fillLeftPanel.sqf @@ -162,6 +162,16 @@ switch true do { { ["CfgUnitInsignia", configName _x, _ctrlPanel, "texture"] call FUNC(addListBoxItem); } foreach ("true" configClasses (configFile >> "CfgUnitInsignia")); + + { + private _displayName = getText (_x >> "displayName"); + private _className = configName _x; + private _lbAdd = _ctrlPanel lbAdd _displayName; + + _ctrlPanel lbSetData [_lbAdd, _className]; + _ctrlPanel lbSetPicture [_lbAdd, getText (_x >> "texture")]; + _ctrlPanel lbSetTooltip [_lbAdd, format ["%1\n%2", _displayName, _className]]; + } foreach ("true" configClasses (missionConfigFile >> "CfgUnitInsignia")); }; }; }; From d13641d670bd02364908f30cdb91c15479787f44 Mon Sep 17 00:00:00 2001 From: alganthe Date: Fri, 31 Aug 2018 18:35:12 +0200 Subject: [PATCH 205/235] Add author support for mission defined unitInsignias --- addons/arsenal/functions/fnc_onSelChangedLeft.sqf | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/addons/arsenal/functions/fnc_onSelChangedLeft.sqf b/addons/arsenal/functions/fnc_onSelChangedLeft.sqf index 6c1e76a239..be49a6c7ac 100644 --- a/addons/arsenal/functions/fnc_onSelChangedLeft.sqf +++ b/addons/arsenal/functions/fnc_onSelChangedLeft.sqf @@ -412,7 +412,14 @@ switch (GVAR(currentLeftPanel)) do { call FUNC(showItem); TOGGLE_RIGHT_PANEL_HIDE - [_display, _control, _curSel, (configFile >> "CfgUnitInsignia" >> _item)] call FUNC(itemInfo); + + private _unitInsigniaConfig = (configFile >> "CfgUnitInsignia" >> _item); + + if (configName _unitInsigniaConfig isEqualTo "") then { + [_display, _control, _curSel, (missionConfigFile >> "CfgUnitInsignia" >> _item)] call FUNC(itemInfo); + } else { + [_display, _control, _curSel, _unitInsigniaConfig] call FUNC(itemInfo); + }; }; }; From 628878d0741167f369875e2d2bb5d888f49df267 Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Sun, 2 Sep 2018 21:59:32 -0500 Subject: [PATCH 206/235] Repair - Fix isInRepairFacility for buildings at height Fix #6560 --- addons/repair/functions/fnc_isInRepairFacility.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/repair/functions/fnc_isInRepairFacility.sqf b/addons/repair/functions/fnc_isInRepairFacility.sqf index 794f899522..c27fd8638e 100644 --- a/addons/repair/functions/fnc_isInRepairFacility.sqf +++ b/addons/repair/functions/fnc_isInRepairFacility.sqf @@ -36,7 +36,7 @@ _checkObject forEach _objects; if (_isInBuilding) exitWith {true}; -_objects = position _object nearObjects 7.5; +_objects = _object nearObjects 7.5; _checkObject forEach _objects; _isInBuilding From e592717c30686cb69f3fec7f813d010f26331ba3 Mon Sep 17 00:00:00 2001 From: commy2 Date: Mon, 10 Sep 2018 15:15:59 +0200 Subject: [PATCH 207/235] make hide stamina setting make bar reappear when changed mid mission --- addons/advanced_fatigue/initSettings.sqf | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/addons/advanced_fatigue/initSettings.sqf b/addons/advanced_fatigue/initSettings.sqf index 8f4e5f0c9a..1773d1c575 100644 --- a/addons/advanced_fatigue/initSettings.sqf +++ b/addons/advanced_fatigue/initSettings.sqf @@ -14,11 +14,9 @@ LSTRING(DisplayName), true, true, { - if (!_this) then { - private _staminaBarContainer = uiNamespace getVariable [QGVAR(staminaBarContainer), controlNull]; - _staminaBarContainer ctrlSetFade 1; - _staminaBarContainer ctrlCommit 0; - }; + private _staminaBarContainer = uiNamespace getVariable [QGVAR(staminaBarContainer), controlNull]; + _staminaBarContainer ctrlSetFade ([1,0] select _this); + _staminaBarContainer ctrlCommit 0; } ] call CBA_Settings_fnc_init; From b651cc809331392057663a50b09957d358ed81f9 Mon Sep 17 00:00:00 2001 From: commy2 Date: Mon, 10 Sep 2018 19:30:30 +0200 Subject: [PATCH 208/235] delete duplicated code --- addons/advanced_fatigue/XEH_postInit.sqf | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/addons/advanced_fatigue/XEH_postInit.sqf b/addons/advanced_fatigue/XEH_postInit.sqf index 542360c0c3..fba0de9052 100644 --- a/addons/advanced_fatigue/XEH_postInit.sqf +++ b/addons/advanced_fatigue/XEH_postInit.sqf @@ -47,13 +47,3 @@ if (!hasInterface) exitWith {}; // - Add main loop at 1 second interval ------------------------------------------------------------- [FUNC(mainLoop), [], 1] call CBA_fnc_waitAndExecute; }] call CBA_fnc_addEventHandler; - -["ace_settingChanged", { - params ["_name", "_value"]; - - if (_name == QGVAR(enableStaminaBar) && {!_value}) then { - private _staminaBarContainer = uiNamespace getVariable [QGVAR(staminaBarContainer), controlNull]; - _staminaBarContainer ctrlSetFade 1; - _staminaBarContainer ctrlCommit 0; - }; -}] call CBA_fnc_addEventHandler; From 05ad146ba3247d883e8d4bbcc42e0f0c533f1f1e Mon Sep 17 00:00:00 2001 From: commy2 Date: Mon, 10 Sep 2018 19:31:26 +0200 Subject: [PATCH 209/235] restore --- addons/advanced_fatigue/initSettings.sqf | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/addons/advanced_fatigue/initSettings.sqf b/addons/advanced_fatigue/initSettings.sqf index 1773d1c575..8f4e5f0c9a 100644 --- a/addons/advanced_fatigue/initSettings.sqf +++ b/addons/advanced_fatigue/initSettings.sqf @@ -14,9 +14,11 @@ LSTRING(DisplayName), true, true, { - private _staminaBarContainer = uiNamespace getVariable [QGVAR(staminaBarContainer), controlNull]; - _staminaBarContainer ctrlSetFade ([1,0] select _this); - _staminaBarContainer ctrlCommit 0; + if (!_this) then { + private _staminaBarContainer = uiNamespace getVariable [QGVAR(staminaBarContainer), controlNull]; + _staminaBarContainer ctrlSetFade 1; + _staminaBarContainer ctrlCommit 0; + }; } ] call CBA_Settings_fnc_init; From eab84e0d09fc83d11e80c28815c0512aa24c01b7 Mon Sep 17 00:00:00 2001 From: Josuan Albin Date: Wed, 12 Sep 2018 21:59:36 +0200 Subject: [PATCH 210/235] Arsenal - Fix sort by value not sorting properly (#6570) * Fix sort by value not sorting properly * Change single to double quotes * Remove uneeded space --- addons/arsenal/functions/fnc_sortPanel.sqf | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/addons/arsenal/functions/fnc_sortPanel.sqf b/addons/arsenal/functions/fnc_sortPanel.sqf index c8bf02777f..6bfb113d19 100644 --- a/addons/arsenal/functions/fnc_sortPanel.sqf +++ b/addons/arsenal/functions/fnc_sortPanel.sqf @@ -35,7 +35,16 @@ if (ctrlIDC _control == 17 && {GVAR(currentLeftPanel) in [IDC_buttonUniform ,IDC }; case 2: { + for "_i" from 0 to (((lnbsize _panel) select 0) - 1) do { + _panel lnbSetText [[_i, 2], str (parseNumber (_panel lnbText [_i, 2]) / 1000)]; + }; + _panel lnbSort [2, true]; + + + for "_i" from 0 to (((lnbsize _panel) select 0) - 1) do { + _panel lnbSetText [[_i, 2], str (parseNumber (_panel lnbText [_i, 2]) * 1000)]; + }; }; }; From 364f84d382a8a06e453f3cafbdff7603271222e1 Mon Sep 17 00:00:00 2001 From: Dystopian Date: Thu, 13 Sep 2018 00:12:05 +0300 Subject: [PATCH 211/235] Fix RHS static turrets interaction point (#6567) --- optionals/compat_rhs_afrf3/CfgVehicles.hpp | 24 ++++++++++++++++++++++ optionals/compat_rhs_usf3/CfgVehicles.hpp | 23 +++++++++++++++++---- 2 files changed, 43 insertions(+), 4 deletions(-) diff --git a/optionals/compat_rhs_afrf3/CfgVehicles.hpp b/optionals/compat_rhs_afrf3/CfgVehicles.hpp index 6d27039836..068f22280c 100644 --- a/optionals/compat_rhs_afrf3/CfgVehicles.hpp +++ b/optionals/compat_rhs_afrf3/CfgVehicles.hpp @@ -219,6 +219,30 @@ class CfgVehicles { EGVAR(refuel,fuelCapacity) = 500; }; + class StaticWeapon: LandVehicle { + class ACE_Actions { + class ACE_MainActions; + }; + }; + class StaticMGWeapon: StaticWeapon {}; + class AT_01_base_F: StaticMGWeapon {}; + + class rhs_SPG9_base: AT_01_base_F { + class ACE_Actions: ACE_Actions { + class ACE_MainActions: ACE_MainActions { + position = ""; + }; + }; + }; + class rhs_Kornet_Base: AT_01_base_F { + class ACE_Actions: ACE_Actions { + class ACE_MainActions: ACE_MainActions { + position = ""; + selection = "tripod"; + }; + }; + }; + class rhs_assault_umbts; class rhs_assault_umbts_engineer: rhs_assault_umbts { EGVAR(logistics_wirecutter,hasWirecutter) = 1; diff --git a/optionals/compat_rhs_usf3/CfgVehicles.hpp b/optionals/compat_rhs_usf3/CfgVehicles.hpp index 2684bd65f5..02c4fff408 100644 --- a/optionals/compat_rhs_usf3/CfgVehicles.hpp +++ b/optionals/compat_rhs_usf3/CfgVehicles.hpp @@ -89,7 +89,7 @@ class CfgVehicles { class Eventhandlers; }; class Heli_Transport_01_base_F: Helicopter_Base_H {}; - + class RHS_MELB_base: Helicopter_Base_H {}; class RHS_MELB_MH6M: RHS_MELB_base { EGVAR(fastroping,enabled) = 1; @@ -286,17 +286,32 @@ class CfgVehicles { EGVAR(cargo,space) = 4; EGVAR(cargo,hasCargo) = 1; }; - + + class StaticWeapon: LandVehicle { + class ACE_Actions { + class ACE_MainActions; + }; + }; + class StaticMortar: StaticWeapon {}; + class RHS_M252_Base: StaticMortar { + class ACE_Actions: ACE_Actions { + class ACE_MainActions: ACE_MainActions { + position = ""; + selection = "main_gun"; + }; + }; + }; + class rhsusf_infantry_usmc_base; class rhsusf_usmc_marpat_wd_helipilot: rhsusf_infantry_usmc_base { ace_gforcecoef = 0.55; }; - + class rhsusf_infantry_army_base; class rhsusf_army_ocp_helipilot: rhsusf_infantry_army_base { ace_gforcecoef = 0.55; }; - + class rhsusf_usmc_marpat_wd_rifleman_m4; class rhsusf_airforce_jetpilot: rhsusf_usmc_marpat_wd_rifleman_m4 { ace_gforcecoef = 0.55; From 0e980907fe6710ec2d2ee0a96b5601a9419616b6 Mon Sep 17 00:00:00 2001 From: Dystopian Date: Thu, 13 Sep 2018 06:29:56 +0300 Subject: [PATCH 212/235] Fix some item type magic numbers (#6487) * Fix item type magic numbers * Add weapon and magazine macros --- .../functions/fnc_diagnoseWeapons.sqf | 4 +- .../arsenal/functions/fnc_addVirtualItems.sqf | 34 +++++------ addons/arsenal/functions/fnc_scanConfig.sqf | 28 +++++----- addons/common/functions/fnc_getItemType.sqf | 56 +++++++++---------- addons/explosives/CfgWeapons.hpp | 2 +- addons/main/script_macros.hpp | 12 ++++ 6 files changed, 73 insertions(+), 63 deletions(-) diff --git a/addons/advanced_ballistics/functions/fnc_diagnoseWeapons.sqf b/addons/advanced_ballistics/functions/fnc_diagnoseWeapons.sqf index 4c929ac22d..01b0a8e4af 100644 --- a/addons/advanced_ballistics/functions/fnc_diagnoseWeapons.sqf +++ b/addons/advanced_ballistics/functions/fnc_diagnoseWeapons.sqf @@ -33,9 +33,7 @@ for "_i" from 0 to (count _cfgWeapons)-1 do { if (isClass _weaponConfig) then { private _weapon = configName _weaponConfig; private _weaponType = getNumber (_weaponConfig >> "Type"); - if (_weaponType in [1, 2]) then { - // The weapon is a primary weapon or a handgun weapon - + if (_weaponType in [TYPE_WEAPON_PRIMARY, TYPE_WEAPON_HANDGUN]) then { private _weaponInitSpeed = getNumber (_weaponConfig >> "initSpeed"); private _magazines = getArray (_weaponConfig >> "magazines"); { diff --git a/addons/arsenal/functions/fnc_addVirtualItems.sqf b/addons/arsenal/functions/fnc_addVirtualItems.sqf index bfe17761c2..2126f4d5d3 100644 --- a/addons/arsenal/functions/fnc_addVirtualItems.sqf +++ b/addons/arsenal/functions/fnc_addVirtualItems.sqf @@ -81,37 +81,37 @@ if (_items isEqualType true) then { /* Weapon acc */ case ( isClass (_configItemInfo) && - {(getNumber (_configItemInfo >> "type")) in [101, 201, 301, 302]} && + {(getNumber (_configItemInfo >> "type")) in [TYPE_MUZZLE, TYPE_OPTICS, TYPE_FLASHLIGHT, TYPE_BIPOD]} && {!(_x isKindOf ["CBA_MiscItem", (_configCfgWeapons)])} ): { switch (getNumber (_configItemInfo >> "type")) do { - case 201: { + case TYPE_OPTICS: { (_cargo select 1) select 0 pushBackUnique _x; }; - case 301: { + case TYPE_FLASHLIGHT: { (_cargo select 1) select 1 pushBackUnique _x; }; - case 101: { + case TYPE_MUZZLE: { (_cargo select 1) select 2 pushBackUnique _x; }; - case 302: { + case TYPE_BIPOD: { (_cargo select 1) select 3 pushBackUnique _x; }; }; }; /* Headgear */ case (isClass (_configItemInfo) && - {getNumber (_configItemInfo >> "type") == 605}): { + {getNumber (_configItemInfo >> "type") == TYPE_HEADGEAR}): { (_cargo select 3) pushBackUnique _x; }; /* Uniform */ case (isClass (_configItemInfo) && - {getNumber (_configItemInfo >> "type") == 801}): { + {getNumber (_configItemInfo >> "type") == TYPE_UNIFORM}): { (_cargo select 4) pushBackUnique _x; }; /* Vest */ case (isClass (_configItemInfo) && - {getNumber (_configItemInfo >> "type") == 701}): { + {getNumber (_configItemInfo >> "type") == TYPE_VEST}): { (_cargo select 5) pushBackUnique _x; }; /* NVgs */ @@ -120,7 +120,7 @@ if (_items isEqualType true) then { }; /* Binos */ case (_simulationType == "Binocular" || - {(_simulationType == 'Weapon') && {(getNumber (_configCfgWeapons >> _x >> 'type') == 4096)}}): { + {(_simulationType == 'Weapon') && {(getNumber (_configCfgWeapons >> _x >> 'type') == TYPE_BINOCULAR_AND_NVG)}}): { (_cargo select 9) pushBackUnique _x; }; /* Map */ @@ -145,20 +145,20 @@ if (_items isEqualType true) then { }; /* UAV terminals */ case (isClass (_configItemInfo) && - {getNumber (_configItemInfo >> "type") == 621}): { + {getNumber (_configItemInfo >> "type") == TYPE_UAV_TERMINAL}): { (_cargo select 14) pushBackUnique _x; }; /* Weapon, at the bottom to avoid adding binos */ case (isClass (_configCfgWeapons >> _x >> "WeaponSlotsInfo") && - {getNumber (_configCfgWeapons >> _x >> 'type') != 4096}): { + {getNumber (_configCfgWeapons >> _x >> 'type') != TYPE_BINOCULAR_AND_NVG}): { switch (getNumber (_configCfgWeapons >> _x >> "type")) do { - case 1: { + case TYPE_WEAPON_PRIMARY: { (_cargo select 0) select 0 pushBackUnique ([_x] call bis_fnc_baseWeapon); }; - case 2: { + case TYPE_WEAPON_HANDGUN: { (_cargo select 0) select 2 pushBackUnique ([_x] call bis_fnc_baseWeapon); }; - case 4: { + case TYPE_WEAPON_SECONDARY: { (_cargo select 0) select 1 pushBackUnique ([_x] call bis_fnc_baseWeapon); }; }; @@ -166,9 +166,9 @@ if (_items isEqualType true) then { /* Misc items */ case ( isClass (_configItemInfo) && - ((getNumber (_configItemInfo >> "type")) in [101, 201, 301, 302] && + ((getNumber (_configItemInfo >> "type")) in [TYPE_MUZZLE, TYPE_OPTICS, TYPE_FLASHLIGHT, TYPE_BIPOD] && {(_x isKindOf ["CBA_MiscItem", (_configCfgWeapons)])}) || - {(getNumber (_configItemInfo >> "type")) in [401, 619, 620]} || + {(getNumber (_configItemInfo >> "type")) in [TYPE_FIRST_AID_KIT, TYPE_MEDIKIT, TYPE_TOOLKIT]} || {(getText (_configCfgWeapons >> _x >> "simulation")) == "ItemMineDetector"} ): { (_cargo select 17) pushBackUnique _x; @@ -193,7 +193,7 @@ if (_items isEqualType true) then { switch true do { // Rifle, handgun, secondary weapons mags case ( - (getNumber (configFile >> "CfgMagazines" >> _x >> "type") in [256,512,1536,16]) && + (getNumber (configFile >> "CfgMagazines" >> _x >> "type") in [TYPE_MAGAZINE_PRIMARY_AND_THROW,TYPE_MAGAZINE_SECONDARY_AND_PUT,1536,TYPE_MAGAZINE_HANDGUN_AND_GL]) && {!(_x in _grenadeList)} && {!(_x in _putList)} ): { diff --git a/addons/arsenal/functions/fnc_scanConfig.sqf b/addons/arsenal/functions/fnc_scanConfig.sqf index f5c608db78..326b89a1ac 100644 --- a/addons/arsenal/functions/fnc_scanConfig.sqf +++ b/addons/arsenal/functions/fnc_scanConfig.sqf @@ -46,23 +46,23 @@ private _configCfgWeapons = configFile >> "CfgWeapons"; //Save this lookup in va /* Weapon acc */ case ( _hasItemInfo && - {_itemInfoType in [101, 201, 301, 302]} && + {_itemInfoType in [TYPE_MUZZLE, TYPE_OPTICS, TYPE_FLASHLIGHT, TYPE_BIPOD]} && {!(configName _x isKindOf ["CBA_MiscItem", (_configCfgWeapons)])} ): { //Convert type to array index - (_cargo select 1) select ([201,301,101,302] find _itemInfoType) pushBackUnique _className; + (_cargo select 1) select ([TYPE_OPTICS,TYPE_FLASHLIGHT,TYPE_MUZZLE,TYPE_BIPOD] find _itemInfoType) pushBackUnique _className; }; /* Headgear */ - case (_itemInfoType == 605): { + case (_itemInfoType == TYPE_HEADGEAR): { (_cargo select 3) pushBackUnique _className; }; /* Uniform */\ - case (_itemInfoType == 801): { + case (_itemInfoType == TYPE_UNIFORM): { (_cargo select 4) pushBackUnique _className; }; /* Vest */ - case (_itemInfoType == 701): { + case (_itemInfoType == TYPE_VEST): { (_cargo select 5) pushBackUnique _className; }; /* NVgs */ @@ -71,7 +71,7 @@ private _configCfgWeapons = configFile >> "CfgWeapons"; //Save this lookup in va }; /* Binos */ case (_simulationType == "Binocular" || - ((_simulationType == 'Weapon') && {(getNumber (_x >> 'type') == 4096)})): { + ((_simulationType == 'Weapon') && {(getNumber (_x >> 'type') == TYPE_BINOCULAR_AND_NVG)})): { (_cargo select 9) pushBackUnique _className; }; /* Map */ @@ -95,20 +95,20 @@ private _configCfgWeapons = configFile >> "CfgWeapons"; //Save this lookup in va (_cargo select 14) pushBackUnique _className; }; /* UAV terminals */ - case (_itemInfoType == 621): { + case (_itemInfoType == TYPE_UAV_TERMINAL): { (_cargo select 14) pushBackUnique _className; }; /* Weapon, at the bottom to avoid adding binos */ case (isClass (_x >> "WeaponSlotsInfo") && - {getNumber (_x >> 'type') != 4096}): { + {getNumber (_x >> 'type') != TYPE_BINOCULAR_AND_NVG}): { switch (getNumber (_x >> "type")) do { - case 1: { + case TYPE_WEAPON_PRIMARY: { (_cargo select 0) select 0 pushBackUnique (_className call bis_fnc_baseWeapon); }; - case 2: { + case TYPE_WEAPON_HANDGUN: { (_cargo select 0) select 2 pushBackUnique (_className call bis_fnc_baseWeapon); }; - case 4: { + case TYPE_WEAPON_SECONDARY: { (_cargo select 0) select 1 pushBackUnique (_className call bis_fnc_baseWeapon); }; }; @@ -116,9 +116,9 @@ private _configCfgWeapons = configFile >> "CfgWeapons"; //Save this lookup in va /* Misc items */ case ( _hasItemInfo && - (_itemInfoType in [101, 201, 301, 302] && + (_itemInfoType in [TYPE_MUZZLE, TYPE_OPTICS, TYPE_FLASHLIGHT, TYPE_BIPOD] && {(_className isKindOf ["CBA_MiscItem", (_configCfgWeapons)])}) || - {_itemInfoType in [401, 619, 620]} || + {_itemInfoType in [TYPE_FIRST_AID_KIT, TYPE_MEDIKIT, TYPE_TOOLKIT]} || {(getText ( _x >> "simulation")) == "ItemMineDetector"} ): { (_cargo select 17) pushBackUnique _className; @@ -142,7 +142,7 @@ private _putList = []; switch true do { // Rifle, handgun, secondary weapons mags case ( - (getNumber (_x >> "type") in [256,512,1536,16]) && + (getNumber (_x >> "type") in [TYPE_MAGAZINE_PRIMARY_AND_THROW,TYPE_MAGAZINE_SECONDARY_AND_PUT,1536,TYPE_MAGAZINE_HANDGUN_AND_GL]) && {!(_className in _grenadeList)} && {!(_className in _putList)} ): { diff --git a/addons/common/functions/fnc_getItemType.sqf b/addons/common/functions/fnc_getItemType.sqf index 33d9d267e4..eebb02f246 100644 --- a/addons/common/functions/fnc_getItemType.sqf +++ b/addons/common/functions/fnc_getItemType.sqf @@ -38,35 +38,35 @@ private _default = ["item", "magazine"] select (_cfgType == "CfgMagazines"); switch (true) do { case (_type == 0): {[_default, "unknown"]}; - case (_type == 2^0): {["weapon", "primary"]}; - case (_type == 2^1): {["weapon", "handgun"]}; - case (_type == 2^2): {["weapon", "secondary"]}; - case (_type < 2^4): {["weapon", "unknown"]}; - case (_type == 2^4): {["magazine", "handgun"]}; // handgun - case (_type == 2^8): {["magazine", "primary"]}; // rifle - case (_type == 2^9): {["magazine", "secondary"]}; // rpg, mg, mines + case (_type == TYPE_WEAPON_PRIMARY): {["weapon", "primary"]}; + case (_type == TYPE_WEAPON_HANDGUN): {["weapon", "handgun"]}; + case (_type == TYPE_WEAPON_SECONDARY): {["weapon", "secondary"]}; + case (_type < TYPE_MAGAZINE_HANDGUN_AND_GL): {["weapon", "unknown"]}; + case (_type == TYPE_MAGAZINE_HANDGUN_AND_GL): {["magazine", "handgun"]}; // handgun + case (_type == TYPE_MAGAZINE_PRIMARY_AND_THROW): {["magazine", "primary"]}; // rifle + case (_type == TYPE_MAGAZINE_SECONDARY_AND_PUT): {["magazine", "secondary"]}; // rpg, mg, mines //case (_type < 2^11): {["magazine", "unknown"]}; - case (_type == 101): {["item", "muzzle"]}; - case (_type == 201): {["item", "optics"]}; - case (_type == 301): {["item", "flashlight"]}; - case (_type == 302): {["item", "under"]}; // czech for bipod item - case (_type == 401): {["item", "first_aid_kit"]}; - case (_type == 501): {["item", "fins"]}; // not implemented - case (_type == 601): {["item", "breathing_bomb"]}; // not implemented - case (_type == 603): {["item", "goggles"]}; - case (_type == 604): {["item", "scuba"]}; // not implemented - case (_type == 605): {["item", "headgear"]}; - case (_type == 611): {["item", "radio"]}; - case (_type == 616): {["item", "hmd"]}; - case (_type == 617): {["item", "binocular"]}; - case (_type == 619): {["item", "medikit"]}; - case (_type == 620): {["item", "toolkit"]}; - case (_type == 621): {["item", "uav_terminal"]}; - case (_type == 701): {["item", "vest"]}; - case (_type == 801): {["item", "uniform"]}; + case (_type == TYPE_MUZZLE): {["item", "muzzle"]}; + case (_type == TYPE_OPTICS): {["item", "optics"]}; + case (_type == TYPE_FLASHLIGHT): {["item", "flashlight"]}; + case (_type == TYPE_BIPOD): {["item", "under"]}; // czech for bipod item + case (_type == TYPE_FIRST_AID_KIT): {["item", "first_aid_kit"]}; + case (_type == TYPE_FINS): {["item", "fins"]}; // not implemented + case (_type == TYPE_BREATHING_BOMB): {["item", "breathing_bomb"]}; // not implemented + case (_type == TYPE_GOGGLE): {["item", "goggles"]}; + case (_type == TYPE_SCUBA): {["item", "scuba"]}; // not implemented + case (_type == TYPE_HEADGEAR): {["item", "headgear"]}; + case (_type == TYPE_RADIO): {["item", "radio"]}; + case (_type == TYPE_HMD): {["item", "hmd"]}; + case (_type == TYPE_BINOCULAR): {["item", "binocular"]}; + case (_type == TYPE_MEDIKIT): {["item", "medikit"]}; + case (_type == TYPE_TOOLKIT): {["item", "toolkit"]}; + case (_type == TYPE_UAV_TERMINAL): {["item", "uav_terminal"]}; + case (_type == TYPE_VEST): {["item", "vest"]}; + case (_type == TYPE_UNIFORM): {["item", "uniform"]}; - case (_type == 2^12): { + case (_type == TYPE_BINOCULAR_AND_NVG): { switch (toLower _simulation) do { case ("weapon"): {["weapon", "binocular"]}; case ("binocular"): {["weapon", "binocular"]}; @@ -76,8 +76,8 @@ switch (true) do { }; }; - case (_type == 2^16): {["weapon", "vehicle"]}; - case (_type == 2^17): { + case (_type == TYPE_WEAPON_VEHICLE): {["weapon", "vehicle"]}; + case (_type == TYPE_ITEM): { switch (toLower _simulation) do { case ("itemmap"): {["item", "map"]}; case ("itemgps"): {["item", "gps"]}; diff --git a/addons/explosives/CfgWeapons.hpp b/addons/explosives/CfgWeapons.hpp index 9296813ee5..56ef154661 100644 --- a/addons/explosives/CfgWeapons.hpp +++ b/addons/explosives/CfgWeapons.hpp @@ -12,7 +12,7 @@ class CfgWeapons { class CBA_MiscItem_ItemInfo; class ACE_ExplosiveItem: CBA_MiscItem_ItemInfo { - allowedSlots[] = {801,701,901}; + allowedSlots[] = {TYPE_UNIFORM,TYPE_VEST,TYPE_BACKPACK}; //type = 201; }; diff --git a/addons/main/script_macros.hpp b/addons/main/script_macros.hpp index 16a33583a0..fc96567785 100644 --- a/addons/main/script_macros.hpp +++ b/addons/main/script_macros.hpp @@ -60,6 +60,18 @@ count = COUNT; \ } +// weapon types +#define TYPE_WEAPON_PRIMARY 1 +#define TYPE_WEAPON_HANDGUN 2 +#define TYPE_WEAPON_SECONDARY 4 +// magazine types +#define TYPE_MAGAZINE_HANDGUN_AND_GL 16 // mainly +#define TYPE_MAGAZINE_PRIMARY_AND_THROW 256 +#define TYPE_MAGAZINE_SECONDARY_AND_PUT 512 // mainly +// more types +#define TYPE_BINOCULAR_AND_NVG 4096 +#define TYPE_WEAPON_VEHICLE 65536 +#define TYPE_ITEM 131072 // item types #define TYPE_DEFAULT 0 #define TYPE_MUZZLE 101 From f2a57797da8c424916e5f63dd2bd97e3848cb1ec Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Wed, 12 Sep 2018 23:07:39 -0500 Subject: [PATCH 213/235] Make sure explosive is still valid when updating timer --- addons/explosives/functions/fnc_openTimerUI.sqf | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/addons/explosives/functions/fnc_openTimerUI.sqf b/addons/explosives/functions/fnc_openTimerUI.sqf index 5b630df912..2fddc33e28 100644 --- a/addons/explosives/functions/fnc_openTimerUI.sqf +++ b/addons/explosives/functions/fnc_openTimerUI.sqf @@ -61,6 +61,13 @@ _display displayAddEventHandler ["MouseZChanged", { [{ params ["_display", "_pfhID"]; + // Make sure explosive still exists and is near player + if ((!isNull _display) && {!alive ACE_player} || {!alive GVAR(explosive)} || {(ACE_player distance GVAR(explosive)) > 5}) exitWith { + INFO_2("explosive became invalid",ACE_player,GVAR(explosive)); + closeDialog 0; + _pfhID call CBA_fnc_removePerFrameHandler; + }; + if (isNull _display) exitWith { _pfhID call CBA_fnc_removePerFrameHandler; }; From 429ecb6171321f00ef5c0ef7fa3188026cca8d8b Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Thu, 13 Sep 2018 00:29:30 -0500 Subject: [PATCH 214/235] RHS Compats - Update bases classes for RHS 4.6 (#6529) * RHS Compats - Update bases classes for 4.6 * Update CfgMagazines.hpp * Update CfgWeapons.hpp --- optionals/compat_rhs_afrf3/CfgMagazines.hpp | 4 ++-- optionals/compat_rhs_afrf3/CfgWeapons.hpp | 2 +- optionals/compat_rhs_usf3/CfgMagazines.hpp | 4 ---- 3 files changed, 3 insertions(+), 7 deletions(-) diff --git a/optionals/compat_rhs_afrf3/CfgMagazines.hpp b/optionals/compat_rhs_afrf3/CfgMagazines.hpp index d1229b5a61..1ce1a43b04 100644 --- a/optionals/compat_rhs_afrf3/CfgMagazines.hpp +++ b/optionals/compat_rhs_afrf3/CfgMagazines.hpp @@ -1,8 +1,8 @@ class cfgMagazines { class VehicleMagazine; - class rhs_30Rnd_545x39_AK; + class rhs_30Rnd_545x39_7N6_AK; - class rhs_100Rnd_762x54mmR: rhs_30Rnd_545x39_AK { + class rhs_100Rnd_762x54mmR: rhs_30Rnd_545x39_7N6_AK { ace_isbelt = 1; }; class rhs_mag_127x108mm_50: VehicleMagazine { diff --git a/optionals/compat_rhs_afrf3/CfgWeapons.hpp b/optionals/compat_rhs_afrf3/CfgWeapons.hpp index 6dea9eb890..742841484d 100644 --- a/optionals/compat_rhs_afrf3/CfgWeapons.hpp +++ b/optionals/compat_rhs_afrf3/CfgWeapons.hpp @@ -67,7 +67,7 @@ class CfgWeapons { ACE_barrelTwist = 240.03; ACE_barrelLength = 645.16; }; - class rhs_weap_rpk74m: rhs_weap_pkp { + class rhs_weap_rpk74: rhs_weap_pkp { ACE_barrelTwist = 195.072; ACE_barrelLength = 589.28; }; diff --git a/optionals/compat_rhs_usf3/CfgMagazines.hpp b/optionals/compat_rhs_usf3/CfgMagazines.hpp index dd756c884e..9e595fddfb 100644 --- a/optionals/compat_rhs_usf3/CfgMagazines.hpp +++ b/optionals/compat_rhs_usf3/CfgMagazines.hpp @@ -2,14 +2,10 @@ class cfgMagazines { class CA_Magazine; class VehicleMagazine; class rhs_mag_30Rnd_556x45_M855A1_Stanag; - class rhs_mag_30Rnd_556x45_M200_Stanag; class rhsusf_100Rnd_556x45_soft_pouch: rhs_mag_30Rnd_556x45_M855A1_Stanag { ace_isbelt = 1; }; - class rhsusf_100Rnd_556x45_M200_soft_pouch: rhs_mag_30Rnd_556x45_M200_Stanag { - ace_isbelt = 1; - }; class rhsusf_50Rnd_762x51: CA_Magazine { ace_isbelt = 1; }; From d6976f63ac4d67fcf8b138a49b6b1375eb12937e Mon Sep 17 00:00:00 2001 From: mharis001 <34453221+mharis001@users.noreply.github.com> Date: Thu, 13 Sep 2018 09:40:55 -0400 Subject: [PATCH 215/235] Zeus - UI improvements and additional objects setting for Editable Objects module (#6391) * Add additional objects setting to Editable Objects * Fix Teleport Players UI height and remove unnecessary strings * Improve Garrison UI * Config based combo for Toggle NVG and Toggle Flashlights UI * Capitalize garrison module names --- addons/zeus/XEH_postInit.sqf | 4 +- .../zeus/functions/fnc_ui_editableObjects.sqf | 13 +- addons/zeus/functions/fnc_ui_garrison.sqf | 64 +++------ .../functions/fnc_ui_toggleFlashlight.sqf | 22 +-- addons/zeus/functions/fnc_ui_toggleNvg.sqf | 20 +-- addons/zeus/script_component.hpp | 6 +- addons/zeus/stringtable.xml | 67 +++------ addons/zeus/ui/RscAttributes.hpp | 136 +++++++++++++----- 8 files changed, 163 insertions(+), 169 deletions(-) diff --git a/addons/zeus/XEH_postInit.sqf b/addons/zeus/XEH_postInit.sqf index 2294e3a454..63a62d5948 100644 --- a/addons/zeus/XEH_postInit.sqf +++ b/addons/zeus/XEH_postInit.sqf @@ -24,7 +24,7 @@ if (isServer) then { [QGVAR(addObjects), { params ["_objects", ["_curator", objNull]]; - if !(isNull _curator) exitWith { _curator addCuratorEditableObjects [_objects, true]; }; + if (!isNull _curator) exitWith {_curator addCuratorEditableObjects [_objects, true]}; { _x addCuratorEditableObjects [_objects, true]; @@ -33,7 +33,7 @@ if (isServer) then { [QGVAR(removeObjects), { params ["_objects", ["_curator", objNull]]; - if !(isNull _curator) exitWith { _curator removeCuratorEditableObjects [_objects, true]; }; + if (!isNull _curator) exitWith {_curator removeCuratorEditableObjects [_objects, true]}; { _x removeCuratorEditableObjects [_objects, true]; diff --git a/addons/zeus/functions/fnc_ui_editableObjects.sqf b/addons/zeus/functions/fnc_ui_editableObjects.sqf index 7f817e6b90..b1a68ad6e3 100644 --- a/addons/zeus/functions/fnc_ui_editableObjects.sqf +++ b/addons/zeus/functions/fnc_ui_editableObjects.sqf @@ -47,8 +47,17 @@ private _fnc_onConfirm = { private _radius = GETVAR(_display,GVAR(radius),100); private _editingMode = lbCurSel (_display displayCtrl 19181) > 0; - private _allCurators = [getAssignedCuratorLogic player, objNull] select (lbCurSel (_display displayCtrl 19182)); - private _objects = nearestObjects [getPos _logic, ["All"], _radius]; + private _allCurators = [getAssignedCuratorLogic player, objNull] select lbCurSel (_display displayCtrl 19182); + private _additionalObjects = lbCurSel (_display displayCtrl 19183); + + private _objects = nearestObjects [_logic, ["All"], _radius]; + if (_additionalObjects == 1) then { + _objects append call CBA_fnc_players; + } else { + if (_additionalObjects == 2) then { + _objects append (allUnits + allDeadMen select {!(_x isKindOf "HeadlessClient_F")}); + }; + }; if (_editingMode) then { [QGVAR(addObjects), [_objects, _allCurators]] call CBA_fnc_serverEvent; diff --git a/addons/zeus/functions/fnc_ui_garrison.sqf b/addons/zeus/functions/fnc_ui_garrison.sqf index 266d564457..76c3ef1414 100644 --- a/addons/zeus/functions/fnc_ui_garrison.sqf +++ b/addons/zeus/functions/fnc_ui_garrison.sqf @@ -1,6 +1,6 @@ /* - * Author: alganthe - * Initalises the "Garrison" zeus module display. + * Author: alganthe, mharis001 + * Initializes the "Garrison" Zeus module display. * * Arguments: * 0: Garrison controls group @@ -9,26 +9,24 @@ * None * * Example: - * onSetFocus = "_this call ace_zeus_fnc_ui_garrison" + * [CONTROL] call ace_zeus_fnc_ui_garrison * * Public: No */ #include "script_component.hpp" -disableSerialization; - params ["_control"]; -//Generic Init: -private _display = ctrlparent _control; -private _ctrlButtonOK = _display displayctrl 1; //IDC_OK -private _logic = GETMVAR(BIS_fnc_initCuratorAttributes_target,objnull); -TRACE_1("logicObject",_logic); +// Generic init +private _display = ctrlParent _control; +private _ctrlButtonOK = _display displayCtrl 1; // IDC_OK +private _logic = GETMVAR(BIS_fnc_initCuratorAttributes_target,objNull); +TRACE_1("Logic Object",_logic); -_control ctrlRemoveAllEventHandlers "setFocus"; +_control ctrlRemoveAllEventHandlers "SetFocus"; -// Handles errors -private _unit = effectiveCommander (attachedTo _logic); +// Validate module target +private _unit = effectiveCommander attachedTo _logic; scopeName "Main"; private _fnc_errorAndClose = { @@ -54,26 +52,9 @@ switch (false) do { }; }; -//Specific on-load stuff: -private _listbox = _display displayCtrl 73063; -{ - _listbox lbSetValue [_listbox lbAdd (_x select 0), _x select 1]; -} forEach [ - [localize LSTRING(ModuleGarrison_FillingModeEven), 0], - [localize LSTRING(ModuleGarrison_FillingModeBuilding), 1], - [localize LSTRING(ModuleGarrison_FillingModeRandom), 2] -]; - -_listbox lbSetCurSel 0; - -//Specific on-load stuff: -(_display displayCtrl 73061) cbSetChecked (_logic getVariable ["TopDownFilling",false]); -(_display displayCtrl 73062) cbSetChecked (_logic getVariable ["Teleport",false]); - +// Specific onLoad stuff private _fnc_onUnload = { - params ["_display"]; - - private _logic = GETMVAR(BIS_fnc_initCuratorAttributes_target,objnull); + private _logic = GETMVAR(BIS_fnc_initCuratorAttributes_target,objNull); if (isNull _logic) exitWith {}; deleteVehicle _logic; @@ -82,22 +63,19 @@ private _fnc_onUnload = { private _fnc_onConfirm = { params [["_ctrlButtonOK", controlNull, [controlNull]]]; - private _display = ctrlparent _ctrlButtonOK; + private _display = ctrlParent _ctrlButtonOK; if (isNull _display) exitWith {}; - private _logic = GETMVAR(BIS_fnc_initCuratorAttributes_target,objnull); + private _logic = GETMVAR(BIS_fnc_initCuratorAttributes_target,objNull); if (isNull _logic) exitWith {}; - private _lb = _display displayCtrl 73063; - private _radius = GETVAR(_display,GVAR(radius),50); - private _position = GETVAR(_display,GVAR(position),getPos _logic); - private _mode = _lb lbValue (lbCurSel _lb); - private _TopDownFilling = cbChecked (_display displayCtrl 73061); - private _teleport = cbChecked (_display displayCtrl 73062); + private _teleport = lbCurSel (_display displayCtrl 73061) > 0; + private _topDown = lbCurSel (_display displayCtrl 73062) > 0; + private _fillingMode = lbCurSel (_display displayCtrl 73063); - [_logic, _position ,_radius, _mode, _TopDownFilling, _teleport] call FUNC(moduleGarrison); + [_logic, getPos _logic, _radius, _fillingMode, _topDown, _teleport] call FUNC(moduleGarrison); }; -_display displayAddEventHandler ["unload", _fnc_onUnload]; -_ctrlButtonOK ctrlAddEventHandler ["buttonclick", _fnc_onConfirm]; +_display displayAddEventHandler ["Unload", _fnc_onUnload]; +_ctrlButtonOK ctrlAddEventHandler ["ButtonClick", _fnc_onConfirm]; diff --git a/addons/zeus/functions/fnc_ui_toggleFlashlight.sqf b/addons/zeus/functions/fnc_ui_toggleFlashlight.sqf index 874f2dcc91..b7dab0e1be 100644 --- a/addons/zeus/functions/fnc_ui_toggleFlashlight.sqf +++ b/addons/zeus/functions/fnc_ui_toggleFlashlight.sqf @@ -15,8 +15,6 @@ */ #include "script_component.hpp" -#define COMBO_ITEMS [[LSTRING(SelectedGroup), "\a3\ui_f_curator\data\displays\rscdisplaycurator\modegroups_ca.paa"], ["STR_WEST", "\a3\ui_f\data\map\diary\icons\playerwest_ca.paa"], ["STR_EAST", "\a3\ui_f\data\map\diary\icons\playereast_ca.paa"], ["STR_guerrila", "\a3\ui_f\data\map\diary\icons\playerguer_ca.paa"], ["STR_Civilian", "\a3\ui_f\data\map\diary\icons\playerciv_ca.paa"]] - params ["_control"]; // Generic init @@ -28,7 +26,7 @@ TRACE_1("Logic Object",_logic); _control ctrlRemoveAllEventHandlers "SetFocus"; // Validate module target -private _unit = effectiveCommander (attachedTo _logic); +private _unit = effectiveCommander attachedTo _logic; scopeName "Main"; private _fnc_errorAndClose = { @@ -51,19 +49,11 @@ if !(isNull _unit) then { }; // Specific onLoad stuff -private _combo = _display displayCtrl 56220; - -// Add target combo options (only add selected group option if placed on unit) -{ - _x params ["_text", "_icon"]; - _combo lbSetPicture [_combo lbAdd (localize _text), _icon]; -} forEach (COMBO_ITEMS select [[0, 1] select (isNull _unit), 5]); - -_combo lbSetCurSel 0; - -// Set default flashlight status -if !(isNull _unit) then { - (_display displayCtrl 56218) lbSetCurSel ([0, 1] select (_unit isFlashlightOn (currentWeapon _unit))); +// Remove selected group option in not placed on unit and set default flashlight status +if (isNull _unit) then { + (_display displayCtrl 56220) lbDelete 0; +} else { + (_display displayCtrl 56218) lbSetCurSel ([0, 1] select (_unit isFlashlightOn currentWeapon _unit)); }; private _fnc_onUnload = { diff --git a/addons/zeus/functions/fnc_ui_toggleNvg.sqf b/addons/zeus/functions/fnc_ui_toggleNvg.sqf index c10b0b5bbc..2596ad6cd0 100644 --- a/addons/zeus/functions/fnc_ui_toggleNvg.sqf +++ b/addons/zeus/functions/fnc_ui_toggleNvg.sqf @@ -15,8 +15,6 @@ */ #include "script_component.hpp" -#define COMBO_ITEMS [[LSTRING(SelectedGroup), "\a3\ui_f_curator\data\displays\rscdisplaycurator\modegroups_ca.paa"], ["STR_WEST", "\a3\ui_f\data\map\diary\icons\playerwest_ca.paa"], ["STR_EAST", "\a3\ui_f\data\map\diary\icons\playereast_ca.paa"], ["STR_guerrila", "\a3\ui_f\data\map\diary\icons\playerguer_ca.paa"], ["STR_Civilian", "\a3\ui_f\data\map\diary\icons\playerciv_ca.paa"]] - params ["_control"]; // Generic init @@ -28,7 +26,7 @@ TRACE_1("Logic Object",_logic); _control ctrlRemoveAllEventHandlers "SetFocus"; // Validate module target -private _unit = effectiveCommander (attachedTo _logic); +private _unit = effectiveCommander attachedTo _logic; scopeName "Main"; private _fnc_errorAndClose = { @@ -51,18 +49,10 @@ if !(isNull _unit) then { }; // Specific onLoad stuff -private _combo = _display displayCtrl 92856; - -// Add target combo options (only add selected group option if placed on unit) -{ - _x params ["_text", "_icon"]; - _combo lbSetPicture [_combo lbAdd (localize _text), _icon]; -} forEach (COMBO_ITEMS select [[0, 1] select (isNull _unit), 5]); - -_combo lbSetCurSel 0; - -// Set default NVG status -if !(isNull _unit) then { +// Remove selected group option in not placed on unit and set default NVG status +if (isNull _unit) then { + (_display displayCtrl 92856) lbDelete 0; +} else { (_display displayCtrl 92855) lbSetCurSel ([0, 1] select !(hmd _unit isEqualTo "")); }; diff --git a/addons/zeus/script_component.hpp b/addons/zeus/script_component.hpp index 380c46e1c7..edbc5b2954 100644 --- a/addons/zeus/script_component.hpp +++ b/addons/zeus/script_component.hpp @@ -17,9 +17,9 @@ #include "\z\ace\addons\main\script_macros.hpp" // UI grid -#define SIZEX ((safezoneW / safezoneH) min 1.2) +#define SIZEX ((safeZoneW / safeZoneH) min 1.2) #define SIZEY (SIZEX / 1.2) #define W_PART(num) (num * (SIZEX / 40)) #define H_PART(num) (num * (SIZEY / 25)) -#define X_PART(num) (W_PART(num) + (safezoneX + (safezoneW - SIZEX)/2)) -#define Y_PART(num) (H_PART(num) + (safezoneY + (safezoneH - SIZEY)/2)) +#define X_PART(num) (W_PART(num) + (safeZoneX + (safeZoneW - SIZEX) / 2)) +#define Y_PART(num) (H_PART(num) + (safeZoneY + (safeZoneH - SIZEY) / 2)) diff --git a/addons/zeus/stringtable.xml b/addons/zeus/stringtable.xml index a39fd2f6a6..de8cef035c 100644 --- a/addons/zeus/stringtable.xml +++ b/addons/zeus/stringtable.xml @@ -321,6 +321,12 @@ 确认变更给所有编辑者 確認變更給所有編輯者 + + Additional Objects + + + Additional objects to include in the action regardless of Task Radius + Global AI Skill Compétence global de l'IA @@ -924,6 +930,15 @@ 需要一個不存在的插件 현재 없는 애드온을 필요로 합니다 + + None + + + Players + + + Players and AI + Add Objects to Curator Dodaj obiekt do kuratora @@ -1137,7 +1152,7 @@ 장비 추가 - Garrison group + Garrison Group Garnir zone 歩哨グループ Proteggi gruppo @@ -1209,7 +1224,7 @@ 순간이동 - Un-garrison group + Un-garrison Group Dégarnir zone 非歩哨グループ Non proteggere gruppo @@ -1409,54 +1424,6 @@ Устройство будет активно пытаться найти и перейти к соседним единицам активации. Диапазон автоматического поиска основан на умении снимать расстояние на расстоянии не менее 100 метров. La unidad intentará buscar activamente y moverse hacia las unidades cercanas del lado de activación. El rango de Auto Seek se basa en la habilidad de distancia al punto de la unidad con un mínimo de 100 metros. - - Small - - - Malý - Petit - Klein - Kicsi - Piccolo - - 작은 - Mały - Pequeno - Маленький - Pequeña - - - Medium - - - Střední - Moyen - Mittel - Közepes - medio - - 매질 - Średni - Médio - средний - Medio - - - Large - - - Velký - Grand - Groß - Nagy - Grande - - - Duży - ampla - большой - Grande - Unit is already a suicide bomber 這個單位已經是自殺炸彈手了 diff --git a/addons/zeus/ui/RscAttributes.hpp b/addons/zeus/ui/RscAttributes.hpp index 24114623d5..1174267466 100644 --- a/addons/zeus/ui/RscAttributes.hpp +++ b/addons/zeus/ui/RscAttributes.hpp @@ -86,7 +86,7 @@ class GVAR(RscEditableObjects): RscDisplayAttributes { x = 0; y = 0; w = W_PART(26); - h = H_PART(2.1); + h = H_PART(3.2); class controls { class EditingModeLabel: RscText { idc = -1; @@ -118,6 +118,17 @@ class GVAR(RscEditableObjects): RscDisplayAttributes { y = H_PART(1.1); strings[] = {ECSTRING(common,No), ECSTRING(common,Yes)}; }; + class AdditionalObjectsLabel: EditingModeLabel { + text = CSTRING(ModuleEditableObjects_AdditionalObjects); + tooltip = CSTRING(ModuleEditableObjects_AdditionalObjects_Tooltip); + y = H_PART(2.2); + }; + class AdditionalObjects: EditingMode { + idc = 19183; + y = H_PART(2.2); + columns = 3; + strings[] = {CSTRING(None), CSTRING(Players), CSTRING(PlayersAndAI)}; + }; }; }; }; @@ -350,7 +361,7 @@ class GVAR(RscTeleportPlayers): RscDisplayAttributes { x = 0; y = 0; w = W_PART(26); - h = H_PART(8.5); + h = H_PART(8.1); class controls { class Title: RscText { idc = -1; @@ -360,7 +371,7 @@ class GVAR(RscTeleportPlayers): RscDisplayAttributes { y = 0; w = W_PART(26); h = H_PART(1); - colorBackground[] = {0,0,0,0.5}; + colorBackground[] = {0, 0, 0, 0.5}; }; class Unit: RscListbox { idc = 16189; @@ -489,63 +500,66 @@ class GVAR(RscGarrison): RscDisplayAttributes { class Title: Title {}; class Content: Content { class Controls { + class radius: GVAR(AttributeRadius) {}; class Garrison: RscControlsGroupNoScrollbars { onSetFocus = QUOTE(_this call FUNC(ui_garrison)); idc = 73060; x = 0; y = 0; w = W_PART(26); - h = H_PART(8.5); + h = H_PART(6.2); class controls { - class radius: GVAR(AttributeRadius) {}; - class TopDownFillingTitle: Title { - idc = -1; - text = CSTRING(ModuleGarrison_TopDownFillingText); - toolTip = CSTRING(ModuleGarrison_TopDownFillingTooltip); - x = 0; - y = H_PART(1.2); - w = W_PART(10); - h = H_PART(1); - colorBackground[] = {0,0,0,0.5}; - }; - class TopDownFilling: RscCheckBox { - idc = 73061; - x = W_PART(10.1); - y = H_PART(1.2); - w = W_PART(1); - h = H_PART(1); - }; - class TeleportTitle: Title { + class TeleportLabel: RscText { idc = -1; text = CSTRING(ModuleGarrison_TeleportText); x = 0; - y = H_PART(2.3); + y = 0; w = W_PART(10); h = H_PART(1); - colorBackground[] = {0,0,0,0.5}; + colorBackground[] = {0, 0, 0, 0.5}; }; - class Teleport: RscCheckBox { - idc = 73062; + class Teleport: ctrlToolbox { + idc = 73061; x = W_PART(10.1); - y = H_PART(2.3); - w = W_PART(1); + y = 0; + w = W_PART(15.9); h = H_PART(1); + rows = 1; + columns = 2; + strings[] = {ECSTRING(common,No), ECSTRING(common,Yes)}; }; - class FillingModeTitle: RscText { - idc = -1; + class TopDownLabel: TeleportLabel { + text = CSTRING(ModuleGarrison_TopDownFillingText); + tooltip = CSTRING(ModuleGarrison_TopDownFillingTooltip); + y = H_PART(1.1); + }; + class TopDown: Teleport { + idc = 73062; + y = H_PART(1.1); + }; + class FillingModeLabel: TeleportLabel { text = CSTRING(ModuleGarrison_FillingModeText); - x = 0; - y = H_PART(3.5); + y = H_PART(2.2); w = W_PART(26); - h = H_PART(1); - colorBackground[] = {0,0,0,0.5}; }; class FillingMode: RscListbox { idc = 73063; x = 0; - y = H_PART(4.5); + y = H_PART(3.2); w = W_PART(26); - h = H_PART(4); + h = H_PART(3); + class Items { + class Even { + text = CSTRING(ModuleGarrison_FillingModeEven); + default = 1; + }; + class Building { + text = CSTRING(ModuleGarrison_FillingModeBuilding); + }; + class Random { + text = CSTRING(ModuleGarrison_FillingModeRandom); + }; + }; }; }; }; @@ -604,6 +618,29 @@ class GVAR(RscToggleNvg): RscDisplayAttributes { w = W_PART(15.9); h = H_PART(1); colorBackground[] = {0, 0, 0, 0.7}; + class Items { + class Group { + text = CSTRING(SelectedGroup); + picture = "\a3\ui_f_curator\data\displays\rscdisplaycurator\modegroups_ca.paa"; + default = 1; + }; + class BLUFOR { + text = "$STR_WEST"; + picture = "\a3\ui_f\data\map\diary\icons\playerwest_ca.paa"; + }; + class OPFOR { + text = "$STR_EAST"; + picture = "\a3\ui_f\data\map\diary\icons\playereast_ca.paa"; + }; + class Independent { + text = "$STR_guerrila"; + picture = "\a3\ui_f\data\map\diary\icons\playerguer_ca.paa"; + }; + class Civilian { + text = "$STR_Civilian"; + picture = "\a3\ui_f\data\map\diary\icons\playerciv_ca.paa"; + }; + }; }; }; }; @@ -670,6 +707,29 @@ class GVAR(RscToggleFlashlight): RscDisplayAttributes { w = W_PART(15.9); h = H_PART(1); colorBackground[] = {0, 0, 0, 0.7}; + class Items { + class Group { + text = CSTRING(SelectedGroup); + picture = "\a3\ui_f_curator\data\displays\rscdisplaycurator\modegroups_ca.paa"; + default = 1; + }; + class BLUFOR { + text = "$STR_WEST"; + picture = "\a3\ui_f\data\map\diary\icons\playerwest_ca.paa"; + }; + class OPFOR { + text = "$STR_EAST"; + picture = "\a3\ui_f\data\map\diary\icons\playereast_ca.paa"; + }; + class Independent { + text = "$STR_guerrila"; + picture = "\a3\ui_f\data\map\diary\icons\playerguer_ca.paa"; + }; + class Civilian { + text = "$STR_Civilian"; + picture = "\a3\ui_f\data\map\diary\icons\playerciv_ca.paa"; + }; + }; }; }; }; @@ -833,7 +893,7 @@ class GVAR(RscSuicideBomber): RscDisplayAttributes { h = H_PART(1); rows = 1; columns = 3; - strings[] = {CSTRING(ModuleSuicideBomber_Small), CSTRING(ModuleSuicideBomber_Medium), CSTRING(ModuleSuicideBomber_Large)}; + strings[] = {"$STR_small", "$STR_medium", "$STR_large"}; }; class AutoSeekLabel: DistanceLabel { idc = -1; From 3ee94d3aca0cd30302e9ee0bc574b8ea2ea1480e Mon Sep 17 00:00:00 2001 From: Blutze <37950828+Blutze@users.noreply.github.com> Date: Fri, 14 Sep 2018 22:01:50 +0200 Subject: [PATCH 216/235] [Arsenal] Filter firemodes for precision display by showToPlayer (#6572) --- addons/arsenal/functions/fnc_statTextStatement_accuracy.sqf | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/addons/arsenal/functions/fnc_statTextStatement_accuracy.sqf b/addons/arsenal/functions/fnc_statTextStatement_accuracy.sqf index 8f2045bdcf..8323b9dd73 100644 --- a/addons/arsenal/functions/fnc_statTextStatement_accuracy.sqf +++ b/addons/arsenal/functions/fnc_statTextStatement_accuracy.sqf @@ -23,7 +23,9 @@ private _fireModes = getArray (_config >> "modes"); private _dispersion = []; { - _dispersion pushBackUnique (getNumber (_config >> _x >> "dispersion")); + if (getNumber (_config >> _x >> "showToPlayer") != 0) then { + _dispersion pushBackUnique (getNumber (_config >> _x >> "dispersion")); + }; } foreach _fireModes; _dispersion sort true; From ae6a2709f3b297e625467cff98673fadb35a1f63 Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Fri, 14 Sep 2018 23:58:28 -0500 Subject: [PATCH 217/235] Arsenal - Don't warn when calling removeUnitTrackProjectiles (#6574) --- addons/arsenal/missions/Arsenal.VR/XEH_postInit.sqf | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/addons/arsenal/missions/Arsenal.VR/XEH_postInit.sqf b/addons/arsenal/missions/Arsenal.VR/XEH_postInit.sqf index 3a36faa6a2..5b24421c20 100644 --- a/addons/arsenal/missions/Arsenal.VR/XEH_postInit.sqf +++ b/addons/arsenal/missions/Arsenal.VR/XEH_postInit.sqf @@ -29,7 +29,9 @@ cba_diagnostic_projectileMaxLines = 10; _x hideObject true; } forEach (allMissionObjects "" - [_player]); - _player call CBA_fnc_removeUnitTrackProjectiles; + if ((_player getVariable ["cba_projectile_firedEhId", -1]) != -1) then { + _player call CBA_fnc_removeUnitTrackProjectiles; + }; _player setFatigue 0; // Esc to close mission From 64cc2874089c3e05cc60fb5dc2216290a934b336 Mon Sep 17 00:00:00 2001 From: Wakbub Date: Sat, 15 Sep 2018 18:53:28 +0200 Subject: [PATCH 218/235] RHS Compat - Fix GREF canoes refuel interaction (#6575) * Fix RHS GREF canoes refuel interaction * Removed ace_refuel from requiredAddons * fix inheritance --- optionals/compat_rhs_gref3/CfgVehicles.hpp | 7 +++++++ optionals/compat_rhs_gref3/config.cpp | 2 ++ 2 files changed, 9 insertions(+) create mode 100644 optionals/compat_rhs_gref3/CfgVehicles.hpp diff --git a/optionals/compat_rhs_gref3/CfgVehicles.hpp b/optionals/compat_rhs_gref3/CfgVehicles.hpp new file mode 100644 index 0000000000..3ac81df2fe --- /dev/null +++ b/optionals/compat_rhs_gref3/CfgVehicles.hpp @@ -0,0 +1,7 @@ +class CfgVehicles { + class Rubber_duck_base_F; + class rhsgref_canoe_base: Rubber_duck_base_F { + // Canoes are propelled by paddlers + EGVAR(refuel,canReceive) = 0; + }; +}; diff --git a/optionals/compat_rhs_gref3/config.cpp b/optionals/compat_rhs_gref3/config.cpp index 60b5032dd1..a8f8e14773 100644 --- a/optionals/compat_rhs_gref3/config.cpp +++ b/optionals/compat_rhs_gref3/config.cpp @@ -8,6 +8,7 @@ class CfgPatches { requiredVersion = REQUIRED_VERSION; requiredAddons[] = {"rhsgref_main", "rhsgref_c_weapons"}; author = ECSTRING(common,ACETeam); + authors[] = {"PabstMirror", "Ruthberg", "Anton"}; url = ECSTRING(main,URL); VERSION_CONFIG; }; @@ -16,3 +17,4 @@ class CfgPatches { #include "CfgAmmo.hpp" #include "CfgMagazines.hpp" #include "CfgWeapons.hpp" +#include "CfgVehicles.hpp" From db6a40f91d73b1457a02f8de79b88a38b77df86c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ozan=20E=C4=9Fitmen?= Date: Mon, 17 Sep 2018 21:22:04 +0300 Subject: [PATCH 219/235] Arsenal - Add Default Loadouts API (#6558) * Add addDefaultLoadout function * Initialize defaultLoadoutsList by default * Close params bracket * Revert "Initialize defaultLoadoutsList by default" This reverts commit a53d21046e6698be625d60056605421549d445be. * Add isNil check * Remove tab * Overwrite loadout if it exists * Fix file name typo * Use findIf and copy array * Add override note to header * Make btnImport use new function instead of duplicating code * Use GVAR * Use findIf * Fix spacing * Add documentation * Improve documentation --- addons/arsenal/Cfg3DEN.hpp | 2 +- addons/arsenal/XEH_PREP.hpp | 1 + .../functions/fnc_addDefaultLoadout.sqf | 31 +++++++++++++++++++ addons/arsenal/functions/fnc_buttonImport.sqf | 11 +------ .../functions/fnc_buttonLoadoutsSave.sqf | 20 ++++++------ .../arsenal/functions/fnc_onArsenalOpen.sqf | 2 +- docs/wiki/framework/arsenal-framework.md | 15 +++++++++ 7 files changed, 60 insertions(+), 22 deletions(-) create mode 100644 addons/arsenal/functions/fnc_addDefaultLoadout.sqf diff --git a/addons/arsenal/Cfg3DEN.hpp b/addons/arsenal/Cfg3DEN.hpp index 9b058f48c0..ceb3cee926 100644 --- a/addons/arsenal/Cfg3DEN.hpp +++ b/addons/arsenal/Cfg3DEN.hpp @@ -8,7 +8,7 @@ class Cfg3DEN { class GVAR(DefaultLoadoutsListAttribute) { property = QGVAR(DefaultLoadoutsListAttribute); value = 0; - expression = "if !(is3DEN) then {ace_arsenal_defaultLoadoutsList = _value};"; + expression = QUOTE(if (!is3DEN) then {GVAR(defaultLoadoutsList) = _value};); defaultValue = "[]"; validate = "none"; wikiType = "[[Array]]"; diff --git a/addons/arsenal/XEH_PREP.hpp b/addons/arsenal/XEH_PREP.hpp index 98753b070c..233abc56f8 100644 --- a/addons/arsenal/XEH_PREP.hpp +++ b/addons/arsenal/XEH_PREP.hpp @@ -1,3 +1,4 @@ +PREP(addDefaultLoadout); PREP(addListBoxItem); PREP(addStat); PREP(addVirtualItems); diff --git a/addons/arsenal/functions/fnc_addDefaultLoadout.sqf b/addons/arsenal/functions/fnc_addDefaultLoadout.sqf new file mode 100644 index 0000000000..2c18a38ca6 --- /dev/null +++ b/addons/arsenal/functions/fnc_addDefaultLoadout.sqf @@ -0,0 +1,31 @@ +#include "script_component.hpp" +/* + * Author: 654wak654 + * Adds a loadout to the "Default Loadouts" list. + * If a loadout with the same name exists, it is overwritten. + * + * Arguments: + * 0: Name of loadout + * 1: getUnitLoadout array + * + * Return Value: + * None + * + * Example: + * ["Squad Leader", getUnitLoadout sql1] call ace_arsenal_fnc_addDefaultLoadout + * + * Public: Yes +*/ + +params [["_name", "", [""]], ["_loadout", [], [[]], 10]]; + +if (isNil QGVAR(defaultLoadoutsList)) then { + GVAR(defaultLoadoutsList) = []; +}; + +private _loadoutIndex = (+(GVAR(defaultLoadoutsList))) findIf {(_x select 0) == _name}; +if (_loadoutIndex == -1) then { + GVAR(defaultLoadoutsList) pushBack [_name, _loadout]; +} else { + GVAR(defaultLoadoutsList) set [_loadoutIndex, [_name, _loadout]]; +}; diff --git a/addons/arsenal/functions/fnc_buttonImport.sqf b/addons/arsenal/functions/fnc_buttonImport.sqf index 7cc059d818..543970a0c3 100644 --- a/addons/arsenal/functions/fnc_buttonImport.sqf +++ b/addons/arsenal/functions/fnc_buttonImport.sqf @@ -31,16 +31,7 @@ if (GVAR(shiftState) && {is3DEN}) then { {_x select 1 isEqualType []} && {count (_x select 1) == 10} ) then { - - _x params ["_loadoutName", "_loadout"]; - - private _sameNameLoadoutsList = GVAR(defaultLoadoutsList) select {_x select 0 == _loadoutName}; - - if (count _sameNameLoadoutsList == 0) then { - GVAR(defaultLoadoutsList) pushBack [_loadoutName, _loadout]; - } else { - GVAR(defaultLoadoutsList) set [GVAR(defaultLoadoutsList) find (_sameNameLoadoutsList select 0), _loadoutName, _loadout]; - }; + _x call FUNC(addDefaultLoadout); }; } foreach _data; diff --git a/addons/arsenal/functions/fnc_buttonLoadoutsSave.sqf b/addons/arsenal/functions/fnc_buttonLoadoutsSave.sqf index fecb6300e3..1058e5793a 100644 --- a/addons/arsenal/functions/fnc_buttonLoadoutsSave.sqf +++ b/addons/arsenal/functions/fnc_buttonLoadoutsSave.sqf @@ -33,7 +33,7 @@ private _loadoutName = _contentPanelCtrl lnbText [_cursSelRow, 1]; private _curSelLoadout = (_contentPanelCtrl getVariable (_loadoutName + str GVAR(currentLoadoutsTab))) select 0; private _loadout = getUnitLoadout GVAR(center); -private _sameNameLoadoutsList = _data select {_x select 0 == _editBoxContent}; +private _loadoutIndex = (+(_data)) findIf {(_x select 0) == _editBoxContent}; private _sharedLoadoutsVars = GVAR(sharedLoadoutsNamespace) getVariable QGVAR(sharedLoadoutsVars); // Make sure the loadout isn't yours (public tab) or being shared (my loadouts tab) @@ -124,10 +124,10 @@ switch (GVAR(currentLoadoutsTab)) do { }; }; - if (count _sameNameLoadoutsList == 0) then { + if (_loadoutIndex == -1) then { _data pushBack [_editBoxContent, _loadout]; } else { - _data set [_data find (_sameNameLoadoutsList select 0), [[_editBoxContent, _loadoutName] select (_loadoutName isEqualTo _editBoxContent), _loadout]]; + _data set [_loadoutIndex, [[_editBoxContent, _loadoutName] select (_loadoutName isEqualTo _editBoxContent), _loadout]]; }; // Delete "old" loadout row @@ -155,7 +155,7 @@ switch (GVAR(currentLoadoutsTab)) do { if (is3DEN) then { - private _sameNameLoadoutsList = _data select {_x select 0 == _editBoxContent}; + private _loadoutIndex = (+(_data)) findId {(_x select 0) == _editBoxContent}; for "_dataIndex" from 0 to 10 do { switch (_dataIndex) do { @@ -232,10 +232,10 @@ switch (GVAR(currentLoadoutsTab)) do { }; }; - if (count _sameNameLoadoutsList == 0) then { + if (_loadoutIndex == -1) then { GVAR(defaultLoadoutsList) pushBack [_editBoxContent, _loadout]; } else { - GVAR(defaultLoadoutsList) set [GVAR(defaultLoadoutsList) find (_sameNameLoadoutsList select 0), [[_editBoxContent, _loadoutName] select (_loadoutName isEqualTo _editBoxContent), _loadout]]; + GVAR(defaultLoadoutsList) set [_loadoutIndex, [[_editBoxContent, _loadoutName] select (_loadoutName isEqualTo _editBoxContent), _loadout]]; }; for '_i' from 0 to (((lnbsize _contentPanelCtrl) select 0) - 1) do { @@ -258,10 +258,10 @@ switch (GVAR(currentLoadoutsTab)) do { set3DENMissionAttributes [[QGVAR(DummyCategory), QGVAR(DefaultLoadoutsListAttribute), GVAR(defaultLoadoutsList)]]; } else { - if (count _sameNameLoadoutsList == 0) then { + if (_loadoutIndex == -1) then { _data pushBack [_editBoxContent, _curSelLoadout]; } else { - _data set [_data find (_sameNameLoadoutsList select 0), [[_editBoxContent, _loadoutName] select (_loadoutName isEqualTo _editBoxContent), _curSelLoadout]]; + _data set [_loadoutIndex, [[_editBoxContent, _loadoutName] select (_loadoutName isEqualTo _editBoxContent), _curSelLoadout]]; _contentPanelCtrl setVariable [_editBoxContent + str IDC_buttonMyLoadouts, [_curSelLoadout] call FUNC(verifyLoadout)]; }; @@ -273,10 +273,10 @@ switch (GVAR(currentLoadoutsTab)) do { _loadout = (GVAR(sharedLoadoutsNamespace) getVariable ((_contentPanelCtrl lnbText [_cursSelRow, 0]) + (_contentPanelCtrl lnbText [_cursSelRow, 1]))) select 2; - if (count _sameNameLoadoutsList == 0) then { + if (_loadoutIndex == -1) then { _data pushBack [_editBoxContent, _loadout]; } else { - _data set [_data find (_sameNameLoadoutsList select 0), [[_editBoxContent, _loadoutName] select (_loadoutName isEqualTo _editBoxContent), _loadout]]; + _data set [_loadoutIndex, [[_editBoxContent, _loadoutName] select (_loadoutName isEqualTo _editBoxContent), _loadout]]; _contentPanelCtrl setVariable [_editBoxContent + str IDC_buttonMyLoadouts, [_loadout] call FUNC(verifyLoadout)]; }; diff --git a/addons/arsenal/functions/fnc_onArsenalOpen.sqf b/addons/arsenal/functions/fnc_onArsenalOpen.sqf index b18d3c3080..c74f363d7c 100644 --- a/addons/arsenal/functions/fnc_onArsenalOpen.sqf +++ b/addons/arsenal/functions/fnc_onArsenalOpen.sqf @@ -38,7 +38,7 @@ if (isNil QGVAR(defaultLoadoutsList)) then { if (is3DEN) then { GVAR(defaultLoadoutsList) = (QGVAR(DummyCategory) get3DENMissionAttribute QGVAR(DefaultLoadoutsListAttribute)); } else { - GVAR(defaultLoadoutsList) = []; + GVAR(defaultLoadoutsList) = []; }; }; diff --git a/docs/wiki/framework/arsenal-framework.md b/docs/wiki/framework/arsenal-framework.md index cdaae1e398..9dd8767832 100644 --- a/docs/wiki/framework/arsenal-framework.md +++ b/docs/wiki/framework/arsenal-framework.md @@ -116,6 +116,8 @@ Both of them are optional. ## 4. Default loadouts +### 4.1 Adding default loadouts via 3DEN + While in 3DEN you have the ability to save default loadouts in ACE Arsenal, doing so will make the saved loadouts available to all players (those loadouts are still subject to loadout verification). To do so: - Open ACE Arsenal in 3DEN by editing a unit's loadout. @@ -125,6 +127,19 @@ To do so: This loadout list can be exported to the clipboard by using Shift. + LMB. on the export button, doing the same on the import button will import the list currently in the clipboard. +### 4.2 Adding default loadouts via script + +Since 3.13.0, you can also add default loadouts with the `ace_arsenal_fnc_addDefaultLoadout` function. +```cpp + * 0: Name of loadout + * 1: getUnitLoadout array +``` + +Example: +`["Squad Leader", getUnitLoadout sql1] call ace_arsenal_fnc_addDefaultLoadout` + +If a loadout with the same name exists, it will be overwritten. + ## 5. Stats ACE Arsenal stats are customizable, this will show you how. From 75f8a35d3dc4b83296ae4737840cadc6274eb280 Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Mon, 17 Sep 2018 13:22:18 -0500 Subject: [PATCH 220/235] RHS Compat - Simplify HuntIR mag config (#6580) * RHS Compat - Simplify HuntIR mag config * x --- .../compat_rhs_usf3/CfgMagazineWells.hpp | 5 ++++ optionals/compat_rhs_usf3/CfgWeapons.hpp | 9 ------- optionals/compat_rhs_usf3/config.cpp | 1 + .../compat_rhs_usf3/subConfig/config.cpp | 26 ------------------- 4 files changed, 6 insertions(+), 35 deletions(-) create mode 100644 optionals/compat_rhs_usf3/CfgMagazineWells.hpp delete mode 100644 optionals/compat_rhs_usf3/subConfig/config.cpp diff --git a/optionals/compat_rhs_usf3/CfgMagazineWells.hpp b/optionals/compat_rhs_usf3/CfgMagazineWells.hpp new file mode 100644 index 0000000000..6be0ec603f --- /dev/null +++ b/optionals/compat_rhs_usf3/CfgMagazineWells.hpp @@ -0,0 +1,5 @@ +class CfgMagazineWells { + class UGL_40x36 { // rhsusf\addons\rhsusf_c_weapons\cfgMagazineWells.hpp + ADDON[] = {"ACE_HuntIR_M203"}; + }; +}; diff --git a/optionals/compat_rhs_usf3/CfgWeapons.hpp b/optionals/compat_rhs_usf3/CfgWeapons.hpp index 84299450b2..190cbadd35 100644 --- a/optionals/compat_rhs_usf3/CfgWeapons.hpp +++ b/optionals/compat_rhs_usf3/CfgWeapons.hpp @@ -16,11 +16,6 @@ class CfgWeapons { class Rifle_Base_F; class srifle_EBR_F; class launch_O_Titan_F; - class UGL_F; - - class rhs_weap_M320_Base_F: Pistol_Base_F { // Standalone M320 (pistol slot) - magazines[] += {"ACE_HuntIR_M203"}; - }; class GM6_base_F; class rhs_weap_M107_Base_F: GM6_base_F { ACE_barrelTwist = 381.0; @@ -48,10 +43,6 @@ class CfgWeapons { ACE_RailHeightAboveBore = 2.56518; ACE_barrelTwist = 177.8; ACE_barrelLength = 368.3; - class M203_GL: UGL_F { - magazines[] += {"ACE_HuntIR_M203"}; - }; - // Added to the M320_GL in subConfig }; class rhs_weap_m4a1; class rhs_weap_hk416d10: rhs_weap_m4a1 { diff --git a/optionals/compat_rhs_usf3/config.cpp b/optionals/compat_rhs_usf3/config.cpp index 5847a2ac40..59aaa625bd 100644 --- a/optionals/compat_rhs_usf3/config.cpp +++ b/optionals/compat_rhs_usf3/config.cpp @@ -17,6 +17,7 @@ class CfgPatches { #include "CfgAmmo.hpp" #include "CfgEventHandlers.hpp" #include "CfgMagazines.hpp" +#include "CfgMagazineWells.hpp" #include "CfgWeapons.hpp" #include "CfgVehicles.hpp" #include "CfgGlasses.hpp" diff --git a/optionals/compat_rhs_usf3/subConfig/config.cpp b/optionals/compat_rhs_usf3/subConfig/config.cpp deleted file mode 100644 index e3c3b30ae0..0000000000 --- a/optionals/compat_rhs_usf3/subConfig/config.cpp +++ /dev/null @@ -1,26 +0,0 @@ -#include "\z\ace\addons\compat_rhs_usf3\script_component.hpp" -#undef COMPONENT -#define COMPONENT compat_rhs_usf3_sub - -class CfgPatches { - class ADDON { - name = COMPONENT_NAME; - units[] = {}; - weapons[] = {}; - requiredVersion = REQUIRED_VERSION; - requiredAddons[] = {"ace_compat_rhs_usf3"}; - author = ECSTRING(common,ACETeam); - url = ECSTRING(main,URL); - VERSION_CONFIG; - }; -}; - -class CfgWeapons { - class arifle_MX_Base_F; - class rhs_weap_m4_Base: arifle_MX_Base_F { - class M203_GL; - class M320_GL: M203_GL { - magazines[] += {"ACE_HuntIR_M203"}; - }; - }; -}; From 7988622635bf748df659f9134b17b4305f4e94bd Mon Sep 17 00:00:00 2001 From: Timi007 Date: Mon, 17 Sep 2018 20:52:24 +0200 Subject: [PATCH 221/235] Add the ability to edit user placed markers (#6564) * add the ability to edit user placed markers * remove direct channel from valid channels * add author * optimize get map display replace old method of getting the map display with displayParent * optimize code by adding isEqualTo * correct some spelling mistakes --- AUTHORS.txt | 1 + addons/markers/XEH_preInit.sqf | 10 ++- .../functions/fnc_getEnabledChannels.sqf | 8 +- .../functions/fnc_initInsertMarker.sqf | 80 +++++++++++++------ addons/markers/functions/fnc_placeMarker.sqf | 15 +++- addons/markers/script_component.hpp | 3 +- 6 files changed, 80 insertions(+), 37 deletions(-) diff --git a/AUTHORS.txt b/AUTHORS.txt index 11b34fff14..dafa0ba600 100644 --- a/AUTHORS.txt +++ b/AUTHORS.txt @@ -130,6 +130,7 @@ System98 SzwedzikPL Tachi Tessa Elieff +Timi007 Toaster Tonic Tourorist diff --git a/addons/markers/XEH_preInit.sqf b/addons/markers/XEH_preInit.sqf index abf28d6e8b..885a0a3068 100644 --- a/addons/markers/XEH_preInit.sqf +++ b/addons/markers/XEH_preInit.sqf @@ -17,11 +17,12 @@ if (isNil QGVAR(MarkersCache)) then { for "_a" from 0 to (count _config - 1) do { private _marker = _config select _a; - if (getNumber (_marker >> "scope") == 2) then { + if (getNumber (_marker >> "scope") isEqualTo 2) then { + private _class = configName _marker; private _name = getText (_marker >> "name"); private _icon = getText (_marker >> "icon"); - GVAR(MarkersCache) pushBack [_name, _a, _icon]; + GVAR(MarkersCache) pushBack [_name, _a, _icon, _class]; }; }; }; @@ -35,7 +36,8 @@ if (isNil QGVAR(MarkerColorsCache)) then { for "_a" from 0 to (count _config - 1) do { private _marker = _config select _a; - if (getNumber (_marker >> "scope") == 2) then { + if (getNumber (_marker >> "scope") isEqualTo 2) then { + private _class = configName _marker; private _name = getText (_marker >> "name"); private _rgba = getArray (_marker >> "color"); @@ -48,7 +50,7 @@ if (isNil QGVAR(MarkerColorsCache)) then { _rgba params ["_red", "_green", "_blue", "_alpha"]; private _icon = format ["#(argb,8,8,3)color(%1,%2,%3,%4)", _red, _green, _blue, _alpha]; - GVAR(MarkerColorsCache) pushBack [_name, _a, _icon]; + GVAR(MarkerColorsCache) pushBack [_name, _a, _icon, _class]; }; }; }; diff --git a/addons/markers/functions/fnc_getEnabledChannels.sqf b/addons/markers/functions/fnc_getEnabledChannels.sqf index eb4bcfd5ce..8919de5eae 100644 --- a/addons/markers/functions/fnc_getEnabledChannels.sqf +++ b/addons/markers/functions/fnc_getEnabledChannels.sqf @@ -1,5 +1,5 @@ /* - * Author: commy2 + * Author: commy2, Timi007 * Return enabled channels. * * Arguments: @@ -40,12 +40,8 @@ if (_localize) then { if (setCurrentChannel 4) then { _enabledChannels pushBack localize "str_channel_vehicle"; }; - - if (setCurrentChannel 5) then { - _enabledChannels pushBack localize "str_channel_direct"; - }; } else { - for "_i" from 0 to 5 do { + for "_i" from 0 to 4 do { if (setCurrentChannel _i) then { _enabledChannels pushBack _i; }; diff --git a/addons/markers/functions/fnc_initInsertMarker.sqf b/addons/markers/functions/fnc_initInsertMarker.sqf index 549a89730d..5263d2b73a 100644 --- a/addons/markers/functions/fnc_initInsertMarker.sqf +++ b/addons/markers/functions/fnc_initInsertMarker.sqf @@ -1,5 +1,5 @@ /* - * Author: BIS, commy2 + * Author: BIS, commy2, Timi007 * Sets up the marker placement * Run instead of \a3\ui_f\scripts\GUI\RscDisplayInsertMarker.sqf * @@ -46,32 +46,39 @@ private _aceAngleSlider = _display displayctrl 1220; private _aceAngleSliderText = _display displayctrl 1221; - //////////////////// - // Install MapDrawEH on current map - private _mapIDD = -1; + private _mapDisplay = displayParent _display; + if (isNull _mapDisplay) exitWith {ERROR("No Map");}; + private _mapCtrl = _mapDisplay displayCtrl 51; - { - if (!isNull (findDisplay _x)) exitWith { - _mapIDD = _x; + GVAR(editingMarker) = ""; + (ctrlMapMouseOver _mapCtrl) params ["_mouseOverType", "_marker"]; + + //check if entity under mouse is a user marker + if (_mouseOverType isEqualTo "marker") then { + if !((_marker find "_USER_DEFINED") isEqualTo -1) then { + GVAR(editingMarker) = _marker; + //hide marker which is being edited because if the user cancels editing, it will still exist unchanged + GVAR(editingMarker) setMarkerAlphaLocal 0; }; - false - } count [12, 37, 52, 53, 160]; - - if (_mapIDD == -1) exitWith { - ERROR("No Map?"); }; - if !(_mapIDD in GVAR(mapDisplaysWithDrawEHs)) then { - GVAR(mapDisplaysWithDrawEHs) pushBack _mapIDD; - ((finddisplay _mapIDD) displayctrl 51) ctrlAddEventHandler ["Draw", {_this call FUNC(mapDrawEH)}]; // @todo check if persistent + //////////////////// + // Install MapDrawEH on current map + if !((ctrlIDD _mapDisplay) in GVAR(mapDisplaysWithDrawEHs)) then { + GVAR(mapDisplaysWithDrawEHs) pushBack (ctrlIDD _mapDisplay); + _mapCtrl ctrlAddEventHandler ["Draw", {_this call FUNC(mapDrawEH)}]; // @todo check if persistent }; //////////////////// // Calculate center position of the marker placement ctrl - private _pos = ctrlPosition _picture; - _pos = [(_pos select 0) + (_pos select 2) / 2, (_pos select 1) + (_pos select 3) / 2]; - - GVAR(currentMarkerPosition) = ((findDisplay _mapIDD) displayCtrl 51) ctrlMapScreenToWorld _pos; + if !(GVAR(editingMarker) isEqualTo "") then { + //prevent changing the original marker position + GVAR(currentMarkerPosition) = markerPos GVAR(editingMarker); + } else { + private _pos = ctrlPosition _picture; + _pos = [(_pos select 0) + (_pos select 2) / 2, (_pos select 1) + (_pos select 3) / 2]; + GVAR(currentMarkerPosition) = _mapCtrl ctrlMapScreenToWorld _pos; + }; //Hide the bis picture: _picture ctrlShow false; @@ -79,12 +86,16 @@ // prevent vanilla key input _display displayAddEventHandler ["KeyDown", {(_this select 1) in [200, 208]}]; + if !((markerText GVAR(editingMarker)) isEqualTo "") then { + //fill text input with text from marker which is being edited + _text ctrlSetText (markerText GVAR(editingMarker)); + }; //Focus on the text input ctrlSetFocus _text; //--- Background - _pos = ctrlposition _text; + private _pos = ctrlposition _text; _pos params ["_posX", "_posY", "_posW", "_posH"]; _posX = _posX + 0.01; _posY = _posY min ((safeZoneH + safeZoneY) - (8 * _posH + 8 * BORDER)); //prevent buttons being placed below bottom edge of screen @@ -161,12 +172,20 @@ }; }; - private _currentChannelName = CHANNEL_NAMES param [currentChannel, localize "str_channel_group"]; + private _selectChannel = if !(GVAR(editingMarker) isEqualTo "") then { + //get the channel where the marker was placed in + parseNumber ((GVAR(editingMarker) splitString "/") param [2, "3"]) + } else { + currentChannel + }; + + private _currentChannelName = CHANNEL_NAMES param [_selectChannel, localize "str_channel_group"]; // select current channel in list box, must be done after lbDelete for "_j" from 0 to (lbSize _channel - 1) do { if (_channel lbText _j == _currentChannelName) then { _channel lbSetCurSel _j; + setCurrentChannel (CHANNEL_NAMES find _currentChannelName); }; }; @@ -198,10 +217,15 @@ // init marker shape lb lbClear _aceShapeLB; { - _x params ["_add", "_set", "_pic"]; + _x params ["_add", "_set", "_pic", "_classname"]; _aceShapeLB lbAdd _add; _aceShapeLB lbSetValue [_forEachIndex, _set]; _aceShapeLB lbSetPicture [_forEachIndex, _pic]; + + if ((markerType GVAR(editingMarker)) isEqualTo _classname) then { + //if the marker is being edited then get the original shape + GVAR(curSelMarkerShape) = _forEachIndex; + }; } forEach GVAR(MarkersCache); private _curSelShape = GETGVAR(curSelMarkerShape,0); @@ -215,10 +239,15 @@ // init marker color lb lbClear _aceColorLB; { - _x params ["_add", "_set", "_pic"]; + _x params ["_add", "_set", "_pic", "_classname"]; _aceColorLB lbAdd _add; _aceColorLB lbSetValue [_forEachIndex, _set]; _aceColorLB lbSetPicture [_forEachIndex, _pic]; + + if ((markerColor GVAR(editingMarker)) isEqualTo _classname) then { + //if the marker is being edited then get the original color + GVAR(curSelMarkerColor) = _forEachIndex; + }; } forEach GVAR(MarkerColorsCache); private _curSelColor = GETGVAR(curSelMarkerColor,0); @@ -232,6 +261,11 @@ // init marker angle slider _aceAngleSlider sliderSetRange [-180, 180]; + if !(GVAR(editingMarker) isEqualTo "") then { + //get the original direction + GVAR(currentMarkerAngle) = markerDir GVAR(editingMarker); + }; + private _curSelAngle = GETGVAR(currentMarkerAngle,0); _aceAngleSlider sliderSetPosition _curSelAngle; diff --git a/addons/markers/functions/fnc_placeMarker.sqf b/addons/markers/functions/fnc_placeMarker.sqf index 281953e104..0eca5bf35e 100644 --- a/addons/markers/functions/fnc_placeMarker.sqf +++ b/addons/markers/functions/fnc_placeMarker.sqf @@ -1,5 +1,5 @@ /* - * Author: commy2 + * Author: commy2, Timi007 * MarkerPlacement closed * * Arguments: @@ -20,7 +20,11 @@ disableserialization; params ["_display", "_closeNum"]; TRACE_2("params",_display,_closeNum); -if (_closeNum == 1) then { +if (_closeNum isEqualTo 1) then { + if !(GVAR(editingMarker) isEqualTo "") then { + //delete "old" marker + deleteMarker GVAR(editingMarker); + }; // set and send marker data the next frame. the actual marker isn't created yet [{ [QGVAR(setMarkerNetwork), [ @@ -33,4 +37,11 @@ if (_closeNum == 1) then { ]] call CBA_fnc_globalEvent; }, []] call CBA_fnc_execNextFrame; +} else { + if !(GVAR(editingMarker) isEqualTo "") then { + //editing was canceled show the original marker again + GVAR(editingMarker) setMarkerAlphaLocal 1; + }; }; + +GVAR(editingMarker) = ""; diff --git a/addons/markers/script_component.hpp b/addons/markers/script_component.hpp index c081cbcc39..fdb5f1614e 100644 --- a/addons/markers/script_component.hpp +++ b/addons/markers/script_component.hpp @@ -21,8 +21,7 @@ localize "str_channel_side", \ localize "str_channel_command", \ localize "str_channel_group", \ - localize "str_channel_vehicle", \ - localize "str_channel_direct" \ + localize "str_channel_vehicle" \ ] #define MOVE_RESTRICTION_NOBODY -1 From 803d497d8ab333dd23ec7693c85c4dcf03d493c9 Mon Sep 17 00:00:00 2001 From: mharis001 <34453221+mharis001@users.noreply.github.com> Date: Mon, 17 Sep 2018 15:03:28 -0400 Subject: [PATCH 222/235] Improve checking of unit items (#6350) * Add uniqueItems function * Optimize dogtag children actions function * Optimize getDetonators item search * Store CfgWeapons lookup in getDetonators * Update items to use new function * Update items to use new function 2 * More optimization of uniqueItems function * Update items to use new function 3 --- .../functions/fnc_getChildrenActions.sqf | 2 +- .../functions/fnc_canApplyHandcuffs.sqf | 2 +- addons/common/XEH_PREP.hpp | 1 + addons/common/XEH_postInit.sqf | 5 +++ addons/common/functions/fnc_hasItem.sqf | 2 +- addons/common/functions/fnc_uniqueItems.sqf | 39 ++++++++++++++++++ addons/common/functions/fnc_useItem.sqf | 2 +- addons/dogtags/CfgVehicles.hpp | 2 +- .../functions/fnc_addDogtagActions.sqf | 41 ++++++++----------- addons/explosives/functions/fnc_canDefuse.sqf | 2 +- .../functions/fnc_getDetonators.sqf | 17 ++++---- .../functions/fnc_onIncapacitated.sqf | 2 +- .../functions/fnc_canRefuelUAV.sqf | 2 +- .../map/functions/fnc_getUnitFlashlights.sqf | 2 +- .../maptools/functions/fnc_canUseMapTools.sqf | 2 +- .../functions/fnc_handleMouseMove.sqf | 2 +- .../functions/fnc_updateMapToolMarkers.sqf | 2 +- addons/microdagr/XEH_clientInit.sqf | 2 +- addons/microdagr/functions/fnc_canShow.sqf | 4 +- .../microdagr/functions/fnc_openDisplay.sqf | 2 +- .../functions/fnc_rangeTableCanUse.sqf | 2 +- addons/sandbag/functions/fnc_canDeploy.sqf | 2 +- .../fnc_handlePlayerInventoryChanged.sqf | 2 +- .../fnc_canContinueDiggingTrench.sqf | 2 +- .../trenches/functions/fnc_canDigTrench.sqf | 2 +- .../functions/fnc_canRemoveTrench.sqf | 2 +- .../fnc_handlePlayerInventoryChanged.sqf | 2 +- .../functions/fnc_hasKeyForVehicle.sqf | 5 ++- addons/vehiclelock/functions/fnc_lockpick.sqf | 2 +- 29 files changed, 95 insertions(+), 61 deletions(-) create mode 100644 addons/common/functions/fnc_uniqueItems.sqf diff --git a/addons/attach/functions/fnc_getChildrenActions.sqf b/addons/attach/functions/fnc_getChildrenActions.sqf index 050eec4021..c156006931 100644 --- a/addons/attach/functions/fnc_getChildrenActions.sqf +++ b/addons/attach/functions/fnc_getChildrenActions.sqf @@ -43,6 +43,6 @@ private _magazines = magazines _player; private _action = [_x, _displayName, _picture, {[{_this call FUNC(attach)}, _this] call CBA_fnc_execNextFrame}, {true}, {}, _x] call EFUNC(interact_menu,createAction); _actions pushBack [_action, [], _target]; }; -} forEach ([_player, false] call CBA_fnc_uniqueUnitItems); +} forEach (_player call EFUNC(common,uniqueItems)); _actions diff --git a/addons/captives/functions/fnc_canApplyHandcuffs.sqf b/addons/captives/functions/fnc_canApplyHandcuffs.sqf index 231970255b..c1e3128feb 100644 --- a/addons/captives/functions/fnc_canApplyHandcuffs.sqf +++ b/addons/captives/functions/fnc_canApplyHandcuffs.sqf @@ -20,7 +20,7 @@ params ["_unit", "_target"]; //Check sides, Player has cableTie, target is alive and not already handcuffed (GVAR(allowHandcuffOwnSide) || {(side _unit) != (side _target)}) && -{"ACE_CableTie" in (items _unit)} && +{"ACE_CableTie" in (_unit call EFUNC(common,uniqueItems))} && {alive _target} && {!(_target getVariable [QGVAR(isHandcuffed), false])} && { diff --git a/addons/common/XEH_PREP.hpp b/addons/common/XEH_PREP.hpp index 526c498cd9..c070623893 100644 --- a/addons/common/XEH_PREP.hpp +++ b/addons/common/XEH_PREP.hpp @@ -178,6 +178,7 @@ PREP(toHex); PREP(toNumber); PREP(unhideUnit); PREP(uniqueElements); +PREP(uniqueItems); PREP(unloadPerson); PREP(unloadPersonLocal); PREP(unmuteUnit); diff --git a/addons/common/XEH_postInit.sqf b/addons/common/XEH_postInit.sqf index 4299213e44..ce6126cba7 100644 --- a/addons/common/XEH_postInit.sqf +++ b/addons/common/XEH_postInit.sqf @@ -261,6 +261,11 @@ TRACE_1("adding unit playerEH to set ace_player",isNull cba_events_oldUnit); ACE_player = (_this select 0); }, true] call CBA_fnc_addPlayerEventHandler; +// Clear uniqueItems cache on loadout change +["loadout", { + GVAR(uniqueItemsCache) = nil; +}] call CBA_fnc_addPlayerEventHandler; + GVAR(OldIsCamera) = false; [{ diff --git a/addons/common/functions/fnc_hasItem.sqf b/addons/common/functions/fnc_hasItem.sqf index 9d5d79b1a5..04d3dd0902 100644 --- a/addons/common/functions/fnc_hasItem.sqf +++ b/addons/common/functions/fnc_hasItem.sqf @@ -18,4 +18,4 @@ params [["_unit", objNull, [objNull]], ["_item", "", [""]]]; -_item in items _unit +_item in (_unit call EFUNC(common,uniqueItems)) diff --git a/addons/common/functions/fnc_uniqueItems.sqf b/addons/common/functions/fnc_uniqueItems.sqf new file mode 100644 index 0000000000..b5e16ab6ed --- /dev/null +++ b/addons/common/functions/fnc_uniqueItems.sqf @@ -0,0 +1,39 @@ +/* + * Author: mharis001 + * Returns list of unique items in a unit's inventory. + * Items are cached if unit is ACE_player. + * + * Arguments: + * 0: Unit + * + * Return Value: + * Items + * + * Example: + * [_player] call ace_common_fnc_uniqueItems + * + * Public: No + */ +#include "script_component.hpp" + +params ["_unit"]; + +private _fnc_getItems = { + private _items = (getItemCargo uniformContainer _unit) select 0; + _items append ((getItemCargo vestContainer _unit) select 0); + _items append ((getItemCargo backpackContainer _unit) select 0); + + _items arrayIntersect _items +}; + +// Use cached items list if unit is ACE_player +if (_unit isEqualTo ACE_player) then { + private _items = GVAR(uniqueItemsCache); + if (isNil "_items") then { + _items = call _fnc_getItems; + GVAR(uniqueItemsCache) = _items; + }; + +_items +} else { + call _fnc_getItems; +}; diff --git a/addons/common/functions/fnc_useItem.sqf b/addons/common/functions/fnc_useItem.sqf index 3accecc429..44be64587c 100644 --- a/addons/common/functions/fnc_useItem.sqf +++ b/addons/common/functions/fnc_useItem.sqf @@ -22,7 +22,7 @@ private _return = false; if !(_vehicleUsage) then { if (_item != "") then { - if (_item in items _unit) then { + if (_item in (_unit call EFUNC(common,uniqueItems))) then { _unit removeItem _item; _return = true; } else { diff --git a/addons/dogtags/CfgVehicles.hpp b/addons/dogtags/CfgVehicles.hpp index af8cfb1442..cc56410699 100644 --- a/addons/dogtags/CfgVehicles.hpp +++ b/addons/dogtags/CfgVehicles.hpp @@ -36,7 +36,7 @@ class CfgVehicles { condition = "true"; statement = ""; exceptions[] = {"isNotSwimming", "isNotInside", "isNotSitting"}; - insertChildren = QUOTE(_this call DFUNC(addDogtagActions)); + insertChildren = QUOTE(_player call DFUNC(addDogtagActions)); }; }; }; diff --git a/addons/dogtags/functions/fnc_addDogtagActions.sqf b/addons/dogtags/functions/fnc_addDogtagActions.sqf index 988f909775..65ebfe5034 100644 --- a/addons/dogtags/functions/fnc_addDogtagActions.sqf +++ b/addons/dogtags/functions/fnc_addDogtagActions.sqf @@ -1,42 +1,33 @@ /* - * Author: SzwedzikPL - * Creates one action per dogtag. + * Author: SzwedzikPL, mharis001 + * Returns children actions for checking dogtags in player's inventory. * * Arguments: - * 0: Target - * 1: Player + * 0: Player * * Return Value: - * Children actions + * Actions * * Example: - * _childrenActions = [unit, player] call ace_dogtags_fnc_addDogtagActions + * [_player] call ace_dogtags_fnc_addDogtagActions * * Public: No */ #include "script_component.hpp" -params ["_target", "_player"]; +params ["_player"]; -//Get all dogtags and their ids -private _unitDogtags = []; -private _unitDogtagIDs = []; -{ - private _id = getNumber (configFile >> "CfgWeapons" >> _x >> QGVAR(tagID)); - if (_id > 0) then { - _unitDogtags pushBack _x; - _unitDogtagIDs pushBack _id; - }; -} forEach items _player; - -//Create action children for all dogtags +private _cfgWeapons = configFile >> "CfgWeapons"; private _actions = []; -{ - private _displayName = getText (configFile >> "CfgWeapons" >> _x >> "displayName"); - private _picture = getText (configFile >> "CfgWeapons" >> _x >> "picture"); - private _action = [_x, _displayName, _picture, {_this call FUNC(checkDogtagItem)}, {true}, {}, _x] call EFUNC(interact_menu,createAction); - _actions pushBack [_action, [], _player]; -} forEach _unitDogtags; +{ + private _config = _cfgWeapons >> _x; + if (getNumber (_config >> QGVAR(tagID)) > 0) then { + private _displayName = getText (_config >> "displayName"); + private _picture = getText (_config >> "picture"); + private _action = [_x, _displayName, _picture, {_this call FUNC(checkDogtagItem)}, {true}, {}, _x] call EFUNC(interact_menu,createAction); + _actions pushBack [_action, [], _player]; + }; +} forEach (_player call EFUNC(common,uniqueItems)); _actions diff --git a/addons/explosives/functions/fnc_canDefuse.sqf b/addons/explosives/functions/fnc_canDefuse.sqf index be114bf072..98f84278db 100644 --- a/addons/explosives/functions/fnc_canDefuse.sqf +++ b/addons/explosives/functions/fnc_canDefuse.sqf @@ -24,7 +24,7 @@ if (isNull _explosive) exitWith { deleteVehicle _target; false }; -if (vehicle _unit != _unit || {!("ACE_DefusalKit" in (items _unit))}) exitWith {false}; +if (vehicle _unit != _unit || {!("ACE_DefusalKit" in (_unit call EFUNC(common,uniqueItems)))}) exitWith {false}; if (GVAR(RequireSpecialist) && {!([_unit] call EFUNC(Common,isEOD))}) exitWith {false}; diff --git a/addons/explosives/functions/fnc_getDetonators.sqf b/addons/explosives/functions/fnc_getDetonators.sqf index d8c095e6f0..279613cf1e 100644 --- a/addons/explosives/functions/fnc_getDetonators.sqf +++ b/addons/explosives/functions/fnc_getDetonators.sqf @@ -1,25 +1,22 @@ /* - * Author: Garth 'L-H' de Wet - * Returns all the detonators of the unit + * Author: Garth 'L-H' de Wet, mharis001 + * Returns all detonators the given unit has. * * Arguments: * 0: Unit * * Return Value: - * Configs of all detonators + * Config names of detonators * * Example: - * _detonators = [player] call ACE_Explosives_fnc_getDetonators; + * [_player] call ace_explosives_fnc_getDetonators * * Public: Yes */ #include "script_component.hpp" -// IGNORE_PRIVATE_WARNING(_detonators); params ["_unit"]; -TRACE_1("params",_unit); +TRACE_1("Getting detonators",_unit); -private _result = (items _unit) select {getNumber (ConfigFile >> "CfgWeapons" >> _x >> QGVAR(Detonator)) == 1}; -_result = _result arrayIntersect _result; - -_result +private _cfgWeapons = configFile >> "CfgWeapons"; +(_unit call EFUNC(common,uniqueItems)) select {getNumber (_cfgWeapons >> _x >> QGVAR(Detonator)) == 1}; diff --git a/addons/explosives/functions/fnc_onIncapacitated.sqf b/addons/explosives/functions/fnc_onIncapacitated.sqf index b134cdb45e..2ae23629d5 100644 --- a/addons/explosives/functions/fnc_onIncapacitated.sqf +++ b/addons/explosives/functions/fnc_onIncapacitated.sqf @@ -25,7 +25,7 @@ if (_unit == ace_player) then { }; // Exit if no item -if (({_x == "ACE_DeadManSwitch"} count (items _unit)) == 0) exitWith {}; +if !("ACE_DeadManSwitch" in (_unit call EFUNC(common,uniqueItems))) exitWith {}; private _range = getNumber (configFile >> "CfgWeapons" >> "ACE_DeadManSwitch" >> QGVAR(range)); private _deadman = [_unit, "DeadManSwitch"] call FUNC(getPlacedExplosives); diff --git a/addons/logistics_uavbattery/functions/fnc_canRefuelUAV.sqf b/addons/logistics_uavbattery/functions/fnc_canRefuelUAV.sqf index 451753a9e2..7d000fdfaa 100644 --- a/addons/logistics_uavbattery/functions/fnc_canRefuelUAV.sqf +++ b/addons/logistics_uavbattery/functions/fnc_canRefuelUAV.sqf @@ -18,4 +18,4 @@ params ["_caller", "_target"]; -("ACE_UAVBattery" in (items _caller)) && {(fuel _target) < 1} && {(speed _target) < 1} && {!(isEngineOn _target)} && {(_target distance _caller) <= 4} +("ACE_UAVBattery" in (_caller call EFUNC(common,uniqueItems))) && {(fuel _target) < 1} && {(speed _target) < 1} && {!(isEngineOn _target)} && {(_target distance _caller) <= 4} diff --git a/addons/map/functions/fnc_getUnitFlashlights.sqf b/addons/map/functions/fnc_getUnitFlashlights.sqf index 86eeed006d..9987d59b1d 100644 --- a/addons/map/functions/fnc_getUnitFlashlights.sqf +++ b/addons/map/functions/fnc_getUnitFlashlights.sqf @@ -24,6 +24,6 @@ private _flashlights = []; if (isText (configFile >> "CfgWeapons" >> _x >> "ItemInfo" >> "FlashLight" >> "ACE_Flashlight_Colour")) then { _flashlights pushBackUnique _x; }; -} forEach (items _unit); +} forEach (_unit call EFUNC(common,uniqueItems)); _flashlights diff --git a/addons/maptools/functions/fnc_canUseMapTools.sqf b/addons/maptools/functions/fnc_canUseMapTools.sqf index bc3c7fbb8a..8b87855d79 100644 --- a/addons/maptools/functions/fnc_canUseMapTools.sqf +++ b/addons/maptools/functions/fnc_canUseMapTools.sqf @@ -24,6 +24,6 @@ visibleMap && } forEach (assignedItems ACE_player); false } && -{"ACE_MapTools" in (items ACE_player)} && +{"ACE_MapTools" in (ACE_player call EFUNC(common,uniqueItems))} && {!GVAR(mapTool_isDragging)} && {!GVAR(mapTool_isRotating)} diff --git a/addons/maptools/functions/fnc_handleMouseMove.sqf b/addons/maptools/functions/fnc_handleMouseMove.sqf index a7c48cfed4..8ff8fd1dc1 100644 --- a/addons/maptools/functions/fnc_handleMouseMove.sqf +++ b/addons/maptools/functions/fnc_handleMouseMove.sqf @@ -21,7 +21,7 @@ params ["_control", "_mousePosX", "_mousePosY"]; TRACE_3("params",_control,_mousePosX,_mousePosY); // If have no map tools, then exit -if (((isNull ACE_player) || {!("ACE_MapTools" in items ACE_player)})) exitWith { +if (((isNull ACE_player) || {!("ACE_MapTools" in (ACE_player call EFUNC(common,uniqueItems)))})) exitWith { false }; diff --git a/addons/maptools/functions/fnc_updateMapToolMarkers.sqf b/addons/maptools/functions/fnc_updateMapToolMarkers.sqf index 026a4037d1..98d47ce385 100644 --- a/addons/maptools/functions/fnc_updateMapToolMarkers.sqf +++ b/addons/maptools/functions/fnc_updateMapToolMarkers.sqf @@ -17,7 +17,7 @@ params ["_theMap"]; -if ((GVAR(mapTool_Shown) == 0) || {!("ACE_MapTools" in items ACE_player)}) exitWith {}; +if ((GVAR(mapTool_Shown) == 0) || {!("ACE_MapTools" in (ACE_player call EFUNC(common,uniqueItems)))}) exitWith {}; private _rotatingTexture = ""; private _textureWidth = 0; diff --git a/addons/microdagr/XEH_clientInit.sqf b/addons/microdagr/XEH_clientInit.sqf index d82721e697..7a8d775a05 100644 --- a/addons/microdagr/XEH_clientInit.sqf +++ b/addons/microdagr/XEH_clientInit.sqf @@ -5,7 +5,7 @@ if (!hasInterface) exitWith {}; //Add deviceKey entry: private _conditonCode = { - ("ACE_microDAGR" in (items ACE_player)) + "ACE_microDAGR" in (ACE_player call EFUNC(common,uniqueItems)) }; private _toggleCode = { if !([ACE_player, objNull, ["notOnMap", "isNotInside", "isNotSitting"]] call EFUNC(common,canInteractWith)) exitWith {}; diff --git a/addons/microdagr/functions/fnc_canShow.sqf b/addons/microdagr/functions/fnc_canShow.sqf index cb652b9214..17cd48cbed 100644 --- a/addons/microdagr/functions/fnc_canShow.sqf +++ b/addons/microdagr/functions/fnc_canShow.sqf @@ -22,12 +22,12 @@ _returnValue = switch (_showType) do { case (DISPLAY_MODE_CLOSED): { true }; //Can always close case (DISPLAY_MODE_HIDDEN): { true }; //Can always hide case (DISPLAY_MODE_DIALOG): { - ("ACE_microDAGR" in (items ACE_player)) && {[ACE_player, objNull, ["notOnMap", "isNotInside", "isNotSitting"]] call EFUNC(common,canInteractWith)} + ("ACE_microDAGR" in (ACE_player call EFUNC(common,uniqueItems))) && {[ACE_player, objNull, ["notOnMap", "isNotInside", "isNotSitting"]] call EFUNC(common,canInteractWith)} }; case (DISPLAY_MODE_DISPLAY): { //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_microDAGR" in (ACE_player call EFUNC(common,uniqueItems))} && {[ACE_player, objNull, ["notOnMap", "isNotInside", "isNotSitting"]] call EFUNC(common,canInteractWith)} }; default { false }; diff --git a/addons/microdagr/functions/fnc_openDisplay.sqf b/addons/microdagr/functions/fnc_openDisplay.sqf index 0f407138f5..3f7594d3a7 100644 --- a/addons/microdagr/functions/fnc_openDisplay.sqf +++ b/addons/microdagr/functions/fnc_openDisplay.sqf @@ -73,7 +73,7 @@ if ((_oldShowMode == DISPLAY_MODE_CLOSED) && {GVAR(currentShowMode) != DISPLAY_M [{ params ["_args", "_idPFH"]; _args params ["_player"]; - if ((isNull ACE_player) || {!alive ACE_player} || {ACE_player != _player} || {!("ACE_microDAGR" in (items ACE_player))} || {GVAR(currentShowMode) == DISPLAY_MODE_CLOSED}) then { + if ((isNull ACE_player) || {!alive ACE_player} || {ACE_player != _player} || {!("ACE_microDAGR" in (ACE_player call EFUNC(common,uniqueItems)))} || {GVAR(currentShowMode) == DISPLAY_MODE_CLOSED}) then { //Close Display if still open: if (GVAR(currentShowMode) != DISPLAY_MODE_CLOSED) then { [DISPLAY_MODE_CLOSED] call FUNC(openDisplay); diff --git a/addons/mk6mortar/functions/fnc_rangeTableCanUse.sqf b/addons/mk6mortar/functions/fnc_rangeTableCanUse.sqf index b98ee543f5..6799798802 100644 --- a/addons/mk6mortar/functions/fnc_rangeTableCanUse.sqf +++ b/addons/mk6mortar/functions/fnc_rangeTableCanUse.sqf @@ -18,4 +18,4 @@ params ["_vehicle", "_player"]; -"ACE_RangeTable_82mm" in (items _player); +"ACE_RangeTable_82mm" in (_player call EFUNC(common,uniqueItems)); diff --git a/addons/sandbag/functions/fnc_canDeploy.sqf b/addons/sandbag/functions/fnc_canDeploy.sqf index 426dde56f2..d22fef72ee 100644 --- a/addons/sandbag/functions/fnc_canDeploy.sqf +++ b/addons/sandbag/functions/fnc_canDeploy.sqf @@ -17,6 +17,6 @@ params ["_unit"]; -if !("ACE_Sandbag_empty" in items _unit) exitWith {false}; +if !("ACE_Sandbag_empty" in (_unit call EFUNC(common,uniqueItems))) exitWith {false}; _unit call EFUNC(common,canDig) diff --git a/addons/sandbag/functions/fnc_handlePlayerInventoryChanged.sqf b/addons/sandbag/functions/fnc_handlePlayerInventoryChanged.sqf index 50d2fdede0..c83c4158c7 100644 --- a/addons/sandbag/functions/fnc_handlePlayerInventoryChanged.sqf +++ b/addons/sandbag/functions/fnc_handlePlayerInventoryChanged.sqf @@ -19,7 +19,7 @@ params ["_unit"]; if (_unit getVariable [QGVAR(isDeploying), false]) then { - if !("ACE_Sandbag_empty" in items _unit) then { + if !("ACE_Sandbag_empty" in (_unit call EFUNC(common,uniqueItems))) then { [_unit] call FUNC(deployCancel); }; }; diff --git a/addons/trenches/functions/fnc_canContinueDiggingTrench.sqf b/addons/trenches/functions/fnc_canContinueDiggingTrench.sqf index 2e1942d6b8..782c434dfd 100644 --- a/addons/trenches/functions/fnc_canContinueDiggingTrench.sqf +++ b/addons/trenches/functions/fnc_canContinueDiggingTrench.sqf @@ -18,7 +18,7 @@ params ["_trench", "_unit"]; -if !("ACE_EntrenchingTool" in items _unit) exitWith {false}; +if !("ACE_EntrenchingTool" in (_unit call EFUNC(common,uniqueItems))) exitWith {false}; if ((_trench getVariable [QGVAR(progress), 0]) >= 1) exitWith {false}; // Prevent removing/digging trench by more than one person diff --git a/addons/trenches/functions/fnc_canDigTrench.sqf b/addons/trenches/functions/fnc_canDigTrench.sqf index a99c5c6b60..0749cbf574 100644 --- a/addons/trenches/functions/fnc_canDigTrench.sqf +++ b/addons/trenches/functions/fnc_canDigTrench.sqf @@ -17,6 +17,6 @@ params ["_unit"]; -if !("ACE_EntrenchingTool" in items _unit) exitWith {false}; +if !("ACE_EntrenchingTool" in (_unit call EFUNC(common,uniqueItems))) exitWith {false}; _unit call EFUNC(common,canDig) diff --git a/addons/trenches/functions/fnc_canRemoveTrench.sqf b/addons/trenches/functions/fnc_canRemoveTrench.sqf index 4e33857637..73cf04f547 100644 --- a/addons/trenches/functions/fnc_canRemoveTrench.sqf +++ b/addons/trenches/functions/fnc_canRemoveTrench.sqf @@ -18,7 +18,7 @@ params ["_trench", "_unit"]; -if !("ACE_EntrenchingTool" in items _unit) exitWith {false}; +if !("ACE_EntrenchingTool" in (_unit call EFUNC(common,uniqueItems))) exitWith {false}; // Prevent removing/digging trench by more than one person if (_trench getVariable [QGVAR(digging), false]) exitWith {false}; diff --git a/addons/trenches/functions/fnc_handlePlayerInventoryChanged.sqf b/addons/trenches/functions/fnc_handlePlayerInventoryChanged.sqf index 11bdef6072..fa3b935074 100644 --- a/addons/trenches/functions/fnc_handlePlayerInventoryChanged.sqf +++ b/addons/trenches/functions/fnc_handlePlayerInventoryChanged.sqf @@ -19,7 +19,7 @@ params ["_unit"]; if (_unit getVariable [QGVAR(isPlacing), false]) then { - if !("ACE_EntrenchingTool" in items _unit) then { + if !("ACE_EntrenchingTool" in (_unit call EFUNC(common,uniqueItems))) then { [_unit] call FUNC(placeCancel); }; }; diff --git a/addons/vehiclelock/functions/fnc_hasKeyForVehicle.sqf b/addons/vehiclelock/functions/fnc_hasKeyForVehicle.sqf index bc566794fe..081cdfd899 100644 --- a/addons/vehiclelock/functions/fnc_hasKeyForVehicle.sqf +++ b/addons/vehiclelock/functions/fnc_hasKeyForVehicle.sqf @@ -25,11 +25,12 @@ if (isNull _veh) exitWith {ERROR("null vehicle"); false}; private _returnValue = false; //Master can open anything "no matter what" -if ("ACE_key_master" in (items _unit)) then {_returnValue = true}; +private _items = _unit call EFUNC(common,uniqueItems); +if ("ACE_key_master" in _items) then {_returnValue = true}; //Check side key private _sideKeyName = [_veh] call FUNC(getVehicleSideKey); -if (_sideKeyName in (items _unit)) then {_returnValue = true}; +if (_sideKeyName in _items) then {_returnValue = true}; //Check custom keys private _customKeys = _veh getVariable [QGVAR(customKeys), []]; diff --git a/addons/vehiclelock/functions/fnc_lockpick.sqf b/addons/vehiclelock/functions/fnc_lockpick.sqf index a08289454a..50e47a2e66 100644 --- a/addons/vehiclelock/functions/fnc_lockpick.sqf +++ b/addons/vehiclelock/functions/fnc_lockpick.sqf @@ -30,7 +30,7 @@ if (isNull _veh) exitWith {ERROR("null vehicle"); false}; if ((locked _veh) == 0) exitWith {false}; //need lockpick item -if (!("ACE_key_lockpick" in (items _unit))) exitWith {false}; +if !("ACE_key_lockpick" in (_unit call EFUNC(common,uniqueItems))) exitWith {false}; private _vehLockpickStrenth = _veh getVariable[QGVAR(lockpickStrength), GVAR(DefaultLockpickStrength)]; if (!(_vehLockpickStrenth isEqualType 0)) exitWith {ERROR("ACE_vehicleLock_LockpickStrength invalid"); false}; From e2ac18a05d5f646bc7cbc043bcc148fde4c0f5dd Mon Sep 17 00:00:00 2001 From: Dedmen Miller Date: Mon, 17 Sep 2018 21:19:29 +0200 Subject: [PATCH 223/235] [WIP] Fix script errors reporting wrong line numbers (#6407) * advanced_ballistics * advanced_fatigue * advanced_throwing * ai * aircraft * arsenal * atragmx * attach * backpacks * ballistics * captives * cargo * chemlights * common * concertina_wire * cookoff * dagr * disarming * disposable * dogtags * dragging * explosives * fastroping * fcs * finger * frag * gestures * gforces * goggles * grenades * gunbag * hearing * hitreactions * huntir * interact_menu * interaction * inventory * kestrel4500 * laser * laserpointer * logistics_uavbattery * logistics_wirecutter * magazinerepack * map * map_gestures * maptools * markers * medical * medical_ai * medical_blood * medical_menu * microdagr * minedetector * missileguidance * missionmodules * mk6mortar * modules * movement * nametags * nightvision * nlaw * optics * optionsmenu * overheating * overpressure * parachute * pylons * quickmount * rangecard * rearm * recoil * refuel * reload * reloadlaunchers * repair * respawn * safemode * sandbag * scopes * slideshow * spectator * spottingscope * switchunits * tacticalladder * tagging * trenches * tripod * ui * vector * vehiclelock * vehicles * viewdistance * weaponselect * weather * winddeflection * yardage450 * zeus * arsenal defines.hpp * optionals * DEBUG_MODE_FULL 1 * DEBUG_MODE_FULL 2 * Manual fixes * Add SQF Validator check for #include after block comment * explosives fnc_openTimerUI * fix uniqueItems --- ...nc_calculateAmmoTemperatureVelocityShift.sqf | 2 +- .../fnc_calculateAtmosphericCorrection.sqf | 2 +- .../fnc_calculateBarrelLengthVelocityShift.sqf | 2 +- .../functions/fnc_calculateRetardation.sqf | 2 +- .../functions/fnc_calculateStabilityFactor.sqf | 2 +- .../functions/fnc_diagnoseWeapons.sqf | 4 ++-- .../functions/fnc_displayProtractor.sqf | 2 +- .../functions/fnc_handleFirePFH.sqf | 2 +- .../functions/fnc_handleFired.sqf | 2 +- .../functions/fnc_initModuleSettings.sqf | 2 +- .../fnc_initializeTerrainExtension.sqf | 2 +- .../functions/fnc_readAmmoDataFromConfig.sqf | 2 +- .../functions/fnc_readWeaponDataFromConfig.sqf | 2 +- .../functions/fnc_addDutyFactor.sqf | 2 +- .../functions/fnc_createStaminaBar.sqf | 2 +- .../functions/fnc_getAnimDuty.sqf | 2 +- .../functions/fnc_getMetabolicCosts.sqf | 2 +- .../functions/fnc_handleEffects.sqf | 2 +- .../functions/fnc_handlePlayerChanged.sqf | 2 +- .../functions/fnc_handleStaminaBar.sqf | 2 +- .../advanced_fatigue/functions/fnc_mainLoop.sqf | 2 +- .../functions/fnc_moduleSettings.sqf | 2 +- .../functions/fnc_removeDutyFactor.sqf | 2 +- .../functions/fnc_canPrepare.sqf | 2 +- .../functions/fnc_canThrow.sqf | 2 +- .../advanced_throwing/functions/fnc_drawArc.sqf | 2 +- .../functions/fnc_drawThrowable.sqf | 2 +- .../functions/fnc_exitThrowMode.sqf | 2 +- .../functions/fnc_getMuzzle.sqf | 2 +- .../functions/fnc_moduleInit.sqf | 2 +- .../functions/fnc_onKeyDown.sqf | 2 +- .../functions/fnc_onMouseButtonDown.sqf | 2 +- .../functions/fnc_onMouseScroll.sqf | 2 +- .../advanced_throwing/functions/fnc_pickUp.sqf | 2 +- .../advanced_throwing/functions/fnc_prepare.sqf | 2 +- .../advanced_throwing/functions/fnc_prime.sqf | 2 +- .../functions/fnc_renderPickUpInteraction.sqf | 2 +- .../advanced_throwing/functions/fnc_throw.sqf | 2 +- .../functions/fnc_throwFiredXEH.sqf | 2 +- .../functions/fnc_updateControlsHint.sqf | 2 +- addons/ai/functions/fnc_garrison.sqf | 2 +- addons/ai/functions/fnc_garrisonMove.sqf | 2 +- addons/ai/functions/fnc_unGarrison.sqf | 2 +- addons/aircraft/functions/fnc_canShowEject.sqf | 2 +- .../aircraft/functions/fnc_initEjectAction.sqf | 2 +- addons/arsenal/functions/fnc_addListBoxItem.sqf | 3 +-- addons/arsenal/functions/fnc_addStat.sqf | 2 +- .../arsenal/functions/fnc_addVirtualItems.sqf | 4 ++-- addons/arsenal/functions/fnc_buttonCargo.sqf | 4 ++-- addons/arsenal/functions/fnc_buttonClearAll.sqf | 4 ++-- addons/arsenal/functions/fnc_buttonExport.sqf | 2 +- addons/arsenal/functions/fnc_buttonHide.sqf | 4 ++-- addons/arsenal/functions/fnc_buttonImport.sqf | 4 ++-- .../functions/fnc_buttonLoadoutsDelete.sqf | 4 ++-- .../functions/fnc_buttonLoadoutsLoad.sqf | 4 ++-- .../functions/fnc_buttonLoadoutsRename.sqf | 4 ++-- .../functions/fnc_buttonLoadoutsSave.sqf | 4 ++-- .../functions/fnc_buttonLoadoutsShare.sqf | 4 ++-- addons/arsenal/functions/fnc_buttonStats.sqf | 4 ++-- .../arsenal/functions/fnc_buttonStatsPage.sqf | 4 ++-- addons/arsenal/functions/fnc_clearSearchbar.sqf | 4 ++-- addons/arsenal/functions/fnc_compileStats.sqf | 2 +- addons/arsenal/functions/fnc_fillLeftPanel.sqf | 4 ++-- .../arsenal/functions/fnc_fillLoadoutsList.sqf | 4 ++-- addons/arsenal/functions/fnc_fillRightPanel.sqf | 4 ++-- .../functions/fnc_handleLoadoutsSearchbar.sqf | 4 ++-- addons/arsenal/functions/fnc_handleMouse.sqf | 4 ++-- .../arsenal/functions/fnc_handleScrollWheel.sqf | 4 ++-- .../arsenal/functions/fnc_handleSearchbar.sqf | 4 ++-- addons/arsenal/functions/fnc_handleStats.sqf | 4 ++-- addons/arsenal/functions/fnc_initBox.sqf | 2 +- addons/arsenal/functions/fnc_itemInfo.sqf | 4 ++-- .../arsenal/functions/fnc_loadoutsChangeTab.sqf | 4 ++-- addons/arsenal/functions/fnc_message.sqf | 4 ++-- addons/arsenal/functions/fnc_onArsenalClose.sqf | 2 +- addons/arsenal/functions/fnc_onArsenalOpen.sqf | 4 ++-- addons/arsenal/functions/fnc_onKeyDown.sqf | 6 +++--- .../arsenal/functions/fnc_onLoadoutsClose.sqf | 4 ++-- addons/arsenal/functions/fnc_onLoadoutsOpen.sqf | 4 ++-- .../arsenal/functions/fnc_onSelChangedLeft.sqf | 4 ++-- .../functions/fnc_onSelChangedLoadouts.sqf | 4 ++-- .../arsenal/functions/fnc_onSelChangedRight.sqf | 4 ++-- .../functions/fnc_onSelChangedRightListnBox.sqf | 4 ++-- addons/arsenal/functions/fnc_open3DEN.sqf | 2 +- addons/arsenal/functions/fnc_openBox.sqf | 2 +- addons/arsenal/functions/fnc_portVALoadouts.sqf | 2 +- addons/arsenal/functions/fnc_removeBox.sqf | 2 +- addons/arsenal/functions/fnc_removeStat.sqf | 2 +- .../functions/fnc_removeVirtualItems.sqf | 2 +- addons/arsenal/functions/fnc_scanConfig.sqf | 2 +- addons/arsenal/functions/fnc_showItem.sqf | 4 ++-- addons/arsenal/functions/fnc_sortPanel.sqf | 4 ++-- .../functions/fnc_statBarStatement_accuracy.sqf | 2 +- .../functions/fnc_statBarStatement_default.sqf | 2 +- .../functions/fnc_statBarStatement_impact.sqf | 2 +- .../fnc_statBarStatement_rateOfFIre.sqf | 2 +- .../fnc_statTextStatement_accuracy.sqf | 2 +- .../functions/fnc_statTextStatement_mass.sqf | 2 +- .../fnc_statTextStatement_rateOfFire.sqf | 2 +- .../fnc_statTextStatement_scopeMag.sqf | 2 +- addons/arsenal/functions/fnc_updateCamPos.sqf | 2 +- .../arsenal/functions/fnc_updateRightPanel.sqf | 4 ++-- .../functions/fnc_updateUniqueItemsList.sqf | 4 ++-- addons/arsenal/functions/fnc_verifyLoadout.sqf | 4 ++-- addons/atragmx/functions/fnc_add_new_gun.sqf | 2 +- .../fnc_calculate_distance_at_velocity.sqf | 2 +- .../functions/fnc_calculate_range_card.sqf | 2 +- .../functions/fnc_calculate_solution.sqf | 2 +- .../fnc_calculate_target_range_assist.sqf | 2 +- .../functions/fnc_calculate_target_solution.sqf | 2 +- .../fnc_calculate_target_speed_assist.sqf | 2 +- .../functions/fnc_calculate_truing_drop.sqf | 2 +- addons/atragmx/functions/fnc_can_show.sqf | 2 +- addons/atragmx/functions/fnc_change_gun.sqf | 2 +- .../functions/fnc_change_target_slot.sqf | 2 +- .../fnc_clear_c1_ballistic_coefficient_data.sqf | 2 +- .../fnc_clear_muzzle_velocity_data.sqf | 2 +- .../atragmx/functions/fnc_clear_user_data.sqf | 2 +- addons/atragmx/functions/fnc_create_dialog.sqf | 2 +- addons/atragmx/functions/fnc_cycle_gun_list.sqf | 2 +- .../functions/fnc_cycle_image_size_units.sqf | 2 +- .../functions/fnc_cycle_num_ticks_units.sqf | 2 +- .../functions/fnc_cycle_range_card_columns.sqf | 2 +- .../atragmx/functions/fnc_cycle_scope_unit.sqf | 2 +- .../functions/fnc_cycle_target_size_units.sqf | 2 +- .../fnc_cycle_target_speed_direction.sqf | 2 +- addons/atragmx/functions/fnc_delete_gun.sqf | 2 +- .../fnc_evaluate_option_menu_input.sqf | 2 +- addons/atragmx/functions/fnc_init.sqf | 2 +- addons/atragmx/functions/fnc_initGunList.sqf | 2 +- ...fnc_insert_c1_ballistic_coefficient_data.sqf | 2 +- .../fnc_insert_muzzle_velocity_data.sqf | 2 +- .../fnc_lookup_c1_ballistic_coefficient.sqf | 2 +- .../atragmx/functions/fnc_on_close_dialog.sqf | 3 +-- addons/atragmx/functions/fnc_parse_input.sqf | 2 +- .../fnc_read_gun_list_entries_from_config.sqf | 2 +- ...fnc_recalculate_c1_ballistic_coefficient.sqf | 2 +- .../fnc_recalculate_muzzle_velocity.sqf | 2 +- .../fnc_reset_relative_click_memory.sqf | 2 +- .../functions/fnc_restore_atmo_default.sqf | 2 +- .../functions/fnc_restore_truing_drop.sqf | 2 +- .../atragmx/functions/fnc_restore_user_data.sqf | 2 +- addons/atragmx/functions/fnc_save_gun.sqf | 2 +- .../fnc_shift_c1_ballistic_coefficient_data.sqf | 2 +- .../fnc_shift_muzzle_velocity_data.sqf | 2 +- .../atragmx/functions/fnc_show_add_new_gun.sqf | 2 +- .../functions/fnc_show_atmo_env_data.sqf | 2 +- .../fnc_show_c1_ballistic_coefficient_data.sqf | 2 +- .../functions/fnc_show_gun_ammo_data.sqf | 2 +- addons/atragmx/functions/fnc_show_gun_list.sqf | 2 +- addons/atragmx/functions/fnc_show_main_page.sqf | 2 +- .../functions/fnc_show_muzzle_velocity_data.sqf | 2 +- .../atragmx/functions/fnc_show_range_card.sqf | 2 +- .../functions/fnc_show_range_card_setup.sqf | 2 +- .../functions/fnc_show_solution_setup.sqf | 2 +- .../atragmx/functions/fnc_show_target_data.sqf | 2 +- .../functions/fnc_show_target_range_assist.sqf | 2 +- .../functions/fnc_show_target_speed_assist.sqf | 2 +- .../fnc_show_target_speed_assist_timer.sqf | 2 +- .../atragmx/functions/fnc_show_truing_drop.sqf | 2 +- addons/atragmx/functions/fnc_sord.sqf | 2 +- addons/atragmx/functions/fnc_store_gun_list.sqf | 2 +- .../atragmx/functions/fnc_store_user_data.sqf | 2 +- .../functions/fnc_target_speed_assist_timer.sqf | 2 +- .../functions/fnc_toggle_atmo_env_data.sqf | 2 +- ...fnc_toggle_c1_ballistic_coefficient_data.sqf | 2 +- .../atragmx/functions/fnc_toggle_coriolis.sqf | 2 +- .../functions/fnc_toggle_gun_ammo_data.sqf | 2 +- .../atragmx/functions/fnc_toggle_gun_list.sqf | 2 +- .../fnc_toggle_muzzle_velocity_data.sqf | 2 +- .../functions/fnc_toggle_option_menu.sqf | 2 +- .../atragmx/functions/fnc_toggle_range_card.sqf | 2 +- .../functions/fnc_toggle_range_card_setup.sqf | 2 +- .../functions/fnc_toggle_solution_setup.sqf | 2 +- .../functions/fnc_toggle_target_data.sqf | 2 +- .../fnc_toggle_target_range_assist.sqf | 2 +- .../fnc_toggle_target_speed_assist.sqf | 2 +- .../functions/fnc_toggle_truing_drop.sqf | 2 +- addons/atragmx/functions/fnc_trim_gun_name.sqf | 2 +- .../fnc_true_c1_ballistic_coefficient.sqf | 2 +- .../functions/fnc_true_muzzle_velocity.sqf | 2 +- .../functions/fnc_update_atmo_env_data.sqf | 2 +- .../functions/fnc_update_atmo_selection.sqf | 2 +- .../atragmx/functions/fnc_update_atmosphere.sqf | 2 +- ...fnc_update_c1_ballistic_coefficient_data.sqf | 2 +- addons/atragmx/functions/fnc_update_gun.sqf | 2 +- .../functions/fnc_update_gun_ammo_data.sqf | 2 +- .../functions/fnc_update_inclination_angle.sqf | 2 +- .../fnc_update_muzzle_velocity_data.sqf | 2 +- .../atragmx/functions/fnc_update_range_card.sqf | 2 +- .../fnc_update_relative_click_memory.sqf | 2 +- addons/atragmx/functions/fnc_update_result.sqf | 2 +- .../atragmx/functions/fnc_update_scope_unit.sqf | 2 +- .../functions/fnc_update_solution_setup.sqf | 2 +- addons/atragmx/functions/fnc_update_target.sqf | 2 +- .../functions/fnc_update_target_data.sqf | 2 +- .../functions/fnc_update_target_selection.sqf | 2 +- .../functions/fnc_update_truing_drop_data.sqf | 2 +- .../fnc_update_truing_drop_selection.sqf | 2 +- .../functions/fnc_update_unit_selection.sqf | 2 +- .../atragmx/functions/fnc_update_zero_range.sqf | 2 +- addons/attach/functions/fnc_attach.sqf | 2 +- addons/attach/functions/fnc_canAttach.sqf | 2 +- addons/attach/functions/fnc_canDetach.sqf | 2 +- addons/attach/functions/fnc_detach.sqf | 2 +- .../attach/functions/fnc_getChildrenActions.sqf | 2 +- addons/attach/functions/fnc_handleGetIn.sqf | 2 +- addons/attach/functions/fnc_handleGetOut.sqf | 2 +- addons/attach/functions/fnc_handleKilled.sqf | 2 +- addons/attach/functions/fnc_placeApprove.sqf | 2 +- .../backpacks/functions/fnc_backpackOpened.sqf | 2 +- addons/backpacks/functions/fnc_isBackpack.sqf | 2 +- .../backpacks/functions/fnc_onOpenInventory.sqf | 2 +- ...c_statTextStatement_weaponMuzzleVelocity.sqf | 2 +- .../functions/fnc_addLoadCaptiveActions.sqf | 2 +- .../functions/fnc_canApplyHandcuffs.sqf | 2 +- .../captives/functions/fnc_canEscortCaptive.sqf | 2 +- .../captives/functions/fnc_canFriskPerson.sqf | 2 +- .../captives/functions/fnc_canLoadCaptive.sqf | 2 +- .../functions/fnc_canRemoveHandcuffs.sqf | 2 +- .../captives/functions/fnc_canStopEscorting.sqf | 2 +- addons/captives/functions/fnc_canSurrender.sqf | 2 +- .../captives/functions/fnc_canUnloadCaptive.sqf | 2 +- .../captives/functions/fnc_doApplyHandcuffs.sqf | 2 +- .../captives/functions/fnc_doEscortCaptive.sqf | 2 +- addons/captives/functions/fnc_doFriskPerson.sqf | 2 +- addons/captives/functions/fnc_doLoadCaptive.sqf | 2 +- .../functions/fnc_doRemoveHandcuffs.sqf | 2 +- .../captives/functions/fnc_doUnloadCaptive.sqf | 2 +- .../functions/fnc_findEmptyNonFFVCargoSeat.sqf | 2 +- .../fnc_handleAnimChangedHandcuffed.sqf | 4 +--- .../fnc_handleAnimChangedSurrendered.sqf | 4 +--- addons/captives/functions/fnc_handleGetIn.sqf | 2 +- addons/captives/functions/fnc_handleGetOut.sqf | 2 +- addons/captives/functions/fnc_handleKilled.sqf | 2 +- addons/captives/functions/fnc_handleLocal.sqf | 4 +--- .../functions/fnc_handleOnUnconscious.sqf | 2 +- .../functions/fnc_handlePlayerChanged.sqf | 2 +- addons/captives/functions/fnc_handleRespawn.sqf | 2 +- .../functions/fnc_handleUnitInitPost.sqf | 2 +- .../functions/fnc_handleZeusDisplayChanged.sqf | 2 +- .../captives/functions/fnc_moduleHandcuffed.sqf | 2 +- .../captives/functions/fnc_moduleSettings.sqf | 3 +-- .../captives/functions/fnc_moduleSurrender.sqf | 2 +- addons/captives/functions/fnc_setHandcuffed.sqf | 2 +- .../captives/functions/fnc_setSurrendered.sqf | 2 +- .../functions/fnc_vehicleCaptiveMoveIn.sqf | 2 +- .../functions/fnc_vehicleCaptiveMoveOut.sqf | 2 +- addons/cargo/functions/fnc_addCargoItem.sqf | 2 +- .../functions/fnc_addCargoVehiclesActions.sqf | 2 +- addons/cargo/functions/fnc_canLoadItemIn.sqf | 2 +- addons/cargo/functions/fnc_canUnloadItem.sqf | 2 +- .../cargo/functions/fnc_getCargoSpaceLeft.sqf | 2 +- addons/cargo/functions/fnc_getSizeItem.sqf | 2 +- addons/cargo/functions/fnc_handleDestroyed.sqf | 2 +- addons/cargo/functions/fnc_initObject.sqf | 2 +- addons/cargo/functions/fnc_initVehicle.sqf | 2 +- addons/cargo/functions/fnc_loadItem.sqf | 2 +- addons/cargo/functions/fnc_moduleSettings.sqf | 2 +- addons/cargo/functions/fnc_onMenuOpen.sqf | 2 +- addons/cargo/functions/fnc_paradropItem.sqf | 2 +- addons/cargo/functions/fnc_removeCargoItem.sqf | 2 +- addons/cargo/functions/fnc_setSize.sqf | 2 +- addons/cargo/functions/fnc_setSpace.sqf | 2 +- addons/cargo/functions/fnc_startLoadIn.sqf | 2 +- addons/cargo/functions/fnc_startUnload.sqf | 2 +- addons/cargo/functions/fnc_unloadItem.sqf | 2 +- .../cargo/functions/fnc_validateCargoSpace.sqf | 2 +- .../functions/fnc_compileChemlightMenu.sqf | 3 +-- .../functions/fnc_getShieldComponents.sqf | 3 +-- addons/chemlights/functions/fnc_initIR.sqf | 3 +-- addons/chemlights/functions/fnc_isIRClass.sqf | 3 +-- addons/chemlights/functions/fnc_prepShield.sqf | 3 +-- addons/chemlights/functions/fnc_removeIR.sqf | 3 +-- addons/chemlights/functions/fnc_throwEH.sqf | 3 +-- addons/chemlights/functions/fnc_throwIR.sqf | 3 +-- addons/common/functions/fnc_ASLToPosition.sqf | 2 +- .../fnc__handleRequestAllSyncedEvents.sqf | 2 +- .../functions/fnc__handleRequestSyncedEvent.sqf | 2 +- .../common/functions/fnc__handleSyncedEvent.sqf | 2 +- .../functions/fnc_actionKeysNamesConverted.sqf | 2 +- .../functions/fnc_addActionEventHandler.sqf | 2 +- .../functions/fnc_addActionMenuEventHandler.sqf | 2 +- .../fnc_addCanInteractWithCondition.sqf | 2 +- .../common/functions/fnc_addLineToDebugDraw.sqf | 2 +- .../fnc_addMapMarkerCreatedEventHandler.sqf | 2 +- .../functions/fnc_addSyncedEventHandler.sqf | 2 +- addons/common/functions/fnc_addToInventory.sqf | 2 +- .../common/functions/fnc_ambientBrightness.sqf | 2 +- .../functions/fnc_arithmeticGetResult.sqf | 3 +-- .../functions/fnc_arithmeticSetSource.sqf | 3 +-- .../functions/fnc_assignObjectsInList.sqf | 2 +- addons/common/functions/fnc_assignedItemFix.sqf | 2 +- addons/common/functions/fnc_binarizeNumber.sqf | 2 +- addons/common/functions/fnc_blurScreen.sqf | 2 +- addons/common/functions/fnc_cachedCall.sqf | 2 +- addons/common/functions/fnc_canDig.sqf | 2 +- .../common/functions/fnc_canGetInPosition.sqf | 2 +- addons/common/functions/fnc_canInteractWith.sqf | 2 +- addons/common/functions/fnc_cbaSettings.sqf | 3 +-- .../functions/fnc_cbaSettings_convertHelper.sqf | 4 ++-- .../fnc_cbaSettings_loadFromConfig.sqf | 3 +-- .../fnc_cbaSettings_settingChanged.sqf | 3 +-- .../fnc_cbaSettings_transferUserSettings.sqf | 2 +- .../functions/fnc_changeProjectileDirection.sqf | 2 +- addons/common/functions/fnc_checkFiles.sqf | 2 +- addons/common/functions/fnc_checkPBOs.sqf | 2 +- addons/common/functions/fnc_claim.sqf | 2 +- addons/common/functions/fnc_codeToString.sqf | 2 +- .../fnc_createOrthonormalReference.sqf | 2 +- addons/common/functions/fnc_currentChannel.sqf | 2 +- addons/common/functions/fnc_debug.sqf | 2 +- addons/common/functions/fnc_debugModule.sqf | 2 +- addons/common/functions/fnc_defineVariable.sqf | 2 +- .../common/functions/fnc_deprecateComponent.sqf | 2 +- .../functions/fnc_deviceKeyFindValidIndex.sqf | 2 +- .../functions/fnc_deviceKeyRegisterNew.sqf | 2 +- addons/common/functions/fnc_disableAI.sqf | 2 +- .../common/functions/fnc_disableUserInput.sqf | 2 +- addons/common/functions/fnc_displayIcon.sqf | 2 +- addons/common/functions/fnc_displayText.sqf | 2 +- .../common/functions/fnc_displayTextPicture.sqf | 2 +- .../functions/fnc_displayTextStructured.sqf | 2 +- addons/common/functions/fnc_doAnimation.sqf | 2 +- addons/common/functions/fnc_doGesture.sqf | 2 +- addons/common/functions/fnc_dropBackpack.sqf | 2 +- addons/common/functions/fnc_dumpArray.sqf | 2 +- .../functions/fnc_dumpPerformanceCounters.sqf | 2 +- .../functions/fnc_endRadioTransmission.sqf | 2 +- addons/common/functions/fnc_eraseCache.sqf | 2 +- addons/common/functions/fnc_errorMessage.sqf | 2 +- .../common/functions/fnc_findUnloadPosition.sqf | 3 +-- addons/common/functions/fnc_firedEH.sqf | 2 +- addons/common/functions/fnc_fixCollision.sqf | 2 +- addons/common/functions/fnc_fixFloating.sqf | 2 +- .../functions/fnc_fixLoweredRifleAnimation.sqf | 2 +- addons/common/functions/fnc_fixPosition.sqf | 2 +- .../functions/fnc_getAllDefinedSetVariables.sqf | 2 +- addons/common/functions/fnc_getChildren.sqf | 2 +- .../common/functions/fnc_getConfigCommander.sqf | 2 +- addons/common/functions/fnc_getConfigGunner.sqf | 2 +- addons/common/functions/fnc_getDeathAnim.sqf | 2 +- addons/common/functions/fnc_getDefaultAnim.sqf | 2 +- .../common/functions/fnc_getDefinedVariable.sqf | 2 +- .../functions/fnc_getDefinedVariableDefault.sqf | 2 +- .../functions/fnc_getDefinedVariableInfo.sqf | 2 +- .../functions/fnc_getDisplayConfigName.sqf | 2 +- addons/common/functions/fnc_getDoorTurrets.sqf | 2 +- .../fnc_getFirstObjectIntersection.sqf | 2 +- .../fnc_getFirstTerrainIntersection.sqf | 2 +- addons/common/functions/fnc_getGunner.sqf | 2 +- addons/common/functions/fnc_getInPosition.sqf | 2 +- addons/common/functions/fnc_getItemType.sqf | 2 +- .../common/functions/fnc_getLightProperties.sqf | 2 +- .../functions/fnc_getLightPropertiesWeapon.sqf | 2 +- addons/common/functions/fnc_getMGRSdata.sqf | 2 +- addons/common/functions/fnc_getMapGridData.sqf | 2 +- .../common/functions/fnc_getMapGridFromPos.sqf | 2 +- .../common/functions/fnc_getMapPosFromGrid.sqf | 2 +- addons/common/functions/fnc_getMarkerType.sqf | 2 +- addons/common/functions/fnc_getName.sqf | 2 +- .../functions/fnc_getNumberMagazinesIn.sqf | 2 +- addons/common/functions/fnc_getPitchBankYaw.sqf | 2 +- addons/common/functions/fnc_getPylonTurret.sqf | 3 +-- .../fnc_getReflectorsWithSelections.sqf | 2 +- .../fnc_getSelectionsWithoutHitPoints.sqf | 2 +- addons/common/functions/fnc_getSettingData.sqf | 2 +- .../functions/fnc_getStaminaBarControl.sqf | 2 +- .../fnc_getTargetAzimuthAndInclination.sqf | 2 +- .../common/functions/fnc_getTargetDistance.sqf | 2 +- addons/common/functions/fnc_getTargetObject.sqf | 2 +- .../common/functions/fnc_getTurnedOnLights.sqf | 2 +- .../common/functions/fnc_getTurretCommander.sqf | 2 +- .../functions/fnc_getTurretConfigPath.sqf | 2 +- .../common/functions/fnc_getTurretCopilot.sqf | 2 +- .../common/functions/fnc_getTurretDirection.sqf | 2 +- addons/common/functions/fnc_getTurretGunner.sqf | 2 +- addons/common/functions/fnc_getTurretIndex.sqf | 2 +- addons/common/functions/fnc_getTurretsFFV.sqf | 2 +- addons/common/functions/fnc_getTurretsOther.sqf | 2 +- .../functions/fnc_getUavControlPosition.sqf | 2 +- addons/common/functions/fnc_getVehicleCargo.sqf | 2 +- .../common/functions/fnc_getVehicleCodriver.sqf | 2 +- addons/common/functions/fnc_getVehicleCrew.sqf | 2 +- addons/common/functions/fnc_getVehicleIcon.sqf | 3 +-- .../common/functions/fnc_getVehicleUAVCrew.sqf | 2 +- addons/common/functions/fnc_getVersion.sqf | 2 +- .../fnc_getWeaponAzimuthAndInclination.sqf | 2 +- addons/common/functions/fnc_getWeaponIndex.sqf | 2 +- addons/common/functions/fnc_getWeaponModes.sqf | 2 +- .../common/functions/fnc_getWeaponMuzzles.sqf | 2 +- addons/common/functions/fnc_getWeaponState.sqf | 2 +- addons/common/functions/fnc_getWeaponType.sqf | 2 +- addons/common/functions/fnc_getWeight.sqf | 2 +- .../common/functions/fnc_getWindDirection.sqf | 2 +- addons/common/functions/fnc_getZoom.sqf | 2 +- addons/common/functions/fnc_goKneeling.sqf | 2 +- addons/common/functions/fnc_hadamardProduct.sqf | 2 +- addons/common/functions/fnc_handleEngine.sqf | 2 +- .../common/functions/fnc_handleModifierKey.sqf | 2 +- .../functions/fnc_handleModifierKeyUp.sqf | 2 +- addons/common/functions/fnc_hasHatch.sqf | 2 +- addons/common/functions/fnc_hasItem.sqf | 2 +- addons/common/functions/fnc_hasMagazine.sqf | 2 +- addons/common/functions/fnc_headBugFix.sqf | 2 +- addons/common/functions/fnc_hideUnit.sqf | 2 +- .../common/functions/fnc_inTransitionAnim.sqf | 2 +- .../functions/fnc_interpolateFromArray.sqf | 2 +- addons/common/functions/fnc_isAwake.sqf | 2 +- addons/common/functions/fnc_isEOD.sqf | 2 +- addons/common/functions/fnc_isEngineer.sqf | 2 +- .../functions/fnc_isFeatureCameraActive.sqf | 2 +- addons/common/functions/fnc_isInBuilding.sqf | 2 +- addons/common/functions/fnc_isMedic.sqf | 3 +-- addons/common/functions/fnc_isModLoaded.sqf | 2 +- addons/common/functions/fnc_isPlayer.sqf | 2 +- addons/common/functions/fnc_isSwimming.sqf | 2 +- .../functions/fnc_lightIntensityFromObject.sqf | 2 +- addons/common/functions/fnc_loadPerson.sqf | 2 +- addons/common/functions/fnc_loadPersonLocal.sqf | 2 +- addons/common/functions/fnc_moduleCheckPBOs.sqf | 2 +- .../common/functions/fnc_moduleLSDVehicles.sqf | 2 +- addons/common/functions/fnc_monitor.sqf | 2 +- addons/common/functions/fnc_muteUnit.sqf | 2 +- .../functions/fnc_muteUnitHandleInitPost.sqf | 2 +- .../functions/fnc_muteUnitHandleRespawn.sqf | 2 +- .../functions/fnc_nearestVehiclesFreeSeat.sqf | 2 +- addons/common/functions/fnc_numberToDigits.sqf | 2 +- .../functions/fnc_numberToDigitsString.sqf | 2 +- addons/common/functions/fnc_numberToString.sqf | 2 +- addons/common/functions/fnc_onAnswerRequest.sqf | 2 +- addons/common/functions/fnc_owned.sqf | 2 +- addons/common/functions/fnc_parseList.sqf | 2 +- .../common/functions/fnc_playConfigSound3D.sqf | 2 +- addons/common/functions/fnc_player.sqf | 2 +- addons/common/functions/fnc_playerSide.sqf | 2 +- addons/common/functions/fnc_positionToASL.sqf | 2 +- addons/common/functions/fnc_progressBar.sqf | 2 +- .../functions/fnc_readSettingFromModule.sqf | 4 ++-- .../fnc_readSettingsFromParamsArray.sqf | 4 ++-- addons/common/functions/fnc_receiveRequest.sqf | 2 +- .../functions/fnc_removeActionEventHandler.sqf | 2 +- .../fnc_removeActionMenuEventHandler.sqf | 2 +- .../fnc_removeCanInteractWithCondition.sqf | 2 +- .../fnc_removeMapMarkerCreatedEventHandler.sqf | 2 +- .../functions/fnc_removeSpecificMagazine.sqf | 2 +- .../functions/fnc_removeSyncedEventHandler.sqf | 2 +- addons/common/functions/fnc_requestCallback.sqf | 2 +- .../common/functions/fnc_requestSyncedEvent.sqf | 2 +- .../common/functions/fnc_resetAllDefaults.sqf | 2 +- .../functions/fnc_restoreVariablesJIP.sqf | 2 +- .../functions/fnc_runAfterSettingsInit.sqf | 2 +- addons/common/functions/fnc_runTests.sqf | 2 +- addons/common/functions/fnc_sanitizeString.sqf | 2 +- addons/common/functions/fnc_sendRequest.sqf | 2 +- addons/common/functions/fnc_serverLog.sqf | 2 +- addons/common/functions/fnc_setAimCoef.sqf | 2 +- .../fnc_setApproximateVariablePublic.sqf | 3 +-- .../common/functions/fnc_setDefinedVariable.sqf | 2 +- .../functions/fnc_setDisableUserInputStatus.sqf | 2 +- .../functions/fnc_setHearingCapability.sqf | 2 +- addons/common/functions/fnc_setName.sqf | 2 +- addons/common/functions/fnc_setParameter.sqf | 2 +- addons/common/functions/fnc_setPitchBankYaw.sqf | 2 +- addons/common/functions/fnc_setPlayerOwner.sqf | 4 +--- addons/common/functions/fnc_setProne.sqf | 2 +- addons/common/functions/fnc_setSetting.sqf | 4 ++-- addons/common/functions/fnc_setVariableJIP.sqf | 2 +- .../common/functions/fnc_setVariablePublic.sqf | 3 +-- addons/common/functions/fnc_setVolume.sqf | 2 +- addons/common/functions/fnc_showHud.sqf | 2 +- addons/common/functions/fnc_showUser.sqf | 2 +- .../functions/fnc_statusEffect_addType.sqf | 3 +-- .../common/functions/fnc_statusEffect_get.sqf | 3 +-- .../functions/fnc_statusEffect_localEH.sqf | 3 +-- .../fnc_statusEffect_resetVariables.sqf | 3 +-- .../functions/fnc_statusEffect_respawnEH.sqf | 3 +-- .../functions/fnc_statusEffect_sendEffects.sqf | 3 +-- .../common/functions/fnc_statusEffect_set.sqf | 2 +- addons/common/functions/fnc_stringCompare.sqf | 2 +- .../functions/fnc_stringToColoredText.sqf | 2 +- .../functions/fnc_switchPersistentLaser.sqf | 2 +- .../common/functions/fnc_switchToGroupSide.sqf | 2 +- addons/common/functions/fnc_syncedEvent.sqf | 2 +- addons/common/functions/fnc_syncedEventPFH.sqf | 2 +- .../functions/fnc_throttledPublicVariable.sqf | 2 +- addons/common/functions/fnc_toBin.sqf | 2 +- addons/common/functions/fnc_toBitmask.sqf | 2 +- addons/common/functions/fnc_toHex.sqf | 2 +- addons/common/functions/fnc_toNumber.sqf | 2 +- .../functions/fnc_translateToModelSpace.sqf | 2 +- .../functions/fnc_translateToWeaponSpace.sqf | 2 +- addons/common/functions/fnc_unhideUnit.sqf | 2 +- addons/common/functions/fnc_uniqueElements.sqf | 2 +- addons/common/functions/fnc_uniqueItems.sqf | 2 +- addons/common/functions/fnc_unloadPerson.sqf | 2 +- .../common/functions/fnc_unloadPersonLocal.sqf | 2 +- addons/common/functions/fnc_unmuteUnit.sqf | 2 +- addons/common/functions/fnc_useItem.sqf | 2 +- addons/common/functions/fnc_useMagazine.sqf | 2 +- addons/common/functions/fnc_watchVariable.sqf | 3 +-- addons/common/functions/fnc_waveHeightAt.sqf | 2 +- .../functions/fnc_worldToScreenBounds.sqf | 2 +- addons/common/init_handleModifierKey.sqf | 2 +- addons/concertina_wire/functions/fnc_deploy.sqf | 2 +- .../concertina_wire/functions/fnc_dismount.sqf | 2 +- .../functions/fnc_dismountSuccess.sqf | 2 +- .../functions/fnc_handleDamage.sqf | 2 +- .../functions/fnc_handleInit.sqf | 2 +- .../functions/fnc_handleKilled.sqf | 2 +- .../functions/fnc_vehicleDamage.sqf | 2 +- addons/cookoff/functions/fnc_blowOffTurret.sqf | 2 +- addons/cookoff/functions/fnc_cookOff.sqf | 2 +- addons/cookoff/functions/fnc_cookOffBox.sqf | 2 +- .../functions/fnc_detonateAmmunition.sqf | 2 +- addons/cookoff/functions/fnc_engineFire.sqf | 2 +- addons/cookoff/functions/fnc_getVehicleAmmo.sqf | 2 +- addons/cookoff/functions/fnc_handleDamage.sqf | 2 +- .../functions/fnc_handleRangeFinderData.sqf | 2 +- addons/dagr/functions/fnc_menuInit.sqf | 2 +- addons/dagr/functions/fnc_outputData.sqf | 2 +- addons/dagr/functions/fnc_outputVector.sqf | 3 +-- addons/dagr/functions/fnc_outputWP.sqf | 2 +- addons/dagr/functions/fnc_toggleOverlay.sqf | 2 +- .../disarming/functions/fnc_canBeDisarmed.sqf | 2 +- .../functions/fnc_canPlayerDisarmUnit.sqf | 2 +- .../disarming/functions/fnc_disarmDropItems.sqf | 2 +- .../functions/fnc_eventCallerFinish.sqf | 2 +- .../functions/fnc_eventTargetFinish.sqf | 2 +- .../functions/fnc_eventTargetStart.sqf | 2 +- .../functions/fnc_getAllGearContainer.sqf | 2 +- .../disarming/functions/fnc_getAllGearUnit.sqf | 2 +- .../functions/fnc_openDisarmDialog.sqf | 2 +- .../functions/fnc_showItemsInListbox.sqf | 2 +- .../functions/fnc_verifyMagazinesMoved.sqf | 2 +- .../functions/fnc_replaceATWeapon.sqf | 2 +- .../functions/fnc_takeLoadedATWeapon.sqf | 2 +- .../functions/fnc_updateInventoryDisplay.sqf | 2 +- .../dogtags/functions/fnc_addDogtagActions.sqf | 2 +- addons/dogtags/functions/fnc_addDogtagItem.sqf | 2 +- addons/dogtags/functions/fnc_bloodType.sqf | 2 +- addons/dogtags/functions/fnc_canCheckDogtag.sqf | 2 +- addons/dogtags/functions/fnc_canTakeDogtag.sqf | 2 +- addons/dogtags/functions/fnc_checkDogtag.sqf | 2 +- .../dogtags/functions/fnc_checkDogtagItem.sqf | 2 +- .../functions/fnc_disableFactionDogtags.sqf | 2 +- addons/dogtags/functions/fnc_getDogtagData.sqf | 2 +- addons/dogtags/functions/fnc_getDogtagItem.sqf | 2 +- addons/dogtags/functions/fnc_sendDogtagData.sqf | 2 +- addons/dogtags/functions/fnc_showDogtag.sqf | 2 +- addons/dogtags/functions/fnc_ssn.sqf | 2 +- addons/dogtags/functions/fnc_takeDogtag.sqf | 2 +- addons/dragging/functions/fnc_canCarry.sqf | 2 +- addons/dragging/functions/fnc_canDrag.sqf | 2 +- addons/dragging/functions/fnc_canDrop.sqf | 2 +- addons/dragging/functions/fnc_canDrop_carry.sqf | 2 +- addons/dragging/functions/fnc_carryObject.sqf | 2 +- .../dragging/functions/fnc_carryObjectPFH.sqf | 2 +- addons/dragging/functions/fnc_dragObject.sqf | 2 +- addons/dragging/functions/fnc_dragObjectPFH.sqf | 2 +- addons/dragging/functions/fnc_dropObject.sqf | 2 +- .../dragging/functions/fnc_dropObject_carry.sqf | 2 +- addons/dragging/functions/fnc_getWeight.sqf | 2 +- .../functions/fnc_handleAnimChanged.sqf | 2 +- addons/dragging/functions/fnc_handleKilled.sqf | 2 +- .../functions/fnc_handlePlayerChanged.sqf | 2 +- .../functions/fnc_handlePlayerWeaponChanged.sqf | 2 +- .../functions/fnc_handleScrollWheel.sqf | 2 +- .../functions/fnc_handleUnconscious.sqf | 2 +- addons/dragging/functions/fnc_initObject.sqf | 2 +- addons/dragging/functions/fnc_initPerson.sqf | 2 +- addons/dragging/functions/fnc_setCarryable.sqf | 2 +- addons/dragging/functions/fnc_setDraggable.sqf | 2 +- addons/dragging/functions/fnc_startCarry.sqf | 2 +- addons/dragging/functions/fnc_startCarryPFH.sqf | 2 +- addons/dragging/functions/fnc_startDrag.sqf | 2 +- addons/dragging/functions/fnc_startDragPFH.sqf | 2 +- addons/explosives/XEH_postInit.sqf | 2 +- addons/explosives/XEH_preInit.sqf | 17 ++--------------- .../functions/fnc_addCellphoneIED.sqf | 2 +- addons/explosives/functions/fnc_addClacker.sqf | 2 +- .../functions/fnc_addDetonateActions.sqf | 2 +- .../functions/fnc_addDetonateHandler.sqf | 2 +- .../functions/fnc_addExplosiveActions.sqf | 2 +- .../explosives/functions/fnc_addToSpeedDial.sqf | 2 +- .../functions/fnc_addTransmitterActions.sqf | 2 +- .../functions/fnc_addTriggerActions.sqf | 2 +- addons/explosives/functions/fnc_canDefuse.sqf | 2 +- addons/explosives/functions/fnc_canDetonate.sqf | 2 +- .../functions/fnc_cancelPlacement.sqf | 2 +- .../functions/fnc_connectExplosive.sqf | 2 +- .../functions/fnc_defuseExplosive.sqf | 2 +- .../functions/fnc_detonateExplosive.sqf | 2 +- .../functions/fnc_detonateExplosiveAll.sqf | 2 +- addons/explosives/functions/fnc_dialPhone.sqf | 2 +- .../explosives/functions/fnc_dialingPhone.sqf | 2 +- .../explosives/functions/fnc_getDetonators.sqf | 2 +- .../functions/fnc_getPlacedExplosives.sqf | 2 +- .../functions/fnc_getSpeedDialExplosive.sqf | 2 +- .../functions/fnc_handleScrollWheel.sqf | 2 +- .../explosives/functions/fnc_hasExplosives.sqf | 2 +- .../functions/fnc_hasPlacedExplosives.sqf | 2 +- addons/explosives/functions/fnc_interactEH.sqf | 2 +- addons/explosives/functions/fnc_module.sqf | 2 +- .../functions/fnc_onIncapacitated.sqf | 2 +- .../functions/fnc_onInventoryChanged.sqf | 2 +- addons/explosives/functions/fnc_openTimerUI.sqf | 2 +- .../explosives/functions/fnc_placeExplosive.sqf | 2 +- .../functions/fnc_removeFromSpeedDial.sqf | 2 +- .../functions/fnc_scriptedExplosive.sqf | 2 +- .../explosives/functions/fnc_selectTrigger.sqf | 2 +- addons/explosives/functions/fnc_setPosition.sqf | 2 +- .../explosives/functions/fnc_setSpeedDial.sqf | 2 +- .../explosives/functions/fnc_setupExplosive.sqf | 3 +-- addons/explosives/functions/fnc_spawnFlare.sqf | 2 +- addons/explosives/functions/fnc_startDefuse.sqf | 2 +- addons/explosives/functions/fnc_startTimer.sqf | 2 +- addons/explosives/functions/fnc_triggerType.sqf | 2 +- .../fastroping/functions/fnc_canCloseRamp.sqf | 3 +-- addons/fastroping/functions/fnc_canCutRopes.sqf | 3 +-- .../fastroping/functions/fnc_canDeployRopes.sqf | 3 +-- addons/fastroping/functions/fnc_canFastRope.sqf | 3 +-- .../functions/fnc_canPrepareFRIES.sqf | 3 +-- .../fastroping/functions/fnc_canStowFRIES.sqf | 3 +-- .../functions/fnc_checkVehicleThread.sqf | 3 +-- addons/fastroping/functions/fnc_cutRopes.sqf | 3 +-- addons/fastroping/functions/fnc_deployAI.sqf | 3 +-- .../functions/fnc_deployAIWaypoint.sqf | 3 +-- addons/fastroping/functions/fnc_deployRopes.sqf | 3 +-- addons/fastroping/functions/fnc_equipFRIES.sqf | 3 +-- addons/fastroping/functions/fnc_fastRope.sqf | 3 +-- .../functions/fnc_fastRopeLocalPFH.sqf | 3 +-- .../functions/fnc_fastRopeServerPFH.sqf | 3 +-- .../functions/fnc_moduleEquipFRIES.sqf | 3 +-- addons/fastroping/functions/fnc_onCutCommon.sqf | 3 +-- .../functions/fnc_onPrepareCommon.sqf | 3 +-- addons/fastroping/functions/fnc_onRopeBreak.sqf | 3 +-- .../fastroping/functions/fnc_prepareFRIES.sqf | 3 +-- addons/fastroping/functions/fnc_stowFRIES.sqf | 3 +-- addons/fcs/functions/fnc_adjustRange.sqf | 2 +- addons/fcs/functions/fnc_calculateSolution.sqf | 2 +- addons/fcs/functions/fnc_canResetFCS.sqf | 2 +- addons/fcs/functions/fnc_canUseFCS.sqf | 2 +- addons/fcs/functions/fnc_canUseRangefinder.sqf | 2 +- addons/fcs/functions/fnc_firedEH.sqf | 2 +- addons/fcs/functions/fnc_getAngle.sqf | 2 +- addons/fcs/functions/fnc_getRange.sqf | 2 +- .../fnc_handleAirBurstAmmunitionPFH.sqf | 2 +- addons/fcs/functions/fnc_keyDown.sqf | 2 +- addons/fcs/functions/fnc_keyUp.sqf | 2 +- addons/fcs/functions/fnc_onForceUpdate.sqf | 3 +-- addons/fcs/functions/fnc_reset.sqf | 2 +- addons/fcs/functions/fnc_updateRangeHUD.sqf | 2 +- addons/fcs/functions/fnc_vehicleInit.sqf | 2 +- addons/finger/functions/fnc_incomingFinger.sqf | 2 +- addons/finger/functions/fnc_keyPress.sqf | 2 +- addons/finger/functions/fnc_moduleSettings.sqf | 3 +-- addons/finger/functions/fnc_perFrameEH.sqf | 2 +- addons/frag/functions/fnc_addBlackList.sqf | 2 +- addons/frag/functions/fnc_addPfhRound.sqf | 3 +-- addons/frag/functions/fnc_dev_addTrack.sqf | 3 +-- addons/frag/functions/fnc_dev_debugAmmo.sqf | 5 ++--- addons/frag/functions/fnc_dev_drawTraces.sqf | 3 +-- addons/frag/functions/fnc_dev_startTracing.sqf | 3 +-- addons/frag/functions/fnc_dev_stopTracing.sqf | 3 +-- addons/frag/functions/fnc_dev_trackTrace.sqf | 3 +-- addons/frag/functions/fnc_doExplosions.sqf | 4 +--- addons/frag/functions/fnc_doReflections.sqf | 4 +--- addons/frag/functions/fnc_doSpall.sqf | 2 +- addons/frag/functions/fnc_findReflections.sqf | 4 +--- addons/frag/functions/fnc_fired.sqf | 3 +-- addons/frag/functions/fnc_frago.sqf | 3 +-- addons/frag/functions/fnc_masterPFH.sqf | 4 +--- addons/frag/functions/fnc_pfhRound.sqf | 3 +-- addons/frag/functions/fnc_spallHP.sqf | 3 +-- addons/frag/functions/fnc_spallTrack.sqf | 4 +--- addons/gestures/functions/fnc_playSignal.sqf | 2 +- addons/gforces/functions/fnc_addPFEH.sqf | 2 +- .../gforces/functions/fnc_pfhUpdateGForces.sqf | 2 +- .../goggles/functions/fnc_applyDirtEffect.sqf | 2 +- .../goggles/functions/fnc_applyDustEffect.sqf | 2 +- .../functions/fnc_applyGlassesEffect.sqf | 2 +- .../goggles/functions/fnc_applyRainEffect.sqf | 2 +- .../functions/fnc_applyRotorWashEffect.sqf | 2 +- addons/goggles/functions/fnc_clearGlasses.sqf | 2 +- addons/goggles/functions/fnc_externalCamera.sqf | 2 +- .../goggles/functions/fnc_getExplosionIndex.sqf | 2 +- .../goggles/functions/fnc_handleExplosion.sqf | 2 +- addons/goggles/functions/fnc_handleFired.sqf | 2 +- addons/goggles/functions/fnc_handleKilled.sqf | 2 +- .../goggles/functions/fnc_isDivingGoggles.sqf | 2 +- .../goggles/functions/fnc_isGogglesVisible.sqf | 2 +- addons/goggles/functions/fnc_isInRotorWash.sqf | 2 +- .../goggles/functions/fnc_removeDirtEffect.sqf | 2 +- .../goggles/functions/fnc_removeDustEffect.sqf | 2 +- .../functions/fnc_removeGlassesEffect.sqf | 2 +- .../goggles/functions/fnc_removeRainEffect.sqf | 2 +- addons/grenades/functions/fnc_flare.sqf | 2 +- .../functions/fnc_flashbangExplosionEH.sqf | 2 +- .../functions/fnc_flashbangThrownFuze.sqf | 2 +- addons/grenades/functions/fnc_incendiary.sqf | 2 +- addons/grenades/functions/fnc_nextMode.sqf | 2 +- addons/grenades/functions/fnc_throwGrenade.sqf | 2 +- addons/gunbag/functions/fnc_calculateMass.sqf | 2 +- addons/gunbag/functions/fnc_canInteract.sqf | 2 +- addons/gunbag/functions/fnc_hasGunbag.sqf | 2 +- addons/gunbag/functions/fnc_isMachineGun.sqf | 2 +- addons/gunbag/functions/fnc_offGunbag.sqf | 2 +- .../gunbag/functions/fnc_offGunbagCallback.sqf | 2 +- addons/gunbag/functions/fnc_status.sqf | 2 +- addons/gunbag/functions/fnc_toGunbag.sqf | 2 +- .../gunbag/functions/fnc_toGunbagCallback.sqf | 2 +- addons/hearing/functions/fnc_addEarPlugs.sqf | 2 +- addons/hearing/functions/fnc_earRinging.sqf | 2 +- addons/hearing/functions/fnc_explosionNear.sqf | 2 +- addons/hearing/functions/fnc_firedNear.sqf | 2 +- addons/hearing/functions/fnc_handleRespawn.sqf | 2 +- addons/hearing/functions/fnc_hasEarPlugsIn.sqf | 2 +- addons/hearing/functions/fnc_moduleHearing.sqf | 2 +- addons/hearing/functions/fnc_putInEarplugs.sqf | 2 +- addons/hearing/functions/fnc_removeEarplugs.sqf | 2 +- .../functions/fnc_updateHearingProtection.sqf | 2 +- .../fnc_updatePlayerVehAttenuation.sqf | 2 +- addons/hearing/functions/fnc_updateVolume.sqf | 2 +- addons/hellfire/functions/fnc_attackProfile.sqf | 3 +-- .../functions/fnc_getAttackProfileSettings.sqf | 3 +-- addons/hellfire/functions/fnc_setupVehicle.sqf | 3 +-- addons/hitreactions/functions/fnc_fallDown.sqf | 2 +- .../functions/fnc_getRandomAnimation.sqf | 2 +- addons/huntir/functions/fnc_cam.sqf | 2 +- addons/huntir/functions/fnc_handleFired.sqf | 2 +- addons/huntir/functions/fnc_huntir.sqf | 2 +- addons/huntir/functions/fnc_huntirCompass.sqf | 2 +- addons/huntir/functions/fnc_keyPressed.sqf | 2 +- .../functions/fnc_addActionToClass.sqf | 2 +- .../functions/fnc_addActionToObject.sqf | 2 +- .../functions/fnc_addActionToZeus.sqf | 2 +- .../functions/fnc_addMainAction.sqf | 2 +- .../functions/fnc_collectActiveActionTree.sqf | 2 +- .../interact_menu/functions/fnc_compileMenu.sqf | 2 +- .../functions/fnc_compileMenuSelfAction.sqf | 2 +- .../functions/fnc_compileMenuZeus.sqf | 2 +- .../functions/fnc_createAction.sqf | 2 +- .../functions/fnc_createVehiclesActions.sqf | 2 +- .../functions/fnc_ctrlSetParsedTextCached.sqf | 2 +- .../functions/fnc_findActionNode.sqf | 2 +- .../functions/fnc_handleEscapeMenu.sqf | 2 +- .../interact_menu/functions/fnc_isSubPath.sqf | 2 +- addons/interact_menu/functions/fnc_keyDown.sqf | 2 +- addons/interact_menu/functions/fnc_keyUp.sqf | 2 +- .../functions/fnc_removeActionFromClass.sqf | 2 +- .../functions/fnc_removeActionFromObject.sqf | 2 +- addons/interact_menu/functions/fnc_render.sqf | 3 +-- .../functions/fnc_renderActionPoints.sqf | 2 +- .../functions/fnc_renderBaseMenu.sqf | 2 +- .../interact_menu/functions/fnc_renderIcon.sqf | 2 +- .../interact_menu/functions/fnc_renderMenu.sqf | 2 +- .../functions/fnc_renderSelector.sqf | 2 +- .../functions/fnc_setupTextColors.sqf | 2 +- .../interact_menu/functions/fnc_splitPath.sqf | 2 +- .../fnc_userActions_addHouseActions.sqf | 2 +- .../fnc_userActions_getHouseActions.sqf | 2 +- .../functions/fnc_addPassengerActions.sqf | 2 +- .../functions/fnc_addPassengersActions.sqf | 2 +- .../functions/fnc_canBecomeLeader.sqf | 2 +- addons/interaction/functions/fnc_canFlip.sqf | 2 +- .../functions/fnc_canInteractWithCivilian.sqf | 2 +- .../interaction/functions/fnc_canJoinGroup.sqf | 2 +- .../interaction/functions/fnc_canJoinTeam.sqf | 2 +- addons/interaction/functions/fnc_canPardon.sqf | 2 +- .../functions/fnc_canPassMagazine.sqf | 3 +-- .../functions/fnc_canPullOutBody.sqf | 2 +- addons/interaction/functions/fnc_canPush.sqf | 2 +- .../functions/fnc_canTapShoulder.sqf | 2 +- .../functions/fnc_doBecomeLeader.sqf | 3 +-- addons/interaction/functions/fnc_getDoor.sqf | 2 +- .../functions/fnc_getDoorAnimations.sqf | 2 +- addons/interaction/functions/fnc_getDown.sqf | 2 +- .../interaction/functions/fnc_getGlassDoor.sqf | 2 +- .../functions/fnc_getInteractionDistance.sqf | 2 +- .../interaction/functions/fnc_getVehiclePos.sqf | 2 +- .../functions/fnc_getVehiclePosComplex.sqf | 2 +- .../interaction/functions/fnc_getWeaponPos.sqf | 2 +- .../functions/fnc_handleScrollWheel.sqf | 2 +- .../interaction/functions/fnc_hideMouseHint.sqf | 2 +- addons/interaction/functions/fnc_joinTeam.sqf | 2 +- .../functions/fnc_modifyJoinGroupAction.sqf | 2 +- .../functions/fnc_moduleInteraction.sqf | 2 +- addons/interaction/functions/fnc_openDoor.sqf | 2 +- addons/interaction/functions/fnc_pardon.sqf | 2 +- .../interaction/functions/fnc_passMagazine.sqf | 3 +-- .../interaction/functions/fnc_pullOutBody.sqf | 2 +- addons/interaction/functions/fnc_push.sqf | 2 +- addons/interaction/functions/fnc_sendAway.sqf | 2 +- .../interaction/functions/fnc_showMouseHint.sqf | 2 +- .../interaction/functions/fnc_tapShoulder.sqf | 2 +- .../inventory/functions/fnc_addCustomFilter.sqf | 2 +- .../functions/fnc_currentItemListBox.sqf | 2 +- .../inventory/functions/fnc_filterBackpacks.sqf | 2 +- .../inventory/functions/fnc_filterGrenades.sqf | 2 +- .../inventory/functions/fnc_filterHeadgear.sqf | 2 +- addons/inventory/functions/fnc_filterItems.sqf | 2 +- .../inventory/functions/fnc_filterMagazines.sqf | 2 +- .../inventory/functions/fnc_filterMedical.sqf | 2 +- .../inventory/functions/fnc_filterUniforms.sqf | 2 +- addons/inventory/functions/fnc_filterVests.sqf | 2 +- .../inventory/functions/fnc_filterWeapons.sqf | 2 +- .../functions/fnc_forceItemListUpdate.sqf | 2 +- .../functions/fnc_inventoryDisplayLoad.sqf | 2 +- .../inventory/functions/fnc_onLBSelChanged.sqf | 2 +- addons/javelin/functions/fnc_getTarget.sqf | 3 +-- addons/javelin/functions/fnc_mapHelperDraw.sqf | 3 +-- addons/javelin/functions/fnc_onOpticDraw.sqf | 3 +-- addons/javelin/functions/fnc_showFireMode.sqf | 3 +-- .../kestrel4500/functions/fnc_buttonPressed.sqf | 2 +- addons/kestrel4500/functions/fnc_canShow.sqf | 2 +- .../kestrel4500/functions/fnc_collectData.sqf | 2 +- .../functions/fnc_createKestrelDialog.sqf | 2 +- addons/kestrel4500/functions/fnc_dayOfWeek.sqf | 2 +- .../functions/fnc_displayKestrel.sqf | 2 +- .../functions/fnc_generateOutputData.sqf | 2 +- .../functions/fnc_measureWindSpeed.sqf | 2 +- .../kestrel4500/functions/fnc_onCloseDialog.sqf | 2 +- .../functions/fnc_onCloseDisplay.sqf | 2 +- .../functions/fnc_restoreUserData.sqf | 2 +- .../kestrel4500/functions/fnc_storeUserData.sqf | 2 +- .../kestrel4500/functions/fnc_updateDisplay.sqf | 2 +- .../functions/fnc_updateImpellerState.sqf | 2 +- .../kestrel4500/functions/fnc_updateMemory.sqf | 2 +- addons/laser/functions/fnc_addLaserTarget.sqf | 2 +- .../fnc_dev_drawVisibleLaserTargets.sqf | 4 ++-- addons/laser/functions/fnc_findLaserSource.sqf | 2 +- .../functions/fnc_handleLaserTargetCreation.sqf | 3 +-- .../laser/functions/fnc_keyLaserCodeChange.sqf | 2 +- addons/laser/functions/fnc_laserOff.sqf | 2 +- addons/laser/functions/fnc_laserOn.sqf | 3 +-- addons/laser/functions/fnc_laserTargetPFH.sqf | 2 +- .../functions/fnc_onLaserDesignatorDraw.sqf | 2 +- addons/laser/functions/fnc_rotateVectLine.sqf | 3 +-- .../functions/fnc_rotateVectLineGetMap.sqf | 3 +-- .../laser/functions/fnc_seekerFindLaserSpot.sqf | 3 +-- addons/laser/functions/fnc_shootCone.sqf | 3 +-- addons/laser/functions/fnc_shootRay.sqf | 2 +- addons/laser/functions/fnc_showVehicleHud.sqf | 2 +- .../functions/fnc_drawLaserpoint.sqf | 2 +- .../laserpointer/functions/fnc_getNearUnits.sqf | 2 +- addons/laserpointer/functions/fnc_onDraw.sqf | 2 +- .../functions/fnc_canRefuelUAV.sqf | 2 +- .../functions/fnc_refuelUAV.sqf | 2 +- .../functions/fnc_cutDownFence.sqf | 2 +- .../functions/fnc_interactEH.sqf | 2 +- .../functions/fnc_isFence.sqf | 2 +- .../functions/fnc_getMagazineChildren.sqf | 2 +- .../functions/fnc_magazineRepackFinish.sqf | 2 +- .../functions/fnc_magazineRepackProgress.sqf | 2 +- .../functions/fnc_simulateRepackEvents.sqf | 2 +- .../functions/fnc_startRepackingMagazine.sqf | 2 +- .../functions/fnc_blueForceTrackingModule.sqf | 3 +-- .../functions/fnc_blueForceTrackingUpdate.sqf | 4 +--- .../map/functions/fnc_compileFlashlightMenu.sqf | 3 +-- addons/map/functions/fnc_determineMapLight.sqf | 3 +-- addons/map/functions/fnc_determineZoom.sqf | 3 +-- addons/map/functions/fnc_flashlightGlow.sqf | 3 +-- addons/map/functions/fnc_getUnitFlashlights.sqf | 3 +-- addons/map/functions/fnc_moduleMap.sqf | 3 +-- addons/map/functions/fnc_onDrawMap.sqf | 3 +-- addons/map/functions/fnc_simulateMapLight.sqf | 3 +-- addons/map/functions/fnc_switchFlashlight.sqf | 3 +-- addons/map/functions/fnc_updateMapEffects.sqf | 3 +-- .../functions/fnc_addGroupColorMapping.sqf | 2 +- .../functions/fnc_drawMapGestures.sqf | 2 +- .../map_gestures/functions/fnc_endTransmit.sqf | 2 +- .../functions/fnc_getProximityPlayers.sqf | 2 +- .../map_gestures/functions/fnc_initTransmit.sqf | 2 +- .../functions/fnc_isValidColorArray.sqf | 2 +- .../functions/fnc_moduleGroupSettings.sqf | 2 +- .../functions/fnc_moduleSettings.sqf | 2 +- .../map_gestures/functions/fnc_receiverInit.sqf | 2 +- addons/map_gestures/functions/fnc_transmit.sqf | 2 +- .../functions/fnc_transmitterInit.sqf | 2 +- .../functions/fnc_calculateMapScale.sqf | 2 +- addons/maptools/functions/fnc_canUseMapGPS.sqf | 2 +- .../maptools/functions/fnc_canUseMapTools.sqf | 2 +- .../functions/fnc_drawLinesOnRoamer.sqf | 2 +- .../functions/fnc_handleMouseButton.sqf | 3 +-- .../maptools/functions/fnc_handleMouseMove.sqf | 3 +-- .../maptools/functions/fnc_isInsideMapTool.sqf | 3 +-- addons/maptools/functions/fnc_openMapGps.sqf | 2 +- .../maptools/functions/fnc_openMapGpsUpdate.sqf | 3 +-- .../functions/fnc_updateMapToolMarkers.sqf | 2 +- addons/markers/functions/fnc_canMove.sqf | 2 +- .../functions/fnc_getEnabledChannels.sqf | 2 +- .../markers/functions/fnc_initInsertMarker.sqf | 2 +- .../markers/functions/fnc_mapDisplayInitEH.sqf | 2 +- addons/markers/functions/fnc_mapDrawEH.sqf | 2 +- addons/markers/functions/fnc_movePFH.sqf | 2 +- .../functions/fnc_onLBSelChangedChannel.sqf | 2 +- .../functions/fnc_onLBSelChangedColor.sqf | 2 +- .../functions/fnc_onLBSelChangedShape.sqf | 2 +- .../markers/functions/fnc_onMouseButtonDown.sqf | 2 +- .../markers/functions/fnc_onMouseButtonUp.sqf | 2 +- .../functions/fnc_onSliderPosChangedAngle.sqf | 2 +- addons/markers/functions/fnc_placeMarker.sqf | 2 +- addons/markers/functions/fnc_sendMarkersJIP.sqf | 2 +- addons/markers/functions/fnc_setMarkerJIP.sqf | 2 +- .../markers/functions/fnc_setMarkerNetwork.sqf | 2 +- .../functions/fnc_actionCheckBloodPressure.sqf | 3 +-- .../fnc_actionCheckBloodPressureLocal.sqf | 3 +-- .../medical/functions/fnc_actionCheckPulse.sqf | 3 +-- .../functions/fnc_actionCheckPulseLocal.sqf | 3 +-- .../functions/fnc_actionCheckResponse.sqf | 3 +-- addons/medical/functions/fnc_actionDiagnose.sqf | 3 +-- addons/medical/functions/fnc_actionLoadUnit.sqf | 3 +-- .../functions/fnc_actionPlaceInBodyBag.sqf | 3 +-- .../functions/fnc_actionRemoveTourniquet.sqf | 3 +-- .../medical/functions/fnc_actionUnloadUnit.sqf | 3 +-- .../medical/functions/fnc_addDamageToUnit.sqf | 3 +-- .../functions/fnc_addHeartRateAdjustment.sqf | 3 +-- .../functions/fnc_addLoadPatientActions.sqf | 2 +- addons/medical/functions/fnc_addToLog.sqf | 3 +-- .../medical/functions/fnc_addToTriageCard.sqf | 3 +-- .../functions/fnc_addUnconsciousCondition.sqf | 2 +- .../functions/fnc_addUnloadPatientActions.sqf | 2 +- addons/medical/functions/fnc_addVitalLoop.sqf | 3 +-- .../medical/functions/fnc_adjustPainLevel.sqf | 2 +- .../medical/functions/fnc_bodyCleanupLoop.sqf | 3 +-- .../functions/fnc_canAccessMedicalEquipment.sqf | 3 +-- addons/medical/functions/fnc_canTreat.sqf | 3 +-- addons/medical/functions/fnc_canTreatCached.sqf | 3 +-- addons/medical/functions/fnc_copyDeadBody.sqf | 3 +-- addons/medical/functions/fnc_createLitter.sqf | 3 +-- .../medical/functions/fnc_determineIfFatal.sqf | 2 +- .../functions/fnc_displayPatientInformation.sqf | 3 +-- .../medical/functions/fnc_displayTriageCard.sqf | 3 +-- .../functions/fnc_dropDownTriageCard.sqf | 3 +-- addons/medical/functions/fnc_getBloodLoss.sqf | 3 +-- .../medical/functions/fnc_getBloodPressure.sqf | 3 +-- .../functions/fnc_getBloodVolumeChange.sqf | 3 +-- .../medical/functions/fnc_getCardiacOutput.sqf | 3 +-- .../functions/fnc_getHeartRateChange.sqf | 3 +-- .../medical/functions/fnc_getTriageStatus.sqf | 3 +-- .../medical/functions/fnc_getTypeOfDamage.sqf | 3 +-- .../functions/fnc_getUnconsciousCondition.sqf | 3 +-- .../functions/fnc_handleBandageOpening.sqf | 3 +-- .../functions/fnc_handleCollisionDamage.sqf | 3 +-- .../functions/fnc_handleCreateLitter.sqf | 2 +- addons/medical/functions/fnc_handleDamage.sqf | 2 +- .../functions/fnc_handleDamage_advanced.sqf | 3 +-- .../fnc_handleDamage_advancedSetDamage.sqf | 3 +-- .../functions/fnc_handleDamage_airway.sqf | 3 +-- .../functions/fnc_handleDamage_caching.sqf | 2 +- .../functions/fnc_handleDamage_fractures.sqf | 3 +-- .../fnc_handleDamage_internalInjuries.sqf | 3 +-- .../functions/fnc_handleDamage_wounds.sqf | 3 +-- .../functions/fnc_handleDamage_woundsOld.sqf | 3 +-- addons/medical/functions/fnc_handleInit.sqf | 2 +- addons/medical/functions/fnc_handleKilled.sqf | 3 +-- addons/medical/functions/fnc_handleLocal.sqf | 4 +--- addons/medical/functions/fnc_handleRespawn.sqf | 2 +- .../medical/functions/fnc_handleUnitVitals.sqf | 3 +-- addons/medical/functions/fnc_hasItem.sqf | 3 +-- addons/medical/functions/fnc_hasItems.sqf | 3 +-- .../medical/functions/fnc_hasMedicalEnabled.sqf | 3 +-- .../functions/fnc_hasTourniquetAppliedTo.sqf | 3 +-- addons/medical/functions/fnc_init.sqf | 2 +- addons/medical/functions/fnc_isBeingCarried.sqf | 2 +- addons/medical/functions/fnc_isBeingDragged.sqf | 2 +- .../functions/fnc_isInMedicalFacility.sqf | 2 +- .../functions/fnc_isInMedicalVehicle.sqf | 2 +- .../functions/fnc_isInStableCondition.sqf | 3 +-- addons/medical/functions/fnc_isMedic.sqf | 3 +-- .../medical/functions/fnc_isMedicalVehicle.sqf | 3 +-- addons/medical/functions/fnc_itemCheck.sqf | 3 +-- .../medical/functions/fnc_litterCleanupLoop.sqf | 3 +-- .../functions/fnc_medicationEffectLoop.sqf | 3 +-- .../functions/fnc_modifyMedicalAction.sqf | 3 +-- .../fnc_moduleAdvancedMedicalSettings.sqf | 3 +-- .../functions/fnc_moduleAssignMedicRoles.sqf | 2 +- .../fnc_moduleAssignMedicalFacility.sqf | 3 +-- .../fnc_moduleAssignMedicalVehicle.sqf | 2 +- .../fnc_moduleBasicMedicalSettings.sqf | 3 +-- .../functions/fnc_moduleMedicalSettings.sqf | 3 +-- .../functions/fnc_moduleReviveSettings.sqf | 3 +-- .../medical/functions/fnc_onMedicationUsage.sqf | 3 +-- .../functions/fnc_parseConfigForInjuries.sqf | 2 +- .../medical/functions/fnc_playInjuredSound.sqf | 3 +-- .../medical/functions/fnc_reviveStateLoop.sqf | 3 +-- .../functions/fnc_selectionNameToNumber.sqf | 3 +-- .../medical/functions/fnc_serverRemoveBody.sqf | 3 +-- .../medical/functions/fnc_setCardiacArrest.sqf | 3 +-- addons/medical/functions/fnc_setDead.sqf | 3 +-- .../medical/functions/fnc_setHitPointDamage.sqf | 3 +-- addons/medical/functions/fnc_setUnconscious.sqf | 3 +-- .../medical/functions/fnc_showBloodEffect.sqf | 2 +- .../functions/fnc_translateSelections.sqf | 2 +- addons/medical/functions/fnc_treatment.sqf | 3 +-- .../functions/fnc_treatmentAdvanced_CPR.sqf | 3 +-- .../fnc_treatmentAdvanced_CPRLocal.sqf | 3 +-- .../functions/fnc_treatmentAdvanced_bandage.sqf | 3 +-- .../fnc_treatmentAdvanced_bandageLocal.sqf | 3 +-- .../fnc_treatmentAdvanced_fullHeal.sqf | 3 +-- .../fnc_treatmentAdvanced_fullHealLocal.sqf | 3 +-- ..._treatmentAdvanced_fullHealTreatmentTime.sqf | 2 +- .../fnc_treatmentAdvanced_medication.sqf | 3 +-- .../fnc_treatmentAdvanced_medicationLocal.sqf | 3 +-- ...treatmentAdvanced_surgicalKit_onProgress.sqf | 2 +- .../functions/fnc_treatmentBasic_bloodbag.sqf | 3 +-- .../fnc_treatmentBasic_bloodbagLocal.sqf | 3 +-- .../functions/fnc_treatmentBasic_epipen.sqf | 2 +- .../functions/fnc_treatmentBasic_morphine.sqf | 3 +-- .../fnc_treatmentBasic_morphineLocal.sqf | 3 +-- addons/medical/functions/fnc_treatmentIV.sqf | 3 +-- .../medical/functions/fnc_treatmentIVLocal.sqf | 3 +-- .../functions/fnc_treatmentTourniquet.sqf | 3 +-- .../functions/fnc_treatmentTourniquetLocal.sqf | 2 +- .../medical/functions/fnc_treatment_failure.sqf | 3 +-- .../medical/functions/fnc_treatment_success.sqf | 3 +-- addons/medical/functions/fnc_unconsciousPFH.sqf | 3 +-- addons/medical/functions/fnc_useItem.sqf | 3 +-- addons/medical/functions/fnc_useItems.sqf | 3 +-- addons/medical/functions/fnc_vitalLoop.sqf | 3 +-- .../functions/fnc_canRequestMedic.sqf | 2 +- addons/medical_ai/functions/fnc_healSelf.sqf | 2 +- addons/medical_ai/functions/fnc_healUnit.sqf | 2 +- addons/medical_ai/functions/fnc_isInjured.sqf | 2 +- addons/medical_ai/functions/fnc_isSafe.sqf | 2 +- .../functions/fnc_playTreatmentAnim.sqf | 2 +- .../medical_ai/functions/fnc_requestMedic.sqf | 2 +- .../medical_ai/functions/fnc_wasRequested.sqf | 2 +- .../medical_blood/functions/fnc_createBlood.sqf | 3 +-- addons/medical_blood/functions/fnc_hit.sqf | 2 +- .../medical_blood/functions/fnc_isBleeding.sqf | 2 +- .../medical_blood/functions/fnc_onBleeding.sqf | 2 +- addons/medical_blood/functions/fnc_spurt.sqf | 3 +-- .../medical_menu/functions/fnc_canOpenMenu.sqf | 2 +- .../functions/fnc_collectActions.sqf | 2 +- .../functions/fnc_getTreatmentOptions.sqf | 2 +- .../functions/fnc_handleUI_DisplayOptions.sqf | 2 +- .../fnc_handleUI_dropDownTriageCard.sqf | 2 +- addons/medical_menu/functions/fnc_module.sqf | 3 +-- .../medical_menu/functions/fnc_onMenuClose.sqf | 2 +- .../medical_menu/functions/fnc_onMenuOpen.sqf | 2 +- addons/medical_menu/functions/fnc_openMenu.sqf | 2 +- .../functions/fnc_setTriageStatus.sqf | 2 +- .../functions/fnc_updateActivityLog.sqf | 2 +- .../functions/fnc_updateBodyImage.sqf | 2 +- .../medical_menu/functions/fnc_updateIcons.sqf | 2 +- .../functions/fnc_updateInformationLists.sqf | 2 +- .../functions/fnc_updateQuickViewLog.sqf | 2 +- .../medical_menu/functions/fnc_updateUIInfo.sqf | 2 +- .../functions/fnc_appMarkKeypadEntry.sqf | 2 +- .../fnc_appMenuButtonConnectRangefinder.sqf | 2 +- .../functions/fnc_appSettingsLBClick.sqf | 2 +- .../fnc_appWaypointsButtonDeleteWP.sqf | 2 +- .../functions/fnc_appWaypointsButtonSetWP.sqf | 2 +- addons/microdagr/functions/fnc_canShow.sqf | 2 +- .../functions/fnc_deviceAddWaypoint.sqf | 2 +- .../functions/fnc_deviceDeleteWaypoint.sqf | 2 +- .../functions/fnc_deviceGetWaypoints.sqf | 2 +- .../microdagr/functions/fnc_dialogClosedEH.sqf | 2 +- .../microdagr/functions/fnc_mapButtonDownEH.sqf | 2 +- .../microdagr/functions/fnc_mapDoubleTapEH.sqf | 2 +- addons/microdagr/functions/fnc_mapOnDrawEH.sqf | 2 +- .../microdagr/functions/fnc_modeMapButtons.sqf | 2 +- .../microdagr/functions/fnc_moduleMapFill.sqf | 2 +- addons/microdagr/functions/fnc_openDisplay.sqf | 2 +- .../functions/fnc_recieveRangefinderData.sqf | 2 +- .../functions/fnc_saveCurrentAndSetNewMode.sqf | 2 +- .../functions/fnc_showApplicationPage.sqf | 2 +- .../microdagr/functions/fnc_updateDisplay.sqf | 2 +- .../functions/fnc_activateDetector.sqf | 3 +-- .../functions/fnc_canActivateDetector.sqf | 3 +-- .../functions/fnc_canConnectHeadphones.sqf | 3 +-- .../functions/fnc_canDeactivateDetector.sqf | 3 +-- .../functions/fnc_canDisconnectHeadphones.sqf | 3 +-- .../functions/fnc_connectHeadphones.sqf | 3 +-- .../functions/fnc_deactivateDetector.sqf | 3 +-- .../minedetector/functions/fnc_detectorLoop.sqf | 3 +-- .../functions/fnc_disableDetector.sqf | 3 +-- .../functions/fnc_enableDetector.sqf | 3 +-- .../functions/fnc_getDetectedObject.sqf | 3 +-- .../functions/fnc_getDetectorConfig.sqf | 3 +-- .../minedetector/functions/fnc_hasDetector.sqf | 3 +-- .../functions/fnc_isDetectorEnabled.sqf | 3 +-- .../functions/fnc_playDetectorSound.sqf | 3 +-- .../functions/fnc_attackProfile_AIR.sqf | 3 +-- .../functions/fnc_attackProfile_DIR.sqf | 3 +-- .../functions/fnc_attackProfile_HI.sqf | 3 +-- .../functions/fnc_attackProfile_JAV_DIR.sqf | 3 +-- .../functions/fnc_attackProfile_JAV_TOP.sqf | 3 +-- .../functions/fnc_attackProfile_LIN.sqf | 3 +-- .../functions/fnc_attackProfile_MID.sqf | 3 +-- .../functions/fnc_changeMissileDirection.sqf | 3 +-- .../missileguidance/functions/fnc_checkLos.sqf | 2 +- .../functions/fnc_checkSeekerAngle.sqf | 3 +-- .../functions/fnc_cycleAttackProfileKeyDown.sqf | 4 +--- .../functions/fnc_doAttackProfile.sqf | 3 +-- .../missileguidance/functions/fnc_doHandoff.sqf | 3 +-- .../functions/fnc_doSeekerSearch.sqf | 3 +-- .../functions/fnc_guidancePFH.sqf | 3 +-- .../functions/fnc_handleHandoff.sqf | 3 +-- .../missileguidance/functions/fnc_onFired.sqf | 3 +-- .../functions/fnc_onIncomingMissile.sqf | 3 +-- .../functions/fnc_seekerType_Optic.sqf | 3 +-- .../functions/fnc_seekerType_SALH.sqf | 3 +-- .../functions/fnc_moduleAmbianceSound.sqf | 3 +-- .../mk6mortar/functions/fnc_canLoadMagazine.sqf | 2 +- .../functions/fnc_canUnloadMagazine.sqf | 2 +- .../mk6mortar/functions/fnc_dev_buildTable.sqf | 2 +- .../functions/fnc_dev_formatNumber.sqf | 2 +- .../fnc_dev_simulateCalcRangeTableLine.sqf | 2 +- .../functions/fnc_dev_simulateFindSolution.sqf | 2 +- .../functions/fnc_dev_simulateShot.sqf | 2 +- addons/mk6mortar/functions/fnc_handleFired.sqf | 2 +- .../fnc_handlePlayerVehicleChanged.sqf | 2 +- addons/mk6mortar/functions/fnc_loadMagazine.sqf | 2 +- .../functions/fnc_loadMagazineTimer.sqf | 2 +- addons/mk6mortar/functions/fnc_moduleInit.sqf | 2 +- addons/mk6mortar/functions/fnc_mortarInit.sqf | 2 +- .../functions/fnc_rangeTableCanUse.sqf | 2 +- .../mk6mortar/functions/fnc_rangeTableOpen.sqf | 2 +- .../functions/fnc_rangeTablePageChange.sqf | 2 +- .../fnc_rangeTablePreCalculatedValues.sqf | 2 +- addons/mk6mortar/functions/fnc_toggleMils.sqf | 2 +- .../functions/fnc_turretDisplayLoaded.sqf | 2 +- .../mk6mortar/functions/fnc_unloadMagazine.sqf | 2 +- .../functions/fnc_unloadMagazineTimer.sqf | 2 +- addons/modules/functions/fnc_moduleInit.sqf | 3 +-- .../functions/fnc_addLoadToUnitContainer.sqf | 2 +- addons/movement/functions/fnc_canClimb.sqf | 2 +- addons/movement/functions/fnc_climb.sqf | 2 +- addons/movement/functions/fnc_handleClimb.sqf | 2 +- .../functions/fnc_handleVirtualMass.sqf | 2 +- .../functions/fnc_inventoryDisplayLoad.sqf | 2 +- addons/nametags/functions/fnc_canShow.sqf | 2 +- addons/nametags/functions/fnc_doShow.sqf | 4 ++-- .../nametags/functions/fnc_drawNameTagIcon.sqf | 3 +-- .../nametags/functions/fnc_getCachedFlags.sqf | 2 +- .../nametags/functions/fnc_getVehicleData.sqf | 4 ++-- .../nametags/functions/fnc_initIsSpeaking.sqf | 2 +- .../nametags/functions/fnc_moduleNameTags.sqf | 3 +-- addons/nametags/functions/fnc_onDraw3d.sqf | 2 +- .../functions/fnc_setFactionRankIcons.sqf | 2 +- addons/nametags/functions/fnc_setText.sqf | 2 +- .../nametags/functions/fnc_updateSettings.sqf | 2 +- .../functions/fnc_changeNVGBrightness.sqf | 2 +- addons/nightvision/functions/fnc_initModule.sqf | 3 +-- .../functions/fnc_nonDedicatedFix.sqf | 2 +- .../functions/fnc_onCameraViewChanged.sqf | 2 +- .../nightvision/functions/fnc_onFiredPlayer.sqf | 2 +- .../functions/fnc_onLoadoutChanged.sqf | 2 +- .../functions/fnc_onVisionModeChanged.sqf | 2 +- addons/nightvision/functions/fnc_pfeh.sqf | 2 +- .../functions/fnc_refreshGoggleType.sqf | 2 +- addons/nightvision/functions/fnc_scaleCtrl.sqf | 2 +- .../functions/fnc_setupDisplayEffects.sqf | 2 +- addons/nlaw/functions/fnc_attackProfile.sqf | 2 +- addons/nlaw/functions/fnc_keyDown.sqf | 3 +-- addons/nlaw/functions/fnc_onFired.sqf | 2 +- addons/nlaw/functions/fnc_seeker.sqf | 3 +-- addons/optics/functions/fnc_handleFired.sqf | 3 +-- addons/optics/functions/fnc_onDrawScope.sqf | 3 +-- addons/optics/functions/fnc_onDrawScope2D.sqf | 2 +- .../functions/fnc_debugDumpToClipboard.sqf | 2 +- addons/optionsmenu/init_loadMainMenuBox.sqf | 4 ++-- .../functions/fnc_calculateCooling.sqf | 2 +- .../fnc_canCheckSpareBarrelsTemperatures.sqf | 2 +- .../overheating/functions/fnc_canSwapBarrel.sqf | 2 +- addons/overheating/functions/fnc_canUnjam.sqf | 2 +- .../fnc_checkSpareBarrelsTemperatures.sqf | 2 +- .../functions/fnc_checkTemperature.sqf | 2 +- addons/overheating/functions/fnc_clearJam.sqf | 2 +- .../functions/fnc_displayTemperature.sqf | 2 +- addons/overheating/functions/fnc_firedEH.sqf | 2 +- .../overheating/functions/fnc_getWeaponData.sqf | 2 +- .../overheating/functions/fnc_handleTakeEH.sqf | 2 +- addons/overheating/functions/fnc_jamWeapon.sqf | 2 +- .../functions/fnc_loadCoolestSpareBarrel.sqf | 2 +- addons/overheating/functions/fnc_overheat.sqf | 2 +- .../fnc_sendSpareBarrelsTemperaturesHint.sqf | 2 +- addons/overheating/functions/fnc_swapBarrel.sqf | 2 +- .../functions/fnc_swapBarrelAssistant.sqf | 2 +- .../functions/fnc_swapBarrelCallback.sqf | 3 +-- ...fnc_updateSpareBarrelsTemperaturesThread.sqf | 3 +-- .../functions/fnc_updateTemperature.sqf | 2 +- .../functions/fnc_updateTemperatureThread.sqf | 3 +-- .../functions/fnc_cacheOverPressureValues.sqf | 2 +- addons/overpressure/functions/fnc_firedEHBB.sqf | 2 +- addons/overpressure/functions/fnc_firedEHOP.sqf | 2 +- .../overpressure/functions/fnc_getDistance.sqf | 2 +- .../functions/fnc_overpressureDamage.sqf | 2 +- addons/parachute/XEH_postInit.sqf | 2 +- addons/parachute/XEH_preInit.sqf | 17 ++--------------- addons/parachute/functions/fnc_cutParachute.sqf | 2 +- .../functions/fnc_handleInfoDisplayChanged.sqf | 2 +- .../parachute/functions/fnc_handleReserve.sqf | 3 +-- .../parachute/functions/fnc_hideAltimeter.sqf | 2 +- .../parachute/functions/fnc_showAltimeter.sqf | 2 +- .../pylons/functions/fnc_canConfigurePylons.sqf | 2 +- addons/pylons/functions/fnc_configurePylons.sqf | 2 +- .../pylons/functions/fnc_handleDisconnect.sqf | 2 +- addons/pylons/functions/fnc_onButtonApply.sqf | 2 +- addons/pylons/functions/fnc_onButtonClose.sqf | 2 +- addons/pylons/functions/fnc_onButtonDelete.sqf | 2 +- addons/pylons/functions/fnc_onButtonLoad.sqf | 2 +- addons/pylons/functions/fnc_onButtonSave.sqf | 2 +- addons/pylons/functions/fnc_onButtonTurret.sqf | 2 +- .../pylons/functions/fnc_onComboSelChange.sqf | 2 +- addons/pylons/functions/fnc_onNameChange.sqf | 2 +- addons/pylons/functions/fnc_onPylonMirror.sqf | 2 +- addons/pylons/functions/fnc_showDialog.sqf | 2 +- .../quickmount/functions/fnc_getInNearest.sqf | 2 +- addons/quickmount/functions/fnc_moduleInit.sqf | 2 +- .../functions/fnc_calculateRangeCard.sqf | 2 +- addons/rangecard/functions/fnc_canCopy.sqf | 2 +- addons/rangecard/functions/fnc_canShow.sqf | 2 +- addons/rangecard/functions/fnc_canShowCopy.sqf | 2 +- .../rangecard/functions/fnc_onCloseDialog.sqf | 3 +-- .../rangecard/functions/fnc_openRangeCard.sqf | 2 +- .../functions/fnc_updateClassNames.sqf | 2 +- .../rangecard/functions/fnc_updateRangeCard.sqf | 2 +- .../rearm/functions/fnc_addMagazineToSupply.sqf | 2 +- addons/rearm/functions/fnc_addRearmActions.sqf | 2 +- .../fnc_addVehicleMagazinesToSupply.sqf | 2 +- .../functions/fnc_canReadSupplyCounter.sqf | 2 +- addons/rearm/functions/fnc_canRearm.sqf | 2 +- addons/rearm/functions/fnc_canStoreAmmo.sqf | 2 +- addons/rearm/functions/fnc_canTakeAmmo.sqf | 2 +- addons/rearm/functions/fnc_createDummy.sqf | 2 +- addons/rearm/functions/fnc_disable.sqf | 2 +- addons/rearm/functions/fnc_dropAmmo.sqf | 2 +- .../rearm/functions/fnc_getAllRearmTurrets.sqf | 2 +- addons/rearm/functions/fnc_getCaliber.sqf | 2 +- addons/rearm/functions/fnc_getMaxMagazines.sqf | 2 +- .../functions/fnc_getNeedRearmMagazines.sqf | 2 +- addons/rearm/functions/fnc_getSupplyCount.sqf | 2 +- .../functions/fnc_getTurretConfigMagazines.sqf | 2 +- .../functions/fnc_getTurretMagazineAmmo.sqf | 2 +- addons/rearm/functions/fnc_grabAmmo.sqf | 2 +- addons/rearm/functions/fnc_handleKilled.sqf | 2 +- addons/rearm/functions/fnc_handleRespawn.sqf | 2 +- .../rearm/functions/fnc_handleUnconscious.sqf | 2 +- addons/rearm/functions/fnc_hasEnoughSupply.sqf | 2 +- .../rearm/functions/fnc_initSupplyVehicle.sqf | 2 +- addons/rearm/functions/fnc_makeDummy.sqf | 2 +- .../rearm/functions/fnc_moduleRearmSettings.sqf | 2 +- addons/rearm/functions/fnc_pickUpAmmo.sqf | 2 +- .../rearm/functions/fnc_readSupplyCounter.sqf | 2 +- addons/rearm/functions/fnc_rearm.sqf | 2 +- .../rearm/functions/fnc_rearmEntireVehicle.sqf | 2 +- .../functions/fnc_rearmEntireVehicleSuccess.sqf | 2 +- .../fnc_rearmEntireVehicleSuccessLocal.sqf | 2 +- addons/rearm/functions/fnc_rearmSuccess.sqf | 2 +- .../rearm/functions/fnc_rearmSuccessLocal.sqf | 2 +- .../functions/fnc_removeMagazineFromSupply.sqf | 2 +- addons/rearm/functions/fnc_setSupplyCount.sqf | 2 +- .../functions/fnc_setTurretMagazineAmmo.sqf | 2 +- addons/rearm/functions/fnc_storeAmmo.sqf | 2 +- addons/rearm/functions/fnc_takeAmmo.sqf | 2 +- addons/rearm/functions/fnc_takeSuccess.sqf | 2 +- addons/recoil/functions/fnc_camshake.sqf | 2 +- addons/refuel/functions/fnc_canCheckFuel.sqf | 2 +- addons/refuel/functions/fnc_canDisconnect.sqf | 2 +- addons/refuel/functions/fnc_canReturnNozzle.sqf | 2 +- addons/refuel/functions/fnc_canTakeNozzle.sqf | 2 +- addons/refuel/functions/fnc_canTurnOff.sqf | 2 +- addons/refuel/functions/fnc_canTurnOn.sqf | 2 +- addons/refuel/functions/fnc_checkFuel.sqf | 2 +- .../functions/fnc_connectNozzleAction.sqf | 2 +- addons/refuel/functions/fnc_disconnect.sqf | 2 +- addons/refuel/functions/fnc_dropNozzle.sqf | 2 +- addons/refuel/functions/fnc_getFuel.sqf | 2 +- .../refuel/functions/fnc_handleDisconnect.sqf | 2 +- addons/refuel/functions/fnc_handleRespawn.sqf | 2 +- addons/refuel/functions/fnc_initSource.sqf | 2 +- addons/refuel/functions/fnc_makeJerryCan.sqf | 2 +- addons/refuel/functions/fnc_makeSource.sqf | 2 +- .../functions/fnc_moduleRefuelSettings.sqf | 3 +-- .../refuel/functions/fnc_onMouseButtonDown.sqf | 2 +- addons/refuel/functions/fnc_readFuelCounter.sqf | 2 +- addons/refuel/functions/fnc_refuel.sqf | 3 +-- addons/refuel/functions/fnc_returnNozzle.sqf | 2 +- addons/refuel/functions/fnc_setFuel.sqf | 2 +- .../functions/fnc_startNozzleInHandsPFH.sqf | 2 +- addons/refuel/functions/fnc_takeNozzle.sqf | 2 +- addons/refuel/functions/fnc_turnOff.sqf | 2 +- addons/refuel/functions/fnc_turnOn.sqf | 2 +- addons/reload/functions/fnc_canCheckAmmo.sqf | 2 +- addons/reload/functions/fnc_checkAmmo.sqf | 2 +- addons/reload/functions/fnc_displayAmmo.sqf | 3 +-- .../reload/functions/fnc_getAmmoToLinkBelt.sqf | 2 +- .../reload/functions/fnc_startLinkingBelt.sqf | 3 +-- .../functions/fnc_addMissileReloadActions.sqf | 2 +- .../reloadlaunchers/functions/fnc_canLoad.sqf | 2 +- .../functions/fnc_getLoadableMissiles.sqf | 2 +- addons/reloadlaunchers/functions/fnc_load.sqf | 2 +- .../functions/fnc_reloadLauncher.sqf | 2 +- .../repair/functions/fnc_addRepairActions.sqf | 2 +- addons/repair/functions/fnc_addSpareParts.sqf | 2 +- addons/repair/functions/fnc_canMiscRepair.sqf | 3 +-- addons/repair/functions/fnc_canRemove.sqf | 2 +- addons/repair/functions/fnc_canRepair.sqf | 2 +- addons/repair/functions/fnc_canRepairTrack.sqf | 2 +- addons/repair/functions/fnc_canReplaceTrack.sqf | 2 +- addons/repair/functions/fnc_canReplaceWheel.sqf | 2 +- addons/repair/functions/fnc_doFullRepair.sqf | 2 +- addons/repair/functions/fnc_doRemoveTrack.sqf | 2 +- addons/repair/functions/fnc_doRemoveWheel.sqf | 2 +- addons/repair/functions/fnc_doRepair.sqf | 2 +- addons/repair/functions/fnc_doRepairTrack.sqf | 2 +- addons/repair/functions/fnc_doReplaceTrack.sqf | 2 +- addons/repair/functions/fnc_doReplaceWheel.sqf | 2 +- addons/repair/functions/fnc_getClaimObjects.sqf | 2 +- .../repair/functions/fnc_getHitPointString.sqf | 2 +- .../functions/fnc_getPostRepairDamage.sqf | 2 +- .../fnc_getWheelHitPointsWithSelections.sqf | 2 +- addons/repair/functions/fnc_hasItems.sqf | 2 +- addons/repair/functions/fnc_isEngineer.sqf | 2 +- .../repair/functions/fnc_isInRepairFacility.sqf | 2 +- .../functions/fnc_isNearRepairVehicle.sqf | 2 +- addons/repair/functions/fnc_isRepairVehicle.sqf | 2 +- .../repair/functions/fnc_modifyInteraction.sqf | 2 +- .../fnc_modifySelectionInteraction.sqf | 2 +- .../functions/fnc_moduleAddSpareParts.sqf | 2 +- .../functions/fnc_moduleAssignEngineer.sqf | 2 +- .../fnc_moduleAssignRepairFacility.sqf | 2 +- .../functions/fnc_moduleAssignRepairVehicle.sqf | 2 +- .../functions/fnc_moduleRepairSettings.sqf | 2 +- .../repair/functions/fnc_normalizeHitPoints.sqf | 2 +- addons/repair/functions/fnc_repair.sqf | 2 +- addons/repair/functions/fnc_repair_failure.sqf | 2 +- addons/repair/functions/fnc_repair_success.sqf | 2 +- addons/repair/functions/fnc_setDamage.sqf | 2 +- .../repair/functions/fnc_setHitPointDamage.sqf | 2 +- addons/repair/functions/fnc_spawnObject.sqf | 2 +- addons/repair/functions/fnc_useItem.sqf | 2 +- addons/repair/functions/fnc_useItems.sqf | 2 +- .../respawn/functions/fnc_canMoveRallypoint.sqf | 2 +- .../functions/fnc_handleInitPostServer.sqf | 2 +- addons/respawn/functions/fnc_handleKilled.sqf | 2 +- .../functions/fnc_handlePlayerChanged.sqf | 2 +- addons/respawn/functions/fnc_handleRespawn.sqf | 2 +- addons/respawn/functions/fnc_initRallypoint.sqf | 2 +- addons/respawn/functions/fnc_module.sqf | 2 +- .../functions/fnc_moduleFriendlyFire.sqf | 2 +- .../respawn/functions/fnc_moduleRallypoint.sqf | 2 +- addons/respawn/functions/fnc_moveRallypoint.sqf | 2 +- addons/respawn/functions/fnc_restoreGear.sqf | 2 +- .../functions/fnc_showFriendlyFireMessage.sqf | 2 +- .../functions/fnc_teleportToRallypoint.sqf | 2 +- .../respawn/functions/fnc_updateRallypoint.sqf | 2 +- addons/safemode/functions/fnc_lockSafety.sqf | 2 +- .../functions/fnc_playChangeFiremodeSound.sqf | 2 +- .../functions/fnc_setSafeModeVisual.sqf | 2 +- addons/safemode/functions/fnc_unlockSafety.sqf | 2 +- addons/sandbag/functions/fnc_canDeploy.sqf | 2 +- addons/sandbag/functions/fnc_deploy.sqf | 2 +- addons/sandbag/functions/fnc_deployCancel.sqf | 2 +- addons/sandbag/functions/fnc_deployConfirm.sqf | 2 +- .../functions/fnc_handleInteractMenuOpened.sqf | 2 +- addons/sandbag/functions/fnc_handleKilled.sqf | 2 +- .../functions/fnc_handlePlayerChanged.sqf | 2 +- .../fnc_handlePlayerInventoryChanged.sqf | 2 +- .../sandbag/functions/fnc_handleScrollWheel.sqf | 2 +- .../sandbag/functions/fnc_handleUnconscious.sqf | 2 +- addons/sandbag/functions/fnc_pickup.sqf | 2 +- addons/scopes/XEH_postInit.sqf | 2 +- addons/scopes/functions/fnc_adjustScope.sqf | 2 +- addons/scopes/functions/fnc_adjustZero.sqf | 2 +- .../functions/fnc_applyScopeAdjustment.sqf | 2 +- .../fnc_calculateZeroAngleCorrection.sqf | 2 +- addons/scopes/functions/fnc_canAdjustZero.sqf | 2 +- addons/scopes/functions/fnc_canResetZero.sqf | 2 +- addons/scopes/functions/fnc_firedEH.sqf | 2 +- addons/scopes/functions/fnc_getBaseAngle.sqf | 2 +- addons/scopes/functions/fnc_getBoreHeight.sqf | 2 +- .../functions/fnc_getCurrentZeroRange.sqf | 2 +- addons/scopes/functions/fnc_getOptics.sqf | 2 +- .../scopes/functions/fnc_initModuleSettings.sqf | 2 +- addons/scopes/functions/fnc_inventoryCheck.sqf | 2 +- addons/scopes/functions/fnc_resetZero.sqf | 2 +- addons/scopes/functions/fnc_showZeroing.sqf | 2 +- .../slideshow/functions/fnc_addSlideActions.sqf | 2 +- .../slideshow/functions/fnc_autoTransition.sqf | 2 +- .../slideshow/functions/fnc_createSlideshow.sqf | 2 +- addons/slideshow/functions/fnc_moduleInit.sqf | 2 +- addons/spectator/functions/fnc_cam.sqf | 3 +-- .../functions/fnc_cam_prepareTarget.sqf | 3 +-- .../spectator/functions/fnc_cam_resetTarget.sqf | 3 +-- .../functions/fnc_cam_setCameraMode.sqf | 3 +-- .../spectator/functions/fnc_cam_setTarget.sqf | 3 +-- .../functions/fnc_cam_setVisionMode.sqf | 3 +-- addons/spectator/functions/fnc_cam_tick.sqf | 3 +-- .../spectator/functions/fnc_cam_toggleSlow.sqf | 3 +-- .../spectator/functions/fnc_compat_counter.sqf | 3 +-- .../functions/fnc_compat_spectatorBI.sqf | 3 +-- addons/spectator/functions/fnc_compat_zeus.sqf | 3 +-- .../functions/fnc_getCameraAttributes.sqf | 3 +-- addons/spectator/functions/fnc_getGroupIcon.sqf | 3 +-- .../functions/fnc_getTargetEntities.sqf | 3 +-- addons/spectator/functions/fnc_handleFired.sqf | 3 +-- .../functions/fnc_moduleSpectatorSettings.sqf | 3 +-- addons/spectator/functions/fnc_players.sqf | 3 +-- .../spectator/functions/fnc_respawnTemplate.sqf | 3 +-- .../functions/fnc_setCameraAttributes.sqf | 3 +-- addons/spectator/functions/fnc_setFocus.sqf | 3 +-- addons/spectator/functions/fnc_setSpectator.sqf | 3 +-- addons/spectator/functions/fnc_switchFocus.sqf | 3 +-- addons/spectator/functions/fnc_ui.sqf | 3 +-- addons/spectator/functions/fnc_ui_draw3D.sqf | 3 +-- addons/spectator/functions/fnc_ui_fadeList.sqf | 3 +-- .../functions/fnc_ui_getTreeDataIndex.sqf | 3 +-- .../functions/fnc_ui_handleChildDestroyed.sqf | 3 +-- .../functions/fnc_ui_handleKeyDown.sqf | 5 ++--- .../spectator/functions/fnc_ui_handleKeyUp.sqf | 5 ++--- .../functions/fnc_ui_handleListClick.sqf | 2 +- .../spectator/functions/fnc_ui_handleLoad.sqf | 2 +- .../functions/fnc_ui_handleMapClick.sqf | 3 +-- .../functions/fnc_ui_handleMapDraw.sqf | 3 +-- .../fnc_ui_handleMouseButtonDblClick.sqf | 3 +-- .../functions/fnc_ui_handleMouseButtonDown.sqf | 3 +-- .../functions/fnc_ui_handleMouseMoving.sqf | 3 +-- .../functions/fnc_ui_handleMouseZChanged.sqf | 3 +-- addons/spectator/functions/fnc_ui_toggleMap.sqf | 3 +-- addons/spectator/functions/fnc_ui_toggleUI.sqf | 3 +-- .../functions/fnc_ui_updateCamButtons.sqf | 3 +-- .../spectator/functions/fnc_ui_updateHelp.sqf | 5 ++--- .../functions/fnc_ui_updateIconsToDraw.sqf | 3 +-- .../functions/fnc_ui_updateListEntities.sqf | 3 +-- .../functions/fnc_ui_updateListFocus.sqf | 3 +-- .../spectator/functions/fnc_ui_updateWidget.sqf | 3 +-- .../functions/fnc_updateCameraModes.sqf | 3 +-- addons/spectator/functions/fnc_updateSides.sqf | 3 +-- addons/spectator/functions/fnc_updateUnits.sqf | 3 +-- .../functions/fnc_updateVisionModes.sqf | 3 +-- .../functions/fnc_animateReticle.sqf | 2 +- addons/spottingscope/functions/fnc_pickup.sqf | 2 +- addons/spottingscope/functions/fnc_place.sqf | 2 +- addons/switchunits/XEH_postInit.sqf | 3 +-- .../functions/fnc_addMapFunction.sqf | 2 +- .../functions/fnc_handleMapClick.sqf | 2 +- addons/switchunits/functions/fnc_initPlayer.sqf | 2 +- addons/switchunits/functions/fnc_isValidAi.sqf | 2 +- .../switchunits/functions/fnc_markAiOnMap.sqf | 2 +- addons/switchunits/functions/fnc_module.sqf | 2 +- .../functions/fnc_nearestPlayers.sqf | 2 +- .../functions/fnc_startSwitchUnits.sqf | 3 +-- addons/switchunits/functions/fnc_switchBack.sqf | 2 +- addons/switchunits/functions/fnc_switchUnit.sqf | 2 +- .../functions/fnc_cancelTLdeploy.sqf | 2 +- .../functions/fnc_confirmTLdeploy.sqf | 2 +- .../tacticalladder/functions/fnc_deployTL.sqf | 2 +- .../functions/fnc_handleInteractMenuOpened.sqf | 2 +- .../functions/fnc_handleKilled.sqf | 2 +- .../functions/fnc_handlePlayerChanged.sqf | 2 +- .../functions/fnc_handleScrollWheel.sqf | 2 +- .../functions/fnc_handleUnconscious.sqf | 2 +- .../functions/fnc_isLadderEmpty.sqf | 2 +- .../tacticalladder/functions/fnc_pickupTL.sqf | 2 +- .../tacticalladder/functions/fnc_positionTL.sqf | 2 +- addons/tagging/functions/fnc_addCustomTag.sqf | 2 +- addons/tagging/functions/fnc_addTagActions.sqf | 2 +- addons/tagging/functions/fnc_applyCustomTag.sqf | 2 +- addons/tagging/functions/fnc_checkTaggable.sqf | 3 +-- .../tagging/functions/fnc_compileConfigTags.sqf | 2 +- addons/tagging/functions/fnc_createTag.sqf | 3 +-- addons/tagging/functions/fnc_moduleInit.sqf | 2 +- addons/tagging/functions/fnc_quickTag.sqf | 3 +-- addons/tagging/functions/fnc_tag.sqf | 3 +-- .../tagging/functions/fnc_tagTestingThread.sqf | 3 +-- .../functions/fnc_canContinueDiggingTrench.sqf | 2 +- addons/trenches/functions/fnc_canDigTrench.sqf | 2 +- .../trenches/functions/fnc_canRemoveTrench.sqf | 2 +- .../functions/fnc_continueDiggingTrench.sqf | 2 +- .../functions/fnc_handleInteractMenuOpened.sqf | 2 +- addons/trenches/functions/fnc_handleKilled.sqf | 2 +- .../functions/fnc_handlePlayerChanged.sqf | 2 +- .../fnc_handlePlayerInventoryChanged.sqf | 2 +- .../functions/fnc_handleScrollWheel.sqf | 2 +- .../functions/fnc_handleUnconscious.sqf | 2 +- addons/trenches/functions/fnc_placeCancel.sqf | 2 +- addons/trenches/functions/fnc_placeConfirm.sqf | 2 +- addons/trenches/functions/fnc_placeTrench.sqf | 2 +- addons/trenches/functions/fnc_removeTrench.sqf | 2 +- .../functions/fnc_setTrenchPlacement.sqf | 2 +- addons/tripod/functions/fnc_adjust.sqf | 2 +- .../functions/fnc_handleInteractMenuOpened.sqf | 2 +- addons/tripod/functions/fnc_handleKilled.sqf | 2 +- .../functions/fnc_handlePlayerChanged.sqf | 2 +- .../tripod/functions/fnc_handleScrollWheel.sqf | 2 +- .../tripod/functions/fnc_handleUnconscious.sqf | 2 +- addons/tripod/functions/fnc_pickup.sqf | 2 +- addons/tripod/functions/fnc_place.sqf | 2 +- addons/ui/functions/fnc_compileConfigUI.sqf | 2 +- addons/ui/functions/fnc_moduleInit.sqf | 2 +- addons/ui/functions/fnc_setAdvancedElement.sqf | 2 +- .../ui/functions/fnc_setElementVisibility.sqf | 2 +- addons/ui/functions/fnc_setElements.sqf | 2 +- .../vector/functions/fnc_adjustBrightness.sqf | 3 +-- addons/vector/functions/fnc_clearDisplay.sqf | 3 +-- .../functions/fnc_convertToTexturesDegree.sqf | 3 +-- .../functions/fnc_convertToTexturesDistance.sqf | 2 +- .../functions/fnc_convertToTexturesFOS.sqf | 3 +-- addons/vector/functions/fnc_dataTransfer.sqf | 2 +- addons/vector/functions/fnc_getDirection.sqf | 8 ++------ addons/vector/functions/fnc_getDistance.sqf | 3 +-- addons/vector/functions/fnc_getFallOfShot.sqf | 3 +-- .../vector/functions/fnc_getHeightDistance.sqf | 3 +-- .../fnc_getRelativeAzimuthDistance.sqf | 3 +-- .../functions/fnc_getRelativeDistance.sqf | 3 +-- .../functions/fnc_getRelativeHeightLength.sqf | 3 +-- addons/vector/functions/fnc_illuminate.sqf | 3 +-- addons/vector/functions/fnc_nextMode.sqf | 3 +-- addons/vector/functions/fnc_onKeyDown.sqf | 3 +-- addons/vector/functions/fnc_onKeyHold.sqf | 3 +-- addons/vector/functions/fnc_onKeyUp.sqf | 3 +-- addons/vector/functions/fnc_showAzimuth.sqf | 3 +-- .../functions/fnc_showAzimuthInclination.sqf | 3 +-- addons/vector/functions/fnc_showCenter.sqf | 3 +-- addons/vector/functions/fnc_showDistance.sqf | 3 +-- addons/vector/functions/fnc_showFallOfShot.sqf | 3 +-- .../vector/functions/fnc_showHeightDistance.sqf | 3 +-- addons/vector/functions/fnc_showP1.sqf | 3 +-- .../fnc_showRelativeAzimuthDistance.sqf | 3 +-- .../functions/fnc_showRelativeDistance.sqf | 3 +-- .../functions/fnc_showRelativeHeightLength.sqf | 3 +-- addons/vector/functions/fnc_showReticle.sqf | 3 +-- addons/vector/functions/fnc_showText.sqf | 3 +-- .../functions/fnc_addKeyForVehicle.sqf | 2 +- .../functions/fnc_getVehicleSideKey.sqf | 2 +- .../functions/fnc_handleVehicleInitPost.sqf | 2 +- .../functions/fnc_hasKeyForVehicle.sqf | 2 +- addons/vehiclelock/functions/fnc_lockpick.sqf | 2 +- addons/vehiclelock/functions/fnc_moduleInit.sqf | 2 +- addons/vehiclelock/functions/fnc_moduleSync.sqf | 2 +- .../functions/fnc_onOpenInventory.sqf | 2 +- .../functions/fnc_serverSetupCustomKeyEH.sqf | 2 +- .../functions/fnc_setVehicleLockEH.sqf | 2 +- addons/vehicles/functions/fnc_speedLimiter.sqf | 2 +- addons/vehicles/functions/fnc_startEngine.sqf | 2 +- .../functions/fnc_adaptViewDistance.sqf | 3 +-- .../functions/fnc_changeViewDistance.sqf | 2 +- .../viewdistance/functions/fnc_initModule.sqf | 3 +-- .../functions/fnc_returnObjectCoeff.sqf | 3 +-- .../viewdistance/functions/fnc_returnValue.sqf | 3 +-- .../functions/fnc_setFovBasedOvdPFH.sqf | 3 +-- .../fnc_displayGrenadeTypeAndNumber.sqf | 2 +- .../functions/fnc_fireSmokeLauncher.sqf | 2 +- .../functions/fnc_playChangeFiremodeSound.sqf | 2 +- .../functions/fnc_putWeaponAway.sqf | 2 +- .../functions/fnc_selectNextGrenade.sqf | 2 +- .../functions/fnc_selectWeaponMode.sqf | 2 +- .../functions/fnc_selectWeaponMuzzle.sqf | 2 +- .../functions/fnc_selectWeaponVehicle.sqf | 2 +- .../weaponselect/functions/fnc_throwGrenade.sqf | 2 +- .../functions/fnc_calculateAirDensity.sqf | 2 +- .../fnc_calculateBarometricPressure.sqf | 2 +- .../functions/fnc_calculateDensityAltitude.sqf | 2 +- .../weather/functions/fnc_calculateDewPoint.sqf | 2 +- .../functions/fnc_calculateHeatIndex.sqf | 2 +- .../functions/fnc_calculateRoughnessLength.sqf | 2 +- .../functions/fnc_calculateSpeedOfSound.sqf | 2 +- .../fnc_calculateTemperatureAtHeight.sqf | 2 +- .../weather/functions/fnc_calculateWetBulb.sqf | 2 +- .../functions/fnc_calculateWindChill.sqf | 2 +- .../functions/fnc_calculateWindSpeed.sqf | 2 +- .../weather/functions/fnc_displayWindInfo.sqf | 2 +- addons/weather/functions/fnc_getMapData.sqf | 2 +- .../functions/fnc_initModuleSettings.sqf | 3 +-- addons/weather/functions/fnc_initWind.sqf | 2 +- addons/weather/functions/fnc_updateHumidity.sqf | 2 +- .../weather/functions/fnc_updateTemperature.sqf | 2 +- addons/weather/functions/fnc_updateWeather.sqf | 2 +- addons/weather/functions/fnc_updateWind.sqf | 2 +- addons/winddeflection/XEH_preInit.sqf | 10 ---------- .../functions/fnc_handleFired.sqf | 2 +- .../functions/fnc_initModuleSettings.sqf | 3 +-- .../functions/fnc_updateTrajectoryPFH.sqf | 3 +-- .../yardage450/functions/fnc_acquireTarget.sqf | 2 +- addons/yardage450/functions/fnc_turnOn.sqf | 2 +- .../zeus/functions/fnc_addObjectToCurator.sqf | 2 +- addons/zeus/functions/fnc_bi_moduleArsenal.sqf | 2 +- addons/zeus/functions/fnc_bi_moduleCurator.sqf | 2 +- addons/zeus/functions/fnc_bi_moduleMine.sqf | 2 +- .../zeus/functions/fnc_bi_moduleProjectile.sqf | 2 +- .../functions/fnc_bi_moduleRemoteControl.sqf | 2 +- .../zeus/functions/fnc_getModuleDestination.sqf | 2 +- .../functions/fnc_handleZeusUnitAssigned.sqf | 2 +- .../zeus/functions/fnc_moduleAddAceArsenal.sqf | 2 +- addons/zeus/functions/fnc_moduleAddArsenal.sqf | 2 +- .../functions/fnc_moduleAddOrRemoveFRIES.sqf | 2 +- .../zeus/functions/fnc_moduleAddSpareTrack.sqf | 2 +- .../zeus/functions/fnc_moduleAddSpareWheel.sqf | 2 +- addons/zeus/functions/fnc_moduleCaptive.sqf | 2 +- .../functions/fnc_moduleConfigurePylons.sqf | 2 +- addons/zeus/functions/fnc_moduleGarrison.sqf | 2 +- .../zeus/functions/fnc_moduleGlobalSetSkill.sqf | 2 +- addons/zeus/functions/fnc_moduleGroupSide.sqf | 2 +- addons/zeus/functions/fnc_moduleHeal.sqf | 2 +- .../zeus/functions/fnc_moduleLoadIntoCargo.sqf | 2 +- .../functions/fnc_moduleRemoveAceArsenal.sqf | 2 +- .../zeus/functions/fnc_moduleRemoveArsenal.sqf | 2 +- .../zeus/functions/fnc_moduleSearchNearby.sqf | 2 +- addons/zeus/functions/fnc_moduleSetEngineer.sqf | 2 +- addons/zeus/functions/fnc_moduleSetMedic.sqf | 2 +- .../functions/fnc_moduleSetMedicalFacility.sqf | 2 +- .../functions/fnc_moduleSetMedicalVehicle.sqf | 2 +- .../functions/fnc_moduleSetRepairFacility.sqf | 2 +- .../functions/fnc_moduleSetRepairVehicle.sqf | 2 +- addons/zeus/functions/fnc_moduleSimulation.sqf | 2 +- .../zeus/functions/fnc_moduleSuicideBomber.sqf | 2 +- .../functions/fnc_moduleSuppressiveFire.sqf | 2 +- .../fnc_moduleSuppressiveFireLocal.sqf | 2 +- addons/zeus/functions/fnc_moduleSurrender.sqf | 2 +- .../functions/fnc_moduleTeleportPlayers.sqf | 2 +- .../functions/fnc_moduleToggleFlashlight.sqf | 2 +- addons/zeus/functions/fnc_moduleToggleNvg.sqf | 2 +- addons/zeus/functions/fnc_moduleUnGarrison.sqf | 2 +- addons/zeus/functions/fnc_moduleUnconscious.sqf | 2 +- .../zeus/functions/fnc_moduleZeusSettings.sqf | 2 +- addons/zeus/functions/fnc_showMessage.sqf | 2 +- addons/zeus/functions/fnc_ui_attributeCargo.sqf | 2 +- .../zeus/functions/fnc_ui_attributeRadius.sqf | 2 +- addons/zeus/functions/fnc_ui_defendArea.sqf | 2 +- .../zeus/functions/fnc_ui_editableObjects.sqf | 2 +- addons/zeus/functions/fnc_ui_garrison.sqf | 2 +- addons/zeus/functions/fnc_ui_globalSetSkill.sqf | 2 +- addons/zeus/functions/fnc_ui_groupSide.sqf | 2 +- addons/zeus/functions/fnc_ui_patrolArea.sqf | 2 +- addons/zeus/functions/fnc_ui_searchArea.sqf | 2 +- addons/zeus/functions/fnc_ui_setEngineer.sqf | 2 +- addons/zeus/functions/fnc_ui_suicideBomber.sqf | 2 +- .../zeus/functions/fnc_ui_teleportPlayers.sqf | 2 +- .../zeus/functions/fnc_ui_toggleFlashlight.sqf | 2 +- addons/zeus/functions/fnc_ui_toggleNvg.sqf | 2 +- addons/zeus/functions/fnc_zeusAttributes.sqf | 2 +- .../compat_rhs_afrf3/functions/fnc_onCut.sqf | 3 +-- .../functions/fnc_onPrepare.sqf | 3 +-- .../functions/fnc_canCloseDoor.sqf | 2 +- .../compat_rhs_usf3/functions/fnc_onCut.sqf | 3 +-- .../compat_rhs_usf3/functions/fnc_onPrepare.sqf | 3 +-- .../functions/fnc_exportConfig.sqf | 2 +- tools/sqf_validator.py | 7 +++++++ 1643 files changed, 1702 insertions(+), 2094 deletions(-) diff --git a/addons/advanced_ballistics/functions/fnc_calculateAmmoTemperatureVelocityShift.sqf b/addons/advanced_ballistics/functions/fnc_calculateAmmoTemperatureVelocityShift.sqf index d988d5f8ed..791fdb5040 100644 --- a/addons/advanced_ballistics/functions/fnc_calculateAmmoTemperatureVelocityShift.sqf +++ b/addons/advanced_ballistics/functions/fnc_calculateAmmoTemperatureVelocityShift.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Ruthberg * @@ -15,7 +16,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_muzzleVelocityShiftTable", "_temperature"]; diff --git a/addons/advanced_ballistics/functions/fnc_calculateAtmosphericCorrection.sqf b/addons/advanced_ballistics/functions/fnc_calculateAtmosphericCorrection.sqf index 326de5478e..b574698931 100644 --- a/addons/advanced_ballistics/functions/fnc_calculateAtmosphericCorrection.sqf +++ b/addons/advanced_ballistics/functions/fnc_calculateAtmosphericCorrection.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Ruthberg * @@ -18,7 +19,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_ballisticCoefficient", "_temperature"/*in C*/, "_pressure"/*in hPa*/, "_relativeHumidity"/*as ratio 0-1*/, "_atmosphereModel"/*"ICAO" or "ASM"*/]; diff --git a/addons/advanced_ballistics/functions/fnc_calculateBarrelLengthVelocityShift.sqf b/addons/advanced_ballistics/functions/fnc_calculateBarrelLengthVelocityShift.sqf index 4c5cd47a29..e28ccd2523 100644 --- a/addons/advanced_ballistics/functions/fnc_calculateBarrelLengthVelocityShift.sqf +++ b/addons/advanced_ballistics/functions/fnc_calculateBarrelLengthVelocityShift.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Ruthberg, MikeMatrix, joko // Jonas * @@ -17,7 +18,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_barrelLength", "_muzzleVelocityTable", "_barrelLengthTable", "_muzzleVelocity"]; TRACE_4("params",_barrelLength,_muzzleVelocityTable,_barrelLengthTable,_muzzleVelocity); diff --git a/addons/advanced_ballistics/functions/fnc_calculateRetardation.sqf b/addons/advanced_ballistics/functions/fnc_calculateRetardation.sqf index 1c7cadd3f0..184ee6970d 100644 --- a/addons/advanced_ballistics/functions/fnc_calculateRetardation.sqf +++ b/addons/advanced_ballistics/functions/fnc_calculateRetardation.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Ruthberg * @@ -16,7 +17,6 @@ * * Public: No */ -#include "script_component.hpp" // Source: GNU Exterior Ballistics diff --git a/addons/advanced_ballistics/functions/fnc_calculateStabilityFactor.sqf b/addons/advanced_ballistics/functions/fnc_calculateStabilityFactor.sqf index 8af9f77930..cf6dbb03b1 100644 --- a/addons/advanced_ballistics/functions/fnc_calculateStabilityFactor.sqf +++ b/addons/advanced_ballistics/functions/fnc_calculateStabilityFactor.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Ruthberg * @@ -20,7 +21,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_caliber", "_bulletLength", "_bulletMass", "_barrelTwist", "_muzzleVelocity", "_temperature", "_barometricPressure"]; diff --git a/addons/advanced_ballistics/functions/fnc_diagnoseWeapons.sqf b/addons/advanced_ballistics/functions/fnc_diagnoseWeapons.sqf index 01b0a8e4af..d2f5cba98f 100644 --- a/addons/advanced_ballistics/functions/fnc_diagnoseWeapons.sqf +++ b/addons/advanced_ballistics/functions/fnc_diagnoseWeapons.sqf @@ -1,3 +1,5 @@ +#define DEBUG_MODE_FULL +#include "script_component.hpp" /* * Author: esteldunedain * @@ -15,8 +17,6 @@ * * Public: No */ -#define DEBUG_MODE_FULL -#include "script_component.hpp" private _diagnoseStartTime = diag_tickTime; #ifdef DEBUG_INIT_SPEEDS diff --git a/addons/advanced_ballistics/functions/fnc_displayProtractor.sqf b/addons/advanced_ballistics/functions/fnc_displayProtractor.sqf index f50dcc6887..714aaa31ef 100644 --- a/addons/advanced_ballistics/functions/fnc_displayProtractor.sqf +++ b/addons/advanced_ballistics/functions/fnc_displayProtractor.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Ruthberg * @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" #define __dsp (uiNamespace getVariable "RscProtractor") #define __ctrl1 (__dsp displayCtrl 132950) diff --git a/addons/advanced_ballistics/functions/fnc_handleFirePFH.sqf b/addons/advanced_ballistics/functions/fnc_handleFirePFH.sqf index af13926893..0c18ae539e 100644 --- a/addons/advanced_ballistics/functions/fnc_handleFirePFH.sqf +++ b/addons/advanced_ballistics/functions/fnc_handleFirePFH.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Glowbal, Ruthberg, joko // Jonas * Handle the PFH for Bullets @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" { _x params ["_bullet","_caliber","_bulletTraceVisible","_index"]; diff --git a/addons/advanced_ballistics/functions/fnc_handleFired.sqf b/addons/advanced_ballistics/functions/fnc_handleFired.sqf index e77aad33ad..b1f9898b6d 100644 --- a/addons/advanced_ballistics/functions/fnc_handleFired.sqf +++ b/addons/advanced_ballistics/functions/fnc_handleFired.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Glowbal, Ruthberg * @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" //IGNORE_PRIVATE_WARNING ["_unit", "_weapon", "_muzzle", "_mode", "_ammo", "_magazine", "_projectile", "_vehicle", "_gunner", "_turret"]; TRACE_10("firedEH:",_unit, _weapon, _muzzle, _mode, _ammo, _magazine, _projectile, _vehicle, _gunner, _turret); diff --git a/addons/advanced_ballistics/functions/fnc_initModuleSettings.sqf b/addons/advanced_ballistics/functions/fnc_initModuleSettings.sqf index a92982db21..83e11175d3 100644 --- a/addons/advanced_ballistics/functions/fnc_initModuleSettings.sqf +++ b/addons/advanced_ballistics/functions/fnc_initModuleSettings.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Glowbal, Ruthberg * Module for adjusting the advanced ballistics settings @@ -15,7 +16,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_logic","_units", "_activated"]; diff --git a/addons/advanced_ballistics/functions/fnc_initializeTerrainExtension.sqf b/addons/advanced_ballistics/functions/fnc_initializeTerrainExtension.sqf index 4b522656ff..5c634cadff 100644 --- a/addons/advanced_ballistics/functions/fnc_initializeTerrainExtension.sqf +++ b/addons/advanced_ballistics/functions/fnc_initializeTerrainExtension.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Ruthberg * Initializes the advanced ballistics dll extension with terrain data @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" if (!hasInterface) exitWith {}; if (!GVAR(enabled)) exitWith {}; diff --git a/addons/advanced_ballistics/functions/fnc_readAmmoDataFromConfig.sqf b/addons/advanced_ballistics/functions/fnc_readAmmoDataFromConfig.sqf index 2a5ccb4dfa..13b4692452 100644 --- a/addons/advanced_ballistics/functions/fnc_readAmmoDataFromConfig.sqf +++ b/addons/advanced_ballistics/functions/fnc_readAmmoDataFromConfig.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Ruthberg * @@ -25,7 +26,6 @@ * * Public: No */ -#include "script_component.hpp" TRACE_1("Reading Ammo Config",_this); diff --git a/addons/advanced_ballistics/functions/fnc_readWeaponDataFromConfig.sqf b/addons/advanced_ballistics/functions/fnc_readWeaponDataFromConfig.sqf index a0fa193b6f..dbc9999824 100644 --- a/addons/advanced_ballistics/functions/fnc_readWeaponDataFromConfig.sqf +++ b/addons/advanced_ballistics/functions/fnc_readWeaponDataFromConfig.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Ruthberg * @@ -16,7 +17,6 @@ * * Public: No */ -#include "script_component.hpp" private _weaponConfig = (configFile >> "CfgWeapons" >> _this); diff --git a/addons/advanced_fatigue/functions/fnc_addDutyFactor.sqf b/addons/advanced_fatigue/functions/fnc_addDutyFactor.sqf index 89801e902e..e2f87f3080 100644 --- a/addons/advanced_fatigue/functions/fnc_addDutyFactor.sqf +++ b/addons/advanced_fatigue/functions/fnc_addDutyFactor.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: BaerMitUmlaut * Adds a duty factor. @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params [["_id", "", [""]], ["_factor", 1, [0, {}]]]; if (_id == "" || {_factor isEqualTo 1}) exitWith {}; diff --git a/addons/advanced_fatigue/functions/fnc_createStaminaBar.sqf b/addons/advanced_fatigue/functions/fnc_createStaminaBar.sqf index ce88c2b42e..157f683018 100644 --- a/addons/advanced_fatigue/functions/fnc_createStaminaBar.sqf +++ b/addons/advanced_fatigue/functions/fnc_createStaminaBar.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: BaerMitUmlaut * Creates the stamina bar. @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_display"]; private _staminaBar = _display ctrlCreate [QGVAR(StaminaBarContainer), -1]; diff --git a/addons/advanced_fatigue/functions/fnc_getAnimDuty.sqf b/addons/advanced_fatigue/functions/fnc_getAnimDuty.sqf index 629152b6a1..717161b890 100644 --- a/addons/advanced_fatigue/functions/fnc_getAnimDuty.sqf +++ b/addons/advanced_fatigue/functions/fnc_getAnimDuty.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: BaerMitUmlaut * Calculates the duty of the current animation. @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_unit", "_animName"]; private _duty = 1; diff --git a/addons/advanced_fatigue/functions/fnc_getMetabolicCosts.sqf b/addons/advanced_fatigue/functions/fnc_getMetabolicCosts.sqf index c2c673fd95..0e0ce7de04 100644 --- a/addons/advanced_fatigue/functions/fnc_getMetabolicCosts.sqf +++ b/addons/advanced_fatigue/functions/fnc_getMetabolicCosts.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: BaerMitUmlaut * Calculates the current metabolic costs for a unit. @@ -15,7 +16,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_unit", "_velocity"]; private _gearMass = ((_unit getVariable [QEGVAR(movement,totalLoad), loadAbs _unit]) / 22.046) * GVAR(loadFactor); diff --git a/addons/advanced_fatigue/functions/fnc_handleEffects.sqf b/addons/advanced_fatigue/functions/fnc_handleEffects.sqf index dd973afe29..3733517f36 100644 --- a/addons/advanced_fatigue/functions/fnc_handleEffects.sqf +++ b/addons/advanced_fatigue/functions/fnc_handleEffects.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: BaerMitUmlaut * Handles any audible, visual and physical effects of fatigue. @@ -16,7 +17,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_unit", "_fatigue", "_speed", "_overexhausted"]; #ifdef DEBUG_MODE_FULL diff --git a/addons/advanced_fatigue/functions/fnc_handlePlayerChanged.sqf b/addons/advanced_fatigue/functions/fnc_handlePlayerChanged.sqf index 0e31e89645..0cea426eef 100644 --- a/addons/advanced_fatigue/functions/fnc_handlePlayerChanged.sqf +++ b/addons/advanced_fatigue/functions/fnc_handlePlayerChanged.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: BaerMitUmlaut * Handles switching units (once on init and afterwards via Zeus). @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_newUnit", "_oldUnit"]; TRACE_2("unit changed",_newUnit,_oldUnit); diff --git a/addons/advanced_fatigue/functions/fnc_handleStaminaBar.sqf b/addons/advanced_fatigue/functions/fnc_handleStaminaBar.sqf index 72772d16b1..73ba6179a9 100644 --- a/addons/advanced_fatigue/functions/fnc_handleStaminaBar.sqf +++ b/addons/advanced_fatigue/functions/fnc_handleStaminaBar.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: BaerMitUmlaut * Handles visual changes of the stamina bar. @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_stamina"]; private _staminaBarContainer = uiNamespace getVariable [QGVAR(staminaBarContainer), controlNull]; diff --git a/addons/advanced_fatigue/functions/fnc_mainLoop.sqf b/addons/advanced_fatigue/functions/fnc_mainLoop.sqf index 4b23153dff..1d3b215b54 100644 --- a/addons/advanced_fatigue/functions/fnc_mainLoop.sqf +++ b/addons/advanced_fatigue/functions/fnc_mainLoop.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: BaerMitUmlaut * Main looping function that updates fatigue values. @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" if (!alive ACE_player) exitWith { // Dead people don't breath, Will also handle null (Map intros) [FUNC(mainLoop), [], 1] call CBA_fnc_waitAndExecute; private _staminaBarContainer = uiNamespace getVariable [QGVAR(staminaBarContainer), controlNull]; diff --git a/addons/advanced_fatigue/functions/fnc_moduleSettings.sqf b/addons/advanced_fatigue/functions/fnc_moduleSettings.sqf index 9d1a0a6ab6..ab2742fb75 100644 --- a/addons/advanced_fatigue/functions/fnc_moduleSettings.sqf +++ b/addons/advanced_fatigue/functions/fnc_moduleSettings.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: BaerMitUmlaut * Initializes the module settings. @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_logic"]; [_logic, QGVAR(enabled), "Enabled"] call EFUNC(common,readSettingFromModule); diff --git a/addons/advanced_fatigue/functions/fnc_removeDutyFactor.sqf b/addons/advanced_fatigue/functions/fnc_removeDutyFactor.sqf index 4ae07704a5..aacba72dd8 100644 --- a/addons/advanced_fatigue/functions/fnc_removeDutyFactor.sqf +++ b/addons/advanced_fatigue/functions/fnc_removeDutyFactor.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: BaerMitUmlaut * Removes a duty factor. @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" params [["_id", "", [""]]]; GVAR(dutyList) params ["_idList", "_factorList"]; diff --git a/addons/advanced_throwing/functions/fnc_canPrepare.sqf b/addons/advanced_throwing/functions/fnc_canPrepare.sqf index 3c3d3e47b7..c3fdce974f 100644 --- a/addons/advanced_throwing/functions/fnc_canPrepare.sqf +++ b/addons/advanced_throwing/functions/fnc_canPrepare.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Jonpas * Checks if a throwable can be prepared. @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_unit", ["_ignoreLastThrownTime", false]]; diff --git a/addons/advanced_throwing/functions/fnc_canThrow.sqf b/addons/advanced_throwing/functions/fnc_canThrow.sqf index 1f5ef20d45..e5211dd33c 100644 --- a/addons/advanced_throwing/functions/fnc_canThrow.sqf +++ b/addons/advanced_throwing/functions/fnc_canThrow.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Jonpas * Checks if a throwable can be thrown. @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_unit"]; diff --git a/addons/advanced_throwing/functions/fnc_drawArc.sqf b/addons/advanced_throwing/functions/fnc_drawArc.sqf index eef326750d..906650627f 100644 --- a/addons/advanced_throwing/functions/fnc_drawArc.sqf +++ b/addons/advanced_throwing/functions/fnc_drawArc.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Zapat, Dslyecxi, Jonpas * Draws throw arc. @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" // Disable drawing when intersecting with the vehicle if !([ACE_player] call FUNC(canThrow)) exitWith { diff --git a/addons/advanced_throwing/functions/fnc_drawThrowable.sqf b/addons/advanced_throwing/functions/fnc_drawThrowable.sqf index 0e6a6dea99..42d52b7153 100644 --- a/addons/advanced_throwing/functions/fnc_drawThrowable.sqf +++ b/addons/advanced_throwing/functions/fnc_drawThrowable.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Dslyecxi, Jonpas, SilentSpike * Handles drawing the currently selected or cooked throwable. @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" if (dialog || {!(ACE_player getVariable [QGVAR(inHand), false])} || {!([ACE_player, true] call FUNC(canPrepare))}) exitWith { [ACE_player, "In dialog or no throwable in hand or cannot prepare throwable"] call FUNC(exitThrowMode); diff --git a/addons/advanced_throwing/functions/fnc_exitThrowMode.sqf b/addons/advanced_throwing/functions/fnc_exitThrowMode.sqf index 33ff556f6a..ffe1110dc2 100644 --- a/addons/advanced_throwing/functions/fnc_exitThrowMode.sqf +++ b/addons/advanced_throwing/functions/fnc_exitThrowMode.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Dslyecxi, Jonpas * Exits throw mode. @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_unit", "_reason"]; TRACE_2("params",_unit,_reason); diff --git a/addons/advanced_throwing/functions/fnc_getMuzzle.sqf b/addons/advanced_throwing/functions/fnc_getMuzzle.sqf index 030ec25ccb..03ac62f6d2 100644 --- a/addons/advanced_throwing/functions/fnc_getMuzzle.sqf +++ b/addons/advanced_throwing/functions/fnc_getMuzzle.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: PabstMirror * Retrieve muzzle name from config. @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_magazineClassname"]; diff --git a/addons/advanced_throwing/functions/fnc_moduleInit.sqf b/addons/advanced_throwing/functions/fnc_moduleInit.sqf index 2e7ae18e42..3f5d3bbd3f 100644 --- a/addons/advanced_throwing/functions/fnc_moduleInit.sqf +++ b/addons/advanced_throwing/functions/fnc_moduleInit.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Jonpas * Initializes the Advanced Throwing module. @@ -15,7 +16,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_logic", "_units", "_activated"]; diff --git a/addons/advanced_throwing/functions/fnc_onKeyDown.sqf b/addons/advanced_throwing/functions/fnc_onKeyDown.sqf index 42fab8fc1a..d0f8404203 100644 --- a/addons/advanced_throwing/functions/fnc_onKeyDown.sqf +++ b/addons/advanced_throwing/functions/fnc_onKeyDown.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Dslyecxi, Jonpas * Key down event. @@ -17,7 +18,6 @@ * * Public: No */ -#include "script_component.hpp" if !(ACE_player getVariable [QGVAR(inHand), false]) exitWith {false}; diff --git a/addons/advanced_throwing/functions/fnc_onMouseButtonDown.sqf b/addons/advanced_throwing/functions/fnc_onMouseButtonDown.sqf index e13ed52290..69abb9641b 100644 --- a/addons/advanced_throwing/functions/fnc_onMouseButtonDown.sqf +++ b/addons/advanced_throwing/functions/fnc_onMouseButtonDown.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Dslyecxi, Jonpas * Mouse button down event. @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" if !(ACE_player getVariable [QGVAR(inHand), false]) exitWith {}; diff --git a/addons/advanced_throwing/functions/fnc_onMouseScroll.sqf b/addons/advanced_throwing/functions/fnc_onMouseScroll.sqf index b06d198380..f56b153557 100644 --- a/addons/advanced_throwing/functions/fnc_onMouseScroll.sqf +++ b/addons/advanced_throwing/functions/fnc_onMouseScroll.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Dslyecxi, Jonpas * Mouse scroll wheel changed event. @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" if !(ACE_player getVariable [QGVAR(inHand), false]) exitWith {}; diff --git a/addons/advanced_throwing/functions/fnc_pickUp.sqf b/addons/advanced_throwing/functions/fnc_pickUp.sqf index 2238ea1893..9fd49486d1 100644 --- a/addons/advanced_throwing/functions/fnc_pickUp.sqf +++ b/addons/advanced_throwing/functions/fnc_pickUp.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Jonpas * Picks up a throwable from the ground. @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_helper", "_unit"]; TRACE_2("params",_helper,_unit); diff --git a/addons/advanced_throwing/functions/fnc_prepare.sqf b/addons/advanced_throwing/functions/fnc_prepare.sqf index 6245b0627e..393f8301d3 100644 --- a/addons/advanced_throwing/functions/fnc_prepare.sqf +++ b/addons/advanced_throwing/functions/fnc_prepare.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Dslyecxi, Jonpas * Prepares throwable or selects the next. @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_unit"]; TRACE_1("params",_unit); diff --git a/addons/advanced_throwing/functions/fnc_prime.sqf b/addons/advanced_throwing/functions/fnc_prime.sqf index d52bee67f2..22681d3ebc 100644 --- a/addons/advanced_throwing/functions/fnc_prime.sqf +++ b/addons/advanced_throwing/functions/fnc_prime.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Dslyecxi, Jonpas * Primes the throwable, creates global throwable vehicle and throws Fired XEH. @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_unit", ["_showHint", false]]; TRACE_2("params",_unit,_showHint); diff --git a/addons/advanced_throwing/functions/fnc_renderPickUpInteraction.sqf b/addons/advanced_throwing/functions/fnc_renderPickUpInteraction.sqf index 9f2743c600..5b7d2c9f0b 100644 --- a/addons/advanced_throwing/functions/fnc_renderPickUpInteraction.sqf +++ b/addons/advanced_throwing/functions/fnc_renderPickUpInteraction.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: PabstMirror, Jonpas * When interact_menu starts rendering (from "interact_keyDown" event). @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" [{ params ["_args", "_idPFH"]; diff --git a/addons/advanced_throwing/functions/fnc_throw.sqf b/addons/advanced_throwing/functions/fnc_throw.sqf index 038390ee74..3bc69be882 100644 --- a/addons/advanced_throwing/functions/fnc_throw.sqf +++ b/addons/advanced_throwing/functions/fnc_throw.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Dslyecxi, Jonpas * Throw selected throwable. @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_unit"]; TRACE_1("params",_unit); diff --git a/addons/advanced_throwing/functions/fnc_throwFiredXEH.sqf b/addons/advanced_throwing/functions/fnc_throwFiredXEH.sqf index a98551f220..80dbc2f973 100644 --- a/addons/advanced_throwing/functions/fnc_throwFiredXEH.sqf +++ b/addons/advanced_throwing/functions/fnc_throwFiredXEH.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: CBA Team * Throws Fired XEH. @@ -19,7 +20,6 @@ * * Public: No */ -#include "script_component.hpp" TRACE_1("Fired",_this); diff --git a/addons/advanced_throwing/functions/fnc_updateControlsHint.sqf b/addons/advanced_throwing/functions/fnc_updateControlsHint.sqf index 12170b5346..3dcb516c32 100644 --- a/addons/advanced_throwing/functions/fnc_updateControlsHint.sqf +++ b/addons/advanced_throwing/functions/fnc_updateControlsHint.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Jonpas * Updates controls hints based on current state. @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" if (!GVAR(showMouseControls)) exitWith {}; diff --git a/addons/ai/functions/fnc_garrison.sqf b/addons/ai/functions/fnc_garrison.sqf index c303d2b90c..5e5c34d19a 100644 --- a/addons/ai/functions/fnc_garrison.sqf +++ b/addons/ai/functions/fnc_garrison.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: alganthe * Garrison function used to garrison AI inside buildings. @@ -19,7 +20,6 @@ * * Public: Yes */ -#include "script_component.hpp" params [["_startingPos",[0,0,0], [[]], 3], ["_buildingTypes", ["Building"], [[]]], ["_unitsArray", [], [[]]], ["_fillingRadius", 50, [0]], ["_fillingType", 0, [0]], ["_topDownFilling", false, [true]], ["_teleport", false, [true]]]; diff --git a/addons/ai/functions/fnc_garrisonMove.sqf b/addons/ai/functions/fnc_garrisonMove.sqf index fc9f09b6ce..586c7b1f20 100644 --- a/addons/ai/functions/fnc_garrisonMove.sqf +++ b/addons/ai/functions/fnc_garrisonMove.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: alganthe * Internal function used by ace_ai_fnc_garrison to make the units move to the positions it picked. @@ -15,7 +16,6 @@ * * Public: No */ -#include "script_component.hpp" params [ ["_unitMoveList", nil, [[]]] ]; diff --git a/addons/ai/functions/fnc_unGarrison.sqf b/addons/ai/functions/fnc_unGarrison.sqf index 6174a840bd..8391c7f8e3 100644 --- a/addons/ai/functions/fnc_unGarrison.sqf +++ b/addons/ai/functions/fnc_unGarrison.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: alganthe * Used to un-garrison units. @@ -14,7 +15,6 @@ * Public: Yes * */ -#include "script_component.hpp" params [["_units", [], [[]]]]; diff --git a/addons/aircraft/functions/fnc_canShowEject.sqf b/addons/aircraft/functions/fnc_canShowEject.sqf index b0803a49df..6ec13d2bb9 100644 --- a/addons/aircraft/functions/fnc_canShowEject.sqf +++ b/addons/aircraft/functions/fnc_canShowEject.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Dystopian * Check if Eject action can be shown. @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" #define FULLCREW_UNIT 0 #define FULLCREW_ROLE 1 diff --git a/addons/aircraft/functions/fnc_initEjectAction.sqf b/addons/aircraft/functions/fnc_initEjectAction.sqf index 94b72099ee..8ec9e33ade 100644 --- a/addons/aircraft/functions/fnc_initEjectAction.sqf +++ b/addons/aircraft/functions/fnc_initEjectAction.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Dystopian * Add Eject action to vehicle if needed. @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_vehicle"]; diff --git a/addons/arsenal/functions/fnc_addListBoxItem.sqf b/addons/arsenal/functions/fnc_addListBoxItem.sqf index 815e3511a8..8a3fb1491f 100644 --- a/addons/arsenal/functions/fnc_addListBoxItem.sqf +++ b/addons/arsenal/functions/fnc_addListBoxItem.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Dedmen * Add a listbox row. @@ -13,8 +14,6 @@ * * Public: Yes */ - -#include "script_component.hpp" params ["_configCategory", "_className", "_ctrlPanel", ["_pictureEntryName", "picture", [""]]]; private _cacheNamespace = _ctrlPanel; //For better readability. diff --git a/addons/arsenal/functions/fnc_addStat.sqf b/addons/arsenal/functions/fnc_addStat.sqf index d51c0ff13d..61e361fd0f 100644 --- a/addons/arsenal/functions/fnc_addStat.sqf +++ b/addons/arsenal/functions/fnc_addStat.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Alganthe * Add a stat to ACE Arsenal. @@ -29,7 +30,6 @@ * * Public: Yes */ -#include "script_component.hpp" params [ ["_tabs", [[], []], [[]], 2], ["_class", "", [""]], diff --git a/addons/arsenal/functions/fnc_addVirtualItems.sqf b/addons/arsenal/functions/fnc_addVirtualItems.sqf index 2126f4d5d3..ff5865bb6b 100644 --- a/addons/arsenal/functions/fnc_addVirtualItems.sqf +++ b/addons/arsenal/functions/fnc_addVirtualItems.sqf @@ -1,3 +1,5 @@ +#include "script_component.hpp" +#include "..\defines.hpp" /* * Author: Alganthe, Dedmen * Add virtual items to the provided target. @@ -16,8 +18,6 @@ * * Public: Yes */ -#include "script_component.hpp" -#include "..\defines.hpp" params [["_object", objNull, [objNull]], ["_items", [], [true, []]], ["_global", false, [false]]]; diff --git a/addons/arsenal/functions/fnc_buttonCargo.sqf b/addons/arsenal/functions/fnc_buttonCargo.sqf index 1af4008caf..cc8cdf45bf 100644 --- a/addons/arsenal/functions/fnc_buttonCargo.sqf +++ b/addons/arsenal/functions/fnc_buttonCargo.sqf @@ -1,3 +1,5 @@ +#include "script_component.hpp" +#include "..\defines.hpp" /* * Author: Alganthe * Add or remove item(s) when the + or - button is pressed in the right panel. @@ -11,8 +13,6 @@ * * Public: No */ -#include "script_component.hpp" -#include "..\defines.hpp" params ["_display", "_addOrRemove"]; diff --git a/addons/arsenal/functions/fnc_buttonClearAll.sqf b/addons/arsenal/functions/fnc_buttonClearAll.sqf index d73d777ace..8e1d70d6eb 100644 --- a/addons/arsenal/functions/fnc_buttonClearAll.sqf +++ b/addons/arsenal/functions/fnc_buttonClearAll.sqf @@ -1,3 +1,5 @@ +#include "script_component.hpp" +#include "..\defines.hpp" /* * Author: Alganthe * Clear the current container. @@ -10,8 +12,6 @@ * * Public: No */ -#include "script_component.hpp" -#include "..\defines.hpp" params ["_display"]; diff --git a/addons/arsenal/functions/fnc_buttonExport.sqf b/addons/arsenal/functions/fnc_buttonExport.sqf index dd9233764b..86caf418e3 100644 --- a/addons/arsenal/functions/fnc_buttonExport.sqf +++ b/addons/arsenal/functions/fnc_buttonExport.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Alganthe * Export current loadout / default loadouts list to clipboard. @@ -10,7 +11,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_display"]; diff --git a/addons/arsenal/functions/fnc_buttonHide.sqf b/addons/arsenal/functions/fnc_buttonHide.sqf index da870e0b9f..23e4f7d081 100644 --- a/addons/arsenal/functions/fnc_buttonHide.sqf +++ b/addons/arsenal/functions/fnc_buttonHide.sqf @@ -1,3 +1,5 @@ +#include "script_component.hpp" +#include "..\defines.hpp" /* * Author: Alganthe * Hide / show arsenal interface. @@ -10,8 +12,6 @@ * * Public: No */ -#include "script_component.hpp" -#include "..\defines.hpp" params ["_display"]; diff --git a/addons/arsenal/functions/fnc_buttonImport.sqf b/addons/arsenal/functions/fnc_buttonImport.sqf index 543970a0c3..3eefba41a4 100644 --- a/addons/arsenal/functions/fnc_buttonImport.sqf +++ b/addons/arsenal/functions/fnc_buttonImport.sqf @@ -1,3 +1,5 @@ +#include "script_component.hpp" +#include "..\defines.hpp" /* * Author: Alganthe * Import loadout / default loadouts list from clipboard. @@ -10,8 +12,6 @@ * * Public: No */ -#include "script_component.hpp" -#include "..\defines.hpp" params ["_display"]; diff --git a/addons/arsenal/functions/fnc_buttonLoadoutsDelete.sqf b/addons/arsenal/functions/fnc_buttonLoadoutsDelete.sqf index d3621f5826..a1d39b1423 100644 --- a/addons/arsenal/functions/fnc_buttonLoadoutsDelete.sqf +++ b/addons/arsenal/functions/fnc_buttonLoadoutsDelete.sqf @@ -1,3 +1,5 @@ +#include "script_component.hpp" +#include "..\defines.hpp" /* * Author: Alganthe * Delete / unshare loadout currently selected. @@ -11,8 +13,6 @@ * * Public: No */ -#include "script_component.hpp" -#include "..\defines.hpp" params ["_display", "_control"]; diff --git a/addons/arsenal/functions/fnc_buttonLoadoutsLoad.sqf b/addons/arsenal/functions/fnc_buttonLoadoutsLoad.sqf index 9146246fa9..0a2faccc54 100644 --- a/addons/arsenal/functions/fnc_buttonLoadoutsLoad.sqf +++ b/addons/arsenal/functions/fnc_buttonLoadoutsLoad.sqf @@ -1,3 +1,5 @@ +#include "script_component.hpp" +#include "..\defines.hpp" /* * Author: Alganthe * Load selected loadout. @@ -11,8 +13,6 @@ * * Public: No */ -#include "script_component.hpp" -#include "..\defines.hpp" params ["_display", "_control"]; diff --git a/addons/arsenal/functions/fnc_buttonLoadoutsRename.sqf b/addons/arsenal/functions/fnc_buttonLoadoutsRename.sqf index 5435d07279..a1f9294669 100644 --- a/addons/arsenal/functions/fnc_buttonLoadoutsRename.sqf +++ b/addons/arsenal/functions/fnc_buttonLoadoutsRename.sqf @@ -1,3 +1,5 @@ +#include "script_component.hpp" +#include "..\defines.hpp" /* * Author: Alganthe * Rename selected loadout. @@ -11,8 +13,6 @@ * * Public: No */ -#include "script_component.hpp" -#include "..\defines.hpp" params ["_display", "_control"]; diff --git a/addons/arsenal/functions/fnc_buttonLoadoutsSave.sqf b/addons/arsenal/functions/fnc_buttonLoadoutsSave.sqf index 1058e5793a..c35a51f797 100644 --- a/addons/arsenal/functions/fnc_buttonLoadoutsSave.sqf +++ b/addons/arsenal/functions/fnc_buttonLoadoutsSave.sqf @@ -1,3 +1,5 @@ +#include "script_component.hpp" +#include "..\defines.hpp" /* * Author: Alganthe * Save selected loadout. @@ -11,8 +13,6 @@ * * Public: No */ -#include "script_component.hpp" -#include "..\defines.hpp" params ["_display", "_control"]; diff --git a/addons/arsenal/functions/fnc_buttonLoadoutsShare.sqf b/addons/arsenal/functions/fnc_buttonLoadoutsShare.sqf index d167522823..a9a1dd9d08 100644 --- a/addons/arsenal/functions/fnc_buttonLoadoutsShare.sqf +++ b/addons/arsenal/functions/fnc_buttonLoadoutsShare.sqf @@ -1,3 +1,5 @@ +#include "script_component.hpp" +#include "..\defines.hpp" /* * Author: Alganthe * Share selected loadout. @@ -11,8 +13,6 @@ * * Public: No */ -#include "script_component.hpp" -#include "..\defines.hpp" params ["_display", "_control"]; diff --git a/addons/arsenal/functions/fnc_buttonStats.sqf b/addons/arsenal/functions/fnc_buttonStats.sqf index 7fe2d1fbf1..0eaac78a41 100644 --- a/addons/arsenal/functions/fnc_buttonStats.sqf +++ b/addons/arsenal/functions/fnc_buttonStats.sqf @@ -1,3 +1,5 @@ +#include "script_component.hpp" +#include "..\defines.hpp" /* * Author: Alganthe * Toggle the stats control group @@ -11,8 +13,6 @@ * * Public: No */ -#include "script_component.hpp" -#include "..\defines.hpp" params ["_display"]; diff --git a/addons/arsenal/functions/fnc_buttonStatsPage.sqf b/addons/arsenal/functions/fnc_buttonStatsPage.sqf index b1c1cdf7eb..48c9b4715e 100644 --- a/addons/arsenal/functions/fnc_buttonStatsPage.sqf +++ b/addons/arsenal/functions/fnc_buttonStatsPage.sqf @@ -1,3 +1,5 @@ +#include "script_component.hpp" +#include "..\defines.hpp" /* * Author: Alganthe * Handles the previous / next page buttons for stats @@ -11,8 +13,6 @@ * * Public: No */ -#include "script_component.hpp" -#include "..\defines.hpp" params ["_display", "_control", "_nextPage"]; diff --git a/addons/arsenal/functions/fnc_clearSearchbar.sqf b/addons/arsenal/functions/fnc_clearSearchbar.sqf index c417b6d1a4..a6b7b534dc 100644 --- a/addons/arsenal/functions/fnc_clearSearchbar.sqf +++ b/addons/arsenal/functions/fnc_clearSearchbar.sqf @@ -1,3 +1,5 @@ +#include "script_component.hpp" +#include "..\defines.hpp" /* * Author: Alganthe * Clear the provided searchbar. @@ -12,8 +14,6 @@ * * Public: No */ -#include "script_component.hpp" -#include "..\defines.hpp" params ["_display", "_control", "_rightButton"]; diff --git a/addons/arsenal/functions/fnc_compileStats.sqf b/addons/arsenal/functions/fnc_compileStats.sqf index f705e76884..40c9d7cfa5 100644 --- a/addons/arsenal/functions/fnc_compileStats.sqf +++ b/addons/arsenal/functions/fnc_compileStats.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Alganthe * Create the internal stats arrays when needed for the first time @@ -10,7 +11,6 @@ * * Public: No */ -#include "script_component.hpp" if (!isNil QGVAR(statsListLeftPanel)) exitWith {}; diff --git a/addons/arsenal/functions/fnc_fillLeftPanel.sqf b/addons/arsenal/functions/fnc_fillLeftPanel.sqf index 51b16e2412..5009f46e3a 100644 --- a/addons/arsenal/functions/fnc_fillLeftPanel.sqf +++ b/addons/arsenal/functions/fnc_fillLeftPanel.sqf @@ -1,3 +1,5 @@ +#include "script_component.hpp" +#include "..\defines.hpp" /* * Author: Alganthe * Fill left panel. @@ -11,8 +13,6 @@ * * Public: No */ -#include "script_component.hpp" -#include "..\defines.hpp" params ["_display", "_control"]; diff --git a/addons/arsenal/functions/fnc_fillLoadoutsList.sqf b/addons/arsenal/functions/fnc_fillLoadoutsList.sqf index 4388881eba..433f0304df 100644 --- a/addons/arsenal/functions/fnc_fillLoadoutsList.sqf +++ b/addons/arsenal/functions/fnc_fillLoadoutsList.sqf @@ -1,3 +1,5 @@ +#include "script_component.hpp" +#include "..\defines.hpp" /* * Author: Alganthe * Fill loadouts list. @@ -11,8 +13,6 @@ * * Public: No */ -#include "script_component.hpp" -#include "..\defines.hpp" params ["_display", "_control"]; diff --git a/addons/arsenal/functions/fnc_fillRightPanel.sqf b/addons/arsenal/functions/fnc_fillRightPanel.sqf index e3d730f859..a5f60c593c 100644 --- a/addons/arsenal/functions/fnc_fillRightPanel.sqf +++ b/addons/arsenal/functions/fnc_fillRightPanel.sqf @@ -1,3 +1,5 @@ +#include "script_component.hpp" +#include "..\defines.hpp" /* * Author: Alganthe * Fill right panel. @@ -11,8 +13,6 @@ * * Public: No */ -#include "script_component.hpp" -#include "..\defines.hpp" params ["_display", "_control"]; diff --git a/addons/arsenal/functions/fnc_handleLoadoutsSearchbar.sqf b/addons/arsenal/functions/fnc_handleLoadoutsSearchbar.sqf index 07a42c4fd5..2911e7aa19 100644 --- a/addons/arsenal/functions/fnc_handleLoadoutsSearchbar.sqf +++ b/addons/arsenal/functions/fnc_handleLoadoutsSearchbar.sqf @@ -1,3 +1,5 @@ +#include "script_component.hpp" +#include "..\defines.hpp" /* * Author: Alganthe * Handles keyboard inputs inside the searchbars text boxes. @@ -11,8 +13,6 @@ * * Public: No */ -#include "script_component.hpp" -#include "..\defines.hpp" params ["_display", "_control"]; diff --git a/addons/arsenal/functions/fnc_handleMouse.sqf b/addons/arsenal/functions/fnc_handleMouse.sqf index 071eb1f94d..7d2fa2c9e2 100644 --- a/addons/arsenal/functions/fnc_handleMouse.sqf +++ b/addons/arsenal/functions/fnc_handleMouse.sqf @@ -1,3 +1,5 @@ +#include "script_component.hpp" +#include "..\defines.hpp" /* * Author: Karel Moricky, modified by Alganthe * Update the camera position and pitch/bank. @@ -15,8 +17,6 @@ * * Public: No */ -#include "script_component.hpp" -#include "..\defines.hpp" params ["", "_args"]; diff --git a/addons/arsenal/functions/fnc_handleScrollWheel.sqf b/addons/arsenal/functions/fnc_handleScrollWheel.sqf index e7dc3bbc1e..0fec3e7c5b 100644 --- a/addons/arsenal/functions/fnc_handleScrollWheel.sqf +++ b/addons/arsenal/functions/fnc_handleScrollWheel.sqf @@ -1,3 +1,5 @@ +#include "script_component.hpp" +#include "..\defines.hpp" /* * Author: Alganthe * Handle the mouse wheel. @@ -11,8 +13,6 @@ * * Public: No */ -#include "script_component.hpp" -#include "..\defines.hpp" params ["", "_args"]; _args params ["", "_zPos"]; diff --git a/addons/arsenal/functions/fnc_handleSearchbar.sqf b/addons/arsenal/functions/fnc_handleSearchbar.sqf index 87b03d8c57..5632006f43 100644 --- a/addons/arsenal/functions/fnc_handleSearchbar.sqf +++ b/addons/arsenal/functions/fnc_handleSearchbar.sqf @@ -1,3 +1,5 @@ +#include "script_component.hpp" +#include "..\defines.hpp" /* * Author: Alganthe * Handles keyboard inputs inside the searchbars text boxes. @@ -11,8 +13,6 @@ * * Public: No */ -#include "script_component.hpp" -#include "..\defines.hpp" params ["_display", "_control"]; diff --git a/addons/arsenal/functions/fnc_handleStats.sqf b/addons/arsenal/functions/fnc_handleStats.sqf index ec22b6055d..0c57f6c721 100644 --- a/addons/arsenal/functions/fnc_handleStats.sqf +++ b/addons/arsenal/functions/fnc_handleStats.sqf @@ -1,3 +1,5 @@ +#include "script_component.hpp" +#include "..\defines.hpp" /* * Author: Alganthe * Handles the stats control group @@ -13,8 +15,6 @@ * * Public: No */ -#include "script_component.hpp" -#include "..\defines.hpp" params ["_display", "_control", "_curSel", "_itemCfg"]; diff --git a/addons/arsenal/functions/fnc_initBox.sqf b/addons/arsenal/functions/fnc_initBox.sqf index 52d7662a00..51c1453531 100644 --- a/addons/arsenal/functions/fnc_initBox.sqf +++ b/addons/arsenal/functions/fnc_initBox.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Alganthe * Initialize a box / object for arsenal. @@ -16,7 +17,6 @@ * * Public: Yes */ -#include "script_component.hpp" params [["_object", objNull, [objNull]], ["_items", true, [[], true]], ["_global", true, [true]]]; diff --git a/addons/arsenal/functions/fnc_itemInfo.sqf b/addons/arsenal/functions/fnc_itemInfo.sqf index 546158fa7e..85a848c3bd 100644 --- a/addons/arsenal/functions/fnc_itemInfo.sqf +++ b/addons/arsenal/functions/fnc_itemInfo.sqf @@ -1,3 +1,5 @@ +#include "script_component.hpp" +#include "..\defines.hpp" /* * Author: Alganthe * Update arsenal's info box. @@ -13,8 +15,6 @@ * * Public: No */ -#include "script_component.hpp" -#include "..\defines.hpp" params ["_display", "_control", "_curSel" ,"_itemCfg"]; diff --git a/addons/arsenal/functions/fnc_loadoutsChangeTab.sqf b/addons/arsenal/functions/fnc_loadoutsChangeTab.sqf index 1546d3ed6c..df5d8a5804 100644 --- a/addons/arsenal/functions/fnc_loadoutsChangeTab.sqf +++ b/addons/arsenal/functions/fnc_loadoutsChangeTab.sqf @@ -1,3 +1,5 @@ +#include "script_component.hpp" +#include "..\defines.hpp" /* * Author: Alganthe * Handles tab changing for the loadouts display. @@ -11,8 +13,6 @@ * * Public: No */ -#include "script_component.hpp" -#include "..\defines.hpp" params ["_display", "_control"]; diff --git a/addons/arsenal/functions/fnc_message.sqf b/addons/arsenal/functions/fnc_message.sqf index 92f922d7f9..8fbd48748f 100644 --- a/addons/arsenal/functions/fnc_message.sqf +++ b/addons/arsenal/functions/fnc_message.sqf @@ -1,3 +1,5 @@ +#include "script_component.hpp" +#include "..\defines.hpp" /* * Author: Alganthe * Displays messages in arsenal. @@ -11,8 +13,6 @@ * * Public: No */ -#include "script_component.hpp" -#include "..\defines.hpp" params ["_display", "_message"]; diff --git a/addons/arsenal/functions/fnc_onArsenalClose.sqf b/addons/arsenal/functions/fnc_onArsenalClose.sqf index bbf1e36f08..f4ad7dfed8 100644 --- a/addons/arsenal/functions/fnc_onArsenalClose.sqf +++ b/addons/arsenal/functions/fnc_onArsenalClose.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Alganthe * onUnLoad EH for arsenal. @@ -10,7 +11,6 @@ * * Public: No */ -#include "script_component.hpp" (_this select 1) params ["", "_exitCode"]; diff --git a/addons/arsenal/functions/fnc_onArsenalOpen.sqf b/addons/arsenal/functions/fnc_onArsenalOpen.sqf index c74f363d7c..222232b1de 100644 --- a/addons/arsenal/functions/fnc_onArsenalOpen.sqf +++ b/addons/arsenal/functions/fnc_onArsenalOpen.sqf @@ -1,3 +1,5 @@ +#include "script_component.hpp" +#include "..\defines.hpp" /* * Author: Alganthe * onLoad EH for arsenal. @@ -12,8 +14,6 @@ * * Public: No */ -#include "script_component.hpp" -#include "..\defines.hpp" params ["", "_args"]; _args params ["_display"]; diff --git a/addons/arsenal/functions/fnc_onKeyDown.sqf b/addons/arsenal/functions/fnc_onKeyDown.sqf index d06055f149..a66ab3784d 100644 --- a/addons/arsenal/functions/fnc_onKeyDown.sqf +++ b/addons/arsenal/functions/fnc_onKeyDown.sqf @@ -1,3 +1,6 @@ +#include "script_component.hpp" +#include "..\defines.hpp" +#include "\A3\ui_f\hpp\defineDIKCodes.inc" /* * Author: Alganthe * Handles keyboard inputs in arsenal. @@ -14,9 +17,6 @@ * * Public: No */ -#include "script_component.hpp" -#include "..\defines.hpp" -#include "\A3\ui_f\hpp\defineDIKCodes.inc" params ["", "_args"]; _args params ["_display", "_keyPressed", "_shiftState", "_ctrlState", "_altState"]; diff --git a/addons/arsenal/functions/fnc_onLoadoutsClose.sqf b/addons/arsenal/functions/fnc_onLoadoutsClose.sqf index 4560fbe384..1b25ad4945 100644 --- a/addons/arsenal/functions/fnc_onLoadoutsClose.sqf +++ b/addons/arsenal/functions/fnc_onLoadoutsClose.sqf @@ -1,3 +1,5 @@ +#include "script_component.hpp" +#include "..\defines.hpp" /* * Author: Alganthe * onUnLoad EH for arsenal loadouts display. @@ -10,8 +12,6 @@ * * Public: No */ -#include "script_component.hpp" -#include "..\defines.hpp" GVAR(currentLoadoutsTab) = nil; diff --git a/addons/arsenal/functions/fnc_onLoadoutsOpen.sqf b/addons/arsenal/functions/fnc_onLoadoutsOpen.sqf index 613621e405..d22124359d 100644 --- a/addons/arsenal/functions/fnc_onLoadoutsOpen.sqf +++ b/addons/arsenal/functions/fnc_onLoadoutsOpen.sqf @@ -1,3 +1,5 @@ +#include "script_component.hpp" +#include "..\defines.hpp" /* * Author: Alganthe * onLoad EH for arsenal loadouts display. @@ -12,8 +14,6 @@ * * Public: No */ -#include "script_component.hpp" -#include "..\defines.hpp" params ["", "_args"]; _args params ["_display"]; diff --git a/addons/arsenal/functions/fnc_onSelChangedLeft.sqf b/addons/arsenal/functions/fnc_onSelChangedLeft.sqf index be49a6c7ac..acc1d12741 100644 --- a/addons/arsenal/functions/fnc_onSelChangedLeft.sqf +++ b/addons/arsenal/functions/fnc_onSelChangedLeft.sqf @@ -1,3 +1,5 @@ +#include "script_component.hpp" +#include "..\defines.hpp" /* * Author: Alganthe * Handles selection changes on the left panel. @@ -11,8 +13,6 @@ * * Public: No */ -#include "script_component.hpp" -#include "..\defines.hpp" params ["_control", "_curSel"]; diff --git a/addons/arsenal/functions/fnc_onSelChangedLoadouts.sqf b/addons/arsenal/functions/fnc_onSelChangedLoadouts.sqf index 3f4d508ae0..529f69da75 100644 --- a/addons/arsenal/functions/fnc_onSelChangedLoadouts.sqf +++ b/addons/arsenal/functions/fnc_onSelChangedLoadouts.sqf @@ -1,3 +1,5 @@ +#include "script_component.hpp" +#include "..\defines.hpp" /* * Author: Alganthe * Handles selection changes on loadouts panel. @@ -11,8 +13,6 @@ * * Public: No */ -#include "script_component.hpp" -#include "..\defines.hpp" params ["_display", "_control", "_curSel"]; diff --git a/addons/arsenal/functions/fnc_onSelChangedRight.sqf b/addons/arsenal/functions/fnc_onSelChangedRight.sqf index 7a565cd14d..a2d83dceba 100644 --- a/addons/arsenal/functions/fnc_onSelChangedRight.sqf +++ b/addons/arsenal/functions/fnc_onSelChangedRight.sqf @@ -1,3 +1,5 @@ +#include "script_component.hpp" +#include "..\defines.hpp" /* * Author: Alganthe * Handles selection changes on the right panel. @@ -11,8 +13,6 @@ * * Public: No */ -#include "script_component.hpp" -#include "..\defines.hpp" params ["_control", "_curSel"]; diff --git a/addons/arsenal/functions/fnc_onSelChangedRightListnBox.sqf b/addons/arsenal/functions/fnc_onSelChangedRightListnBox.sqf index 29c66a79f9..c2b14c6462 100644 --- a/addons/arsenal/functions/fnc_onSelChangedRightListnBox.sqf +++ b/addons/arsenal/functions/fnc_onSelChangedRightListnBox.sqf @@ -1,3 +1,5 @@ +#include "script_component.hpp" +#include "..\defines.hpp" /* * Author: Alganthe * Handles selection changes on the right panel (listnbox). @@ -11,8 +13,6 @@ * * Public: No */ -#include "script_component.hpp" -#include "..\defines.hpp" params ["_control", "_curSel"]; diff --git a/addons/arsenal/functions/fnc_open3DEN.sqf b/addons/arsenal/functions/fnc_open3DEN.sqf index 6bb0adcaa3..103ec870e1 100644 --- a/addons/arsenal/functions/fnc_open3DEN.sqf +++ b/addons/arsenal/functions/fnc_open3DEN.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Alganthe * Replace the 3DEN "edit loadout" menu action @@ -11,7 +12,6 @@ * * Public: No */ -#include "script_component.hpp" private _entity = (uinamespace getvariable ["bis_fnc_3DENEntityMenu_data",[]]) param [1, objnull]; [_entity, _entity, true] call FUNC(openBox); diff --git a/addons/arsenal/functions/fnc_openBox.sqf b/addons/arsenal/functions/fnc_openBox.sqf index af23d9f990..ce02e6e343 100644 --- a/addons/arsenal/functions/fnc_openBox.sqf +++ b/addons/arsenal/functions/fnc_openBox.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Alganthe * Open arsenal. @@ -15,7 +16,6 @@ * * Public: Yes */ -#include "script_component.hpp" params [["_object", objNull, [objNull]], ["_center", objNull, [objNull]], ["_mode", false, [false]]]; diff --git a/addons/arsenal/functions/fnc_portVALoadouts.sqf b/addons/arsenal/functions/fnc_portVALoadouts.sqf index 7ad141819d..0e403eae92 100644 --- a/addons/arsenal/functions/fnc_portVALoadouts.sqf +++ b/addons/arsenal/functions/fnc_portVALoadouts.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: alganthe * Port VA loadouts to ACE Arsenal. @@ -10,7 +11,6 @@ * * Public: Yes */ -#include "script_component.hpp" private _VALoadouts = +(profilenamespace getvariable ["bis_fnc_saveInventory_data",[]]); private _aceLoadouts = +(profileNamespace getVariable [QGVAR(saved_loadouts),[]]); diff --git a/addons/arsenal/functions/fnc_removeBox.sqf b/addons/arsenal/functions/fnc_removeBox.sqf index 43fa903ca4..ed4ec7de4d 100644 --- a/addons/arsenal/functions/fnc_removeBox.sqf +++ b/addons/arsenal/functions/fnc_removeBox.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Alganthe * Remove arsenal from target. @@ -14,7 +15,6 @@ * * Public: Yes */ -#include "script_component.hpp" params [["_object", objNull, [objNull]], ["_global", true, [true]]]; diff --git a/addons/arsenal/functions/fnc_removeStat.sqf b/addons/arsenal/functions/fnc_removeStat.sqf index 86eecd839d..79f2173798 100644 --- a/addons/arsenal/functions/fnc_removeStat.sqf +++ b/addons/arsenal/functions/fnc_removeStat.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Alganthe * Remove a stat from ACE Arsenal. @@ -13,7 +14,6 @@ * * Public: Yes */ -#include "script_component.hpp" params ["_IDList"]; diff --git a/addons/arsenal/functions/fnc_removeVirtualItems.sqf b/addons/arsenal/functions/fnc_removeVirtualItems.sqf index f6fed970f9..d96d16e3d6 100644 --- a/addons/arsenal/functions/fnc_removeVirtualItems.sqf +++ b/addons/arsenal/functions/fnc_removeVirtualItems.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Alganthe * Remove virtual items to the provided target. @@ -16,7 +17,6 @@ * * Public: Yes */ -#include "script_component.hpp" params [ ["_object", objNull, [objNull]], ["_items", [], [true, [""]]], ["_global", false, [false]] ]; diff --git a/addons/arsenal/functions/fnc_scanConfig.sqf b/addons/arsenal/functions/fnc_scanConfig.sqf index 326b89a1ac..840c56d514 100644 --- a/addons/arsenal/functions/fnc_scanConfig.sqf +++ b/addons/arsenal/functions/fnc_scanConfig.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Dedmen * Cache an array of all the compatible items for arsenal. @@ -10,7 +11,6 @@ * * Public: No */ -#include "script_component.hpp" private _cargo = [ [[], [], []], // Weapons 0, primary, secondary, handgun diff --git a/addons/arsenal/functions/fnc_showItem.sqf b/addons/arsenal/functions/fnc_showItem.sqf index 478ae4218d..d9bf74f061 100644 --- a/addons/arsenal/functions/fnc_showItem.sqf +++ b/addons/arsenal/functions/fnc_showItem.sqf @@ -1,3 +1,5 @@ +#include "script_component.hpp" +#include "..\defines.hpp" /* * Author: Alganthe * Change unit animation / play sound preview. @@ -10,8 +12,6 @@ * * Public: No */ -#include "script_component.hpp" -#include "..\defines.hpp" if (GVAR(centerNotPlayer)) exitWith {}; diff --git a/addons/arsenal/functions/fnc_sortPanel.sqf b/addons/arsenal/functions/fnc_sortPanel.sqf index 6bfb113d19..5d3a2af017 100644 --- a/addons/arsenal/functions/fnc_sortPanel.sqf +++ b/addons/arsenal/functions/fnc_sortPanel.sqf @@ -1,3 +1,5 @@ +#include "script_component.hpp" +#include "..\defines.hpp" /* * Author: Alganthe, Dedmen * Sort arsenal panel. @@ -11,8 +13,6 @@ * * Public: No */ -#include "script_component.hpp" -#include "..\defines.hpp" params ["_control", "_mode"]; diff --git a/addons/arsenal/functions/fnc_statBarStatement_accuracy.sqf b/addons/arsenal/functions/fnc_statBarStatement_accuracy.sqf index f426cbd963..141cc262ad 100644 --- a/addons/arsenal/functions/fnc_statBarStatement_accuracy.sqf +++ b/addons/arsenal/functions/fnc_statBarStatement_accuracy.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Alganthe * Accuracy bar statement. @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_stat", "_config", "_args"]; _args params ["_statMinMax", "_barLimits"]; diff --git a/addons/arsenal/functions/fnc_statBarStatement_default.sqf b/addons/arsenal/functions/fnc_statBarStatement_default.sqf index d31529b55b..4eb0a36f98 100644 --- a/addons/arsenal/functions/fnc_statBarStatement_default.sqf +++ b/addons/arsenal/functions/fnc_statBarStatement_default.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Alganthe * Generic bar statement for stats. @@ -15,7 +16,6 @@ * * Public: Yes */ -#include "script_component.hpp" params ["_stat", "_config", "_args"]; _args params ["_statMinMax", "_barLimits", "_configExtremeBool"]; diff --git a/addons/arsenal/functions/fnc_statBarStatement_impact.sqf b/addons/arsenal/functions/fnc_statBarStatement_impact.sqf index d979a178a0..c8839e85c2 100644 --- a/addons/arsenal/functions/fnc_statBarStatement_impact.sqf +++ b/addons/arsenal/functions/fnc_statBarStatement_impact.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Alganthe * Impact bar statement. @@ -15,7 +16,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_stats", "_config", "_args"]; _args params ["_hitMinMax", "_initSpeedMinMax", "_launcherTabIDC"]; diff --git a/addons/arsenal/functions/fnc_statBarStatement_rateOfFIre.sqf b/addons/arsenal/functions/fnc_statBarStatement_rateOfFIre.sqf index 3557cd7ed5..8e2bd5fef8 100644 --- a/addons/arsenal/functions/fnc_statBarStatement_rateOfFIre.sqf +++ b/addons/arsenal/functions/fnc_statBarStatement_rateOfFIre.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Alganthe * Rate of fire bar statement. @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_stat", "_config", "_args"]; _args params ["_statMinMax", "_barLimits"]; diff --git a/addons/arsenal/functions/fnc_statTextStatement_accuracy.sqf b/addons/arsenal/functions/fnc_statTextStatement_accuracy.sqf index 8323b9dd73..cb2687097b 100644 --- a/addons/arsenal/functions/fnc_statTextStatement_accuracy.sqf +++ b/addons/arsenal/functions/fnc_statTextStatement_accuracy.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Alganthe * Accuracy text statement. @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_stat", "_config", "_args"]; _args params ["_statMinMax", "_configExtremeBool"]; diff --git a/addons/arsenal/functions/fnc_statTextStatement_mass.sqf b/addons/arsenal/functions/fnc_statTextStatement_mass.sqf index eeda9d7203..9c2a0501a6 100644 --- a/addons/arsenal/functions/fnc_statTextStatement_mass.sqf +++ b/addons/arsenal/functions/fnc_statTextStatement_mass.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Alganthe * Text statement for the mass stat. @@ -11,7 +12,6 @@ * * Public: No */ -#include "script_component.hpp" params ["", "_config"]; diff --git a/addons/arsenal/functions/fnc_statTextStatement_rateOfFire.sqf b/addons/arsenal/functions/fnc_statTextStatement_rateOfFire.sqf index c57306f5af..46f66fd52a 100644 --- a/addons/arsenal/functions/fnc_statTextStatement_rateOfFire.sqf +++ b/addons/arsenal/functions/fnc_statTextStatement_rateOfFire.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Alganthe * Rate of fire text statement. @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_stat", "_config", "_args"]; _args params ["_statMinMax", "_configExtremeBool"]; diff --git a/addons/arsenal/functions/fnc_statTextStatement_scopeMag.sqf b/addons/arsenal/functions/fnc_statTextStatement_scopeMag.sqf index 5445847215..f817ff6c3f 100644 --- a/addons/arsenal/functions/fnc_statTextStatement_scopeMag.sqf +++ b/addons/arsenal/functions/fnc_statTextStatement_scopeMag.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: PabstMirror * Text statement for the scope magnification stat. @@ -11,7 +12,6 @@ * * Public: No */ -#include "script_component.hpp" params ["", "_config"]; TRACE_1("statTextStatement_scopeMag",_config); diff --git a/addons/arsenal/functions/fnc_updateCamPos.sqf b/addons/arsenal/functions/fnc_updateCamPos.sqf index 41b7399e61..66bad37936 100644 --- a/addons/arsenal/functions/fnc_updateCamPos.sqf +++ b/addons/arsenal/functions/fnc_updateCamPos.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Karel Moricky, modified by Alganthe * Update camera position @@ -11,7 +12,6 @@ * * Public: Yes */ -#include "script_component.hpp" GVAR(cameraPosition) params ["_distance", "_dirH", "_dirV"]; [GVAR(cameraHelper), [_dirH + 180, - _dirV, 0]] call bis_fnc_setobjectrotation; diff --git a/addons/arsenal/functions/fnc_updateRightPanel.sqf b/addons/arsenal/functions/fnc_updateRightPanel.sqf index 41c7c68483..8114b8a568 100644 --- a/addons/arsenal/functions/fnc_updateRightPanel.sqf +++ b/addons/arsenal/functions/fnc_updateRightPanel.sqf @@ -1,3 +1,5 @@ +#include "script_component.hpp" +#include "..\defines.hpp" /* * Author: Alganthe * Update the right panel (listnbox). @@ -11,8 +13,6 @@ * * Public: No */ -#include "script_component.hpp" -#include "..\defines.hpp" params ["_control", "_maxLoad"]; diff --git a/addons/arsenal/functions/fnc_updateUniqueItemsList.sqf b/addons/arsenal/functions/fnc_updateUniqueItemsList.sqf index 7a037d987d..7405950631 100644 --- a/addons/arsenal/functions/fnc_updateUniqueItemsList.sqf +++ b/addons/arsenal/functions/fnc_updateUniqueItemsList.sqf @@ -1,3 +1,5 @@ +#include "script_component.hpp" +#include "..\defines.hpp" /* * Author: Alganthe * Update the list of unique items. @@ -10,8 +12,6 @@ * * Public: No */ -#include "script_component.hpp" -#include "..\defines.hpp" GVAR(virtualItems) set [18, []]; GVAR(virtualItems) set [19, []]; diff --git a/addons/arsenal/functions/fnc_verifyLoadout.sqf b/addons/arsenal/functions/fnc_verifyLoadout.sqf index d5d0923511..e7ce4fe0a6 100644 --- a/addons/arsenal/functions/fnc_verifyLoadout.sqf +++ b/addons/arsenal/functions/fnc_verifyLoadout.sqf @@ -1,3 +1,5 @@ +#include "script_component.hpp" +#include "..\defines.hpp" /* * Author: Alganthe * Verify the provided loadout. @@ -10,8 +12,6 @@ * * Public: No */ -#include "script_component.hpp" -#include "..\defines.hpp" params ["_loadout"]; diff --git a/addons/atragmx/functions/fnc_add_new_gun.sqf b/addons/atragmx/functions/fnc_add_new_gun.sqf index 729649dc5d..94415852f9 100644 --- a/addons/atragmx/functions/fnc_add_new_gun.sqf +++ b/addons/atragmx/functions/fnc_add_new_gun.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Ruthberg * Adds a new (default) gun profile to the profileNamespace @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" call FUNC(trim_gun_name); diff --git a/addons/atragmx/functions/fnc_calculate_distance_at_velocity.sqf b/addons/atragmx/functions/fnc_calculate_distance_at_velocity.sqf index cbb78df8e7..1f06d79988 100644 --- a/addons/atragmx/functions/fnc_calculate_distance_at_velocity.sqf +++ b/addons/atragmx/functions/fnc_calculate_distance_at_velocity.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Ruthberg * Calculates distance at which the bullet velocity drops below the threshold velocity @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" #define __DELTA_T 0.001 diff --git a/addons/atragmx/functions/fnc_calculate_range_card.sqf b/addons/atragmx/functions/fnc_calculate_range_card.sqf index 9201861351..473e49a8a1 100644 --- a/addons/atragmx/functions/fnc_calculate_range_card.sqf +++ b/addons/atragmx/functions/fnc_calculate_range_card.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Ruthberg * Calculates the range card output based on the current data set @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" GVAR(rangeCardData) = []; diff --git a/addons/atragmx/functions/fnc_calculate_solution.sqf b/addons/atragmx/functions/fnc_calculate_solution.sqf index a7928d1ef0..3c854499d9 100644 --- a/addons/atragmx/functions/fnc_calculate_solution.sqf +++ b/addons/atragmx/functions/fnc_calculate_solution.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Ruthberg * Calculates the fireing solution @@ -41,7 +42,6 @@ * * Public: No */ -#include "script_component.hpp" params [ "_scopeBaseAngle", "_bulletMass", "_boreHeight", "_airFriction", "_muzzleVelocity", "_temperature", "_barometricPressure", "_relativeHumidity", "_simSteps", "_windSpeed", diff --git a/addons/atragmx/functions/fnc_calculate_target_range_assist.sqf b/addons/atragmx/functions/fnc_calculate_target_range_assist.sqf index 3a1bd879f1..51f00cdaaf 100644 --- a/addons/atragmx/functions/fnc_calculate_target_range_assist.sqf +++ b/addons/atragmx/functions/fnc_calculate_target_range_assist.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Ruthberg * Calculates the target range and updates the output fields @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" private _angle = parseNumber(ctrlText 7012); private _targetSize = abs(parseNumber(ctrlText 7010)); diff --git a/addons/atragmx/functions/fnc_calculate_target_solution.sqf b/addons/atragmx/functions/fnc_calculate_target_solution.sqf index 4477025618..775467f5de 100644 --- a/addons/atragmx/functions/fnc_calculate_target_solution.sqf +++ b/addons/atragmx/functions/fnc_calculate_target_solution.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Ruthberg * Calculates the fireing solution and updates the result input/output fields @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" [] call FUNC(parse_input); diff --git a/addons/atragmx/functions/fnc_calculate_target_speed_assist.sqf b/addons/atragmx/functions/fnc_calculate_target_speed_assist.sqf index eacefc9833..1e28a82339 100644 --- a/addons/atragmx/functions/fnc_calculate_target_speed_assist.sqf +++ b/addons/atragmx/functions/fnc_calculate_target_speed_assist.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Ruthberg * Calculates the target speed and updates the output fields @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" private _targetRange = parseNumber(ctrlText 8004); private _numTicks = parseNumber(ctrlText 8005); diff --git a/addons/atragmx/functions/fnc_calculate_truing_drop.sqf b/addons/atragmx/functions/fnc_calculate_truing_drop.sqf index fa43ac73c2..be6ebd1eda 100644 --- a/addons/atragmx/functions/fnc_calculate_truing_drop.sqf +++ b/addons/atragmx/functions/fnc_calculate_truing_drop.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Ruthberg * Calculates the truing drop and updates the output fields @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" private _parseInput = _this; diff --git a/addons/atragmx/functions/fnc_can_show.sqf b/addons/atragmx/functions/fnc_can_show.sqf index bf05edee98..6d3ed1f6ec 100644 --- a/addons/atragmx/functions/fnc_can_show.sqf +++ b/addons/atragmx/functions/fnc_can_show.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Authors: Ruthberg * Tests if the ATragMX dialog can be shown @@ -13,6 +14,5 @@ * * Public: No */ -#include "script_component.hpp" (("ACE_ATragMX" in (uniformItems ACE_player)) || ("ACE_ATragMX" in (vestItems ACE_player))) && !(underwater ACE_player); diff --git a/addons/atragmx/functions/fnc_change_gun.sqf b/addons/atragmx/functions/fnc_change_gun.sqf index 53167f87b1..9b3863420b 100644 --- a/addons/atragmx/functions/fnc_change_gun.sqf +++ b/addons/atragmx/functions/fnc_change_gun.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Ruthberg * Selects a new gun profile and updates the gun column and the result input/output fields @@ -15,7 +16,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_gunID", "_restoreMemory", "_updateDisplay"]; diff --git a/addons/atragmx/functions/fnc_change_target_slot.sqf b/addons/atragmx/functions/fnc_change_target_slot.sqf index 6fd3889309..71118748d9 100644 --- a/addons/atragmx/functions/fnc_change_target_slot.sqf +++ b/addons/atragmx/functions/fnc_change_target_slot.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Ruthberg * Selects a target slot (A, B, C or D) @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" GVAR(currentTarget) = 0 max _this min 3; diff --git a/addons/atragmx/functions/fnc_clear_c1_ballistic_coefficient_data.sqf b/addons/atragmx/functions/fnc_clear_c1_ballistic_coefficient_data.sqf index a795b74c70..22aa0ac3f8 100644 --- a/addons/atragmx/functions/fnc_clear_c1_ballistic_coefficient_data.sqf +++ b/addons/atragmx/functions/fnc_clear_c1_ballistic_coefficient_data.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Ruthberg * Clears the c1 ballistic coefficient data fields @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" // Distances {ctrlSetText [_x, "0"]} forEach [170021, 170022, 170023, 170024, 170025, 170026, 170027]; diff --git a/addons/atragmx/functions/fnc_clear_muzzle_velocity_data.sqf b/addons/atragmx/functions/fnc_clear_muzzle_velocity_data.sqf index 6f4472c550..4e686202e1 100644 --- a/addons/atragmx/functions/fnc_clear_muzzle_velocity_data.sqf +++ b/addons/atragmx/functions/fnc_clear_muzzle_velocity_data.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Ruthberg * Clears the muzzle velocity data fields @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" // Temperatures {ctrlSetText [_x, "0"]} forEach [160021, 160022, 160023, 160024, 160025, 160026, 160027]; diff --git a/addons/atragmx/functions/fnc_clear_user_data.sqf b/addons/atragmx/functions/fnc_clear_user_data.sqf index 727c8da107..e166b56880 100644 --- a/addons/atragmx/functions/fnc_clear_user_data.sqf +++ b/addons/atragmx/functions/fnc_clear_user_data.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Ruthberg * Removes all user data from the profileNamespace @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" profileNamespace setVariable ["ACE_ATragMX_gunList", nil]; diff --git a/addons/atragmx/functions/fnc_create_dialog.sqf b/addons/atragmx/functions/fnc_create_dialog.sqf index c342bb1eb0..2b1975b567 100644 --- a/addons/atragmx/functions/fnc_create_dialog.sqf +++ b/addons/atragmx/functions/fnc_create_dialog.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Ruthberg * Creates the ATragMX dialog @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" #define __dsp (uiNamespace getVariable "ATragMX_Display") #define __ctrlBackground (__dsp displayCtrl 720000) diff --git a/addons/atragmx/functions/fnc_cycle_gun_list.sqf b/addons/atragmx/functions/fnc_cycle_gun_list.sqf index 550bc624f2..7d0c6b5ab4 100644 --- a/addons/atragmx/functions/fnc_cycle_gun_list.sqf +++ b/addons/atragmx/functions/fnc_cycle_gun_list.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Ruthberg * Cycles through the gun list @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" if (!(GVAR(showMainPage) || GVAR(showGunList))) exitWith {}; diff --git a/addons/atragmx/functions/fnc_cycle_image_size_units.sqf b/addons/atragmx/functions/fnc_cycle_image_size_units.sqf index 2981a9a73e..70b35ec58c 100644 --- a/addons/atragmx/functions/fnc_cycle_image_size_units.sqf +++ b/addons/atragmx/functions/fnc_cycle_image_size_units.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Ruthberg * Cycles through the image size units @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" GVAR(rangeAssistImageSizeUnit) = (GVAR(rangeAssistImageSizeUnit) + 1) % (count GVAR(rangeAssistImageSizeUnits)); ctrlSetText [7015, GVAR(rangeAssistImageSizeUnits) select GVAR(rangeAssistImageSizeUnit)]; diff --git a/addons/atragmx/functions/fnc_cycle_num_ticks_units.sqf b/addons/atragmx/functions/fnc_cycle_num_ticks_units.sqf index fc4746ee56..65361b9860 100644 --- a/addons/atragmx/functions/fnc_cycle_num_ticks_units.sqf +++ b/addons/atragmx/functions/fnc_cycle_num_ticks_units.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Ruthberg * Cycles through the num ticks units @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" GVAR(speedAssistNumTicksUnit) = (GVAR(speedAssistNumTicksUnit) + 1) % (count GVAR(speedAssistNumTicksUnits)); ctrlSetText [8009, GVAR(speedAssistNumTicksUnits) select GVAR(speedAssistNumTicksUnit)]; diff --git a/addons/atragmx/functions/fnc_cycle_range_card_columns.sqf b/addons/atragmx/functions/fnc_cycle_range_card_columns.sqf index dfba1f0574..b9432996cb 100644 --- a/addons/atragmx/functions/fnc_cycle_range_card_columns.sqf +++ b/addons/atragmx/functions/fnc_cycle_range_card_columns.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Ruthberg * Cycles through the range card columns @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" GVAR(rangeCardCurrentColumn) = (GVAR(rangeCardCurrentColumn) + 1) % (count GVAR(rangeCardLastColumns)); diff --git a/addons/atragmx/functions/fnc_cycle_scope_unit.sqf b/addons/atragmx/functions/fnc_cycle_scope_unit.sqf index a2020f4147..74c5a37dd4 100644 --- a/addons/atragmx/functions/fnc_cycle_scope_unit.sqf +++ b/addons/atragmx/functions/fnc_cycle_scope_unit.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Ruthberg * Cycles through the scope units @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" GVAR(currentScopeUnit) = (GVAR(currentScopeUnit) + 1) % (count GVAR(scopeUnits)); GVAR(workingMemory) set [6, GVAR(currentScopeUnit)]; diff --git a/addons/atragmx/functions/fnc_cycle_target_size_units.sqf b/addons/atragmx/functions/fnc_cycle_target_size_units.sqf index 267d4d5772..36165ddae5 100644 --- a/addons/atragmx/functions/fnc_cycle_target_size_units.sqf +++ b/addons/atragmx/functions/fnc_cycle_target_size_units.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Ruthberg * Cycles through the target size units @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" GVAR(rangeAssistTargetSizeUnit) = (GVAR(rangeAssistTargetSizeUnit) + 1) % (count GVAR(rangeAssistTargetSizeUnits)); ctrlSetText [7014, GVAR(rangeAssistTargetSizeUnits) select GVAR(rangeAssistTargetSizeUnit)]; diff --git a/addons/atragmx/functions/fnc_cycle_target_speed_direction.sqf b/addons/atragmx/functions/fnc_cycle_target_speed_direction.sqf index e1e8282440..42d3232d54 100644 --- a/addons/atragmx/functions/fnc_cycle_target_speed_direction.sqf +++ b/addons/atragmx/functions/fnc_cycle_target_speed_direction.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Ruthberg * Cycles through the target directions left/right @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" if ((ctrlText 140051) == ">") then { ctrlSetText [140051, "<"]; diff --git a/addons/atragmx/functions/fnc_delete_gun.sqf b/addons/atragmx/functions/fnc_delete_gun.sqf index 55548527f1..b5c209717d 100644 --- a/addons/atragmx/functions/fnc_delete_gun.sqf +++ b/addons/atragmx/functions/fnc_delete_gun.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Ruthberg * Deletes the currently selected gun profile from the profileNamespace @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" private _index = lbCurSel 6000; diff --git a/addons/atragmx/functions/fnc_evaluate_option_menu_input.sqf b/addons/atragmx/functions/fnc_evaluate_option_menu_input.sqf index 2e4c9ef023..bcbd2b87c5 100644 --- a/addons/atragmx/functions/fnc_evaluate_option_menu_input.sqf +++ b/addons/atragmx/functions/fnc_evaluate_option_menu_input.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Ruthberg * Evalutes input from the option menu @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_optionID"]; diff --git a/addons/atragmx/functions/fnc_init.sqf b/addons/atragmx/functions/fnc_init.sqf index 28b5202670..2dcd34d493 100644 --- a/addons/atragmx/functions/fnc_init.sqf +++ b/addons/atragmx/functions/fnc_init.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Ruthberg * Inits all global variables with the default values @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" GVAR(workingMemory) = +(GVAR(gunList) select 0); diff --git a/addons/atragmx/functions/fnc_initGunList.sqf b/addons/atragmx/functions/fnc_initGunList.sqf index 2e2bbd15bd..3ffcaf976c 100644 --- a/addons/atragmx/functions/fnc_initGunList.sqf +++ b/addons/atragmx/functions/fnc_initGunList.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Ruthberg * Inits the gun list from user profile @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" LOG_2("Trying to load gunlist from profile [Version: %1][Count: %2]", profileNamespace getVariable [ARR_2(QGVAR(profileNamespaceVersion), 'none')], count (profileNamespace getVariable [ARR_2(QGVAR(gunList), [])])); diff --git a/addons/atragmx/functions/fnc_insert_c1_ballistic_coefficient_data.sqf b/addons/atragmx/functions/fnc_insert_c1_ballistic_coefficient_data.sqf index ba5a781813..69d23b4e43 100644 --- a/addons/atragmx/functions/fnc_insert_c1_ballistic_coefficient_data.sqf +++ b/addons/atragmx/functions/fnc_insert_c1_ballistic_coefficient_data.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Ruthberg * Inserts entry in the c1 ballistic coefficient vs. distance interpolation table @@ -15,7 +16,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_transonicRange", "_subsonicRange", "_c1"]; diff --git a/addons/atragmx/functions/fnc_insert_muzzle_velocity_data.sqf b/addons/atragmx/functions/fnc_insert_muzzle_velocity_data.sqf index 43cd936beb..0e508e37e1 100644 --- a/addons/atragmx/functions/fnc_insert_muzzle_velocity_data.sqf +++ b/addons/atragmx/functions/fnc_insert_muzzle_velocity_data.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Ruthberg * Inserts entry in the muzzle velocity vs. temperature interpolation table @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_temperature", "_muzzleVelocity"]; diff --git a/addons/atragmx/functions/fnc_lookup_c1_ballistic_coefficient.sqf b/addons/atragmx/functions/fnc_lookup_c1_ballistic_coefficient.sqf index 43b6da006f..3d0b348874 100644 --- a/addons/atragmx/functions/fnc_lookup_c1_ballistic_coefficient.sqf +++ b/addons/atragmx/functions/fnc_lookup_c1_ballistic_coefficient.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Ruthberg * Lookup the correct C1 ballistic coefficient in the c1 ballistic coefficient vs. distance interpolation table @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_targetRange"]; diff --git a/addons/atragmx/functions/fnc_on_close_dialog.sqf b/addons/atragmx/functions/fnc_on_close_dialog.sqf index 1c96828b1a..d9ebf1cb00 100644 --- a/addons/atragmx/functions/fnc_on_close_dialog.sqf +++ b/addons/atragmx/functions/fnc_on_close_dialog.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: ACE-Team * On close Dialog @@ -14,8 +15,6 @@ * Public: No */ -#include "script_component.hpp" - uiNamespace setVariable ['ATragMX_Display', nil]; GVAR(active) = false; [GVAR(DialogPFH)] call CBA_fnc_removePerFrameHandler; diff --git a/addons/atragmx/functions/fnc_parse_input.sqf b/addons/atragmx/functions/fnc_parse_input.sqf index 3ff40bbbcc..d03b8bd186 100644 --- a/addons/atragmx/functions/fnc_parse_input.sqf +++ b/addons/atragmx/functions/fnc_parse_input.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Ruthberg * Parses all input fields in the gun-, atmosphere- and target column, the result input fields and the muzzle velocity data input fields @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" // Muzzle velocity vs. temperature interpolation data { diff --git a/addons/atragmx/functions/fnc_read_gun_list_entries_from_config.sqf b/addons/atragmx/functions/fnc_read_gun_list_entries_from_config.sqf index 4d99a5637f..3ae566557b 100644 --- a/addons/atragmx/functions/fnc_read_gun_list_entries_from_config.sqf +++ b/addons/atragmx/functions/fnc_read_gun_list_entries_from_config.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Ruthberg * Reads gun list entries from the config and appends them to the gun list @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" private _validate_preset = { private _valid = true; diff --git a/addons/atragmx/functions/fnc_recalculate_c1_ballistic_coefficient.sqf b/addons/atragmx/functions/fnc_recalculate_c1_ballistic_coefficient.sqf index e8bd219159..273d73a3e3 100644 --- a/addons/atragmx/functions/fnc_recalculate_c1_ballistic_coefficient.sqf +++ b/addons/atragmx/functions/fnc_recalculate_c1_ballistic_coefficient.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Ruthberg * Recalculates the c1 ballistic coefficient based on the current target range @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_parseInput", "_updateDisplay"]; diff --git a/addons/atragmx/functions/fnc_recalculate_muzzle_velocity.sqf b/addons/atragmx/functions/fnc_recalculate_muzzle_velocity.sqf index aa1ab6d23f..c46cd9ab16 100644 --- a/addons/atragmx/functions/fnc_recalculate_muzzle_velocity.sqf +++ b/addons/atragmx/functions/fnc_recalculate_muzzle_velocity.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Ruthberg * Recalculates the muzzle velocity based on the muzzle velocity vs. temperature interpolation input @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_parseInput", "_updateDisplay"]; diff --git a/addons/atragmx/functions/fnc_reset_relative_click_memory.sqf b/addons/atragmx/functions/fnc_reset_relative_click_memory.sqf index 85d8ff6bc6..4a847123df 100644 --- a/addons/atragmx/functions/fnc_reset_relative_click_memory.sqf +++ b/addons/atragmx/functions/fnc_reset_relative_click_memory.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Ruthberg * Resets the relative click memory and updates the result input/output fields @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" GVAR(workingMemory) set [10, 0]; GVAR(workingMemory) set [11, 0]; diff --git a/addons/atragmx/functions/fnc_restore_atmo_default.sqf b/addons/atragmx/functions/fnc_restore_atmo_default.sqf index d644f81630..9b03c337b2 100644 --- a/addons/atragmx/functions/fnc_restore_atmo_default.sqf +++ b/addons/atragmx/functions/fnc_restore_atmo_default.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Ruthberg * Restores the atmospheric data defaults @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" GVAR(atmosphereModeTBH) = true; GVAR(altitude) = 0; diff --git a/addons/atragmx/functions/fnc_restore_truing_drop.sqf b/addons/atragmx/functions/fnc_restore_truing_drop.sqf index a3fb516f23..301c94f7a8 100644 --- a/addons/atragmx/functions/fnc_restore_truing_drop.sqf +++ b/addons/atragmx/functions/fnc_restore_truing_drop.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Ruthberg * Restores the truing drop defaults @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" private _updateDisplay = _this; diff --git a/addons/atragmx/functions/fnc_restore_user_data.sqf b/addons/atragmx/functions/fnc_restore_user_data.sqf index a90c537f91..beb2c50c4d 100644 --- a/addons/atragmx/functions/fnc_restore_user_data.sqf +++ b/addons/atragmx/functions/fnc_restore_user_data.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Ruthberg * Reads user data from profileNamespace @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" GVAR(currentUnit) = 0 max (profileNamespace getVariable ["ACE_ATragMX_currentUnit", 2]) min 2; [(profileNamespace getVariable ["ACE_ATragMX_currentGun", 0]), true, false] call FUNC(change_gun); diff --git a/addons/atragmx/functions/fnc_save_gun.sqf b/addons/atragmx/functions/fnc_save_gun.sqf index 45558d3de3..2560dbd42b 100644 --- a/addons/atragmx/functions/fnc_save_gun.sqf +++ b/addons/atragmx/functions/fnc_save_gun.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Ruthberg * Saves the currently select gun profile into the profileNamespace @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" private _index = 0 max (lbCurSel 6000); diff --git a/addons/atragmx/functions/fnc_shift_c1_ballistic_coefficient_data.sqf b/addons/atragmx/functions/fnc_shift_c1_ballistic_coefficient_data.sqf index 89667e25b9..95ac59b705 100644 --- a/addons/atragmx/functions/fnc_shift_c1_ballistic_coefficient_data.sqf +++ b/addons/atragmx/functions/fnc_shift_c1_ballistic_coefficient_data.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Ruthberg * Shifts all c1 ballistic coefficient entries in the c1 ballistic coefficient vs. distance interpolation table @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" if (_this == 0) exitWith {}; diff --git a/addons/atragmx/functions/fnc_shift_muzzle_velocity_data.sqf b/addons/atragmx/functions/fnc_shift_muzzle_velocity_data.sqf index 75fcc9c3a6..4d4e4d2b22 100644 --- a/addons/atragmx/functions/fnc_shift_muzzle_velocity_data.sqf +++ b/addons/atragmx/functions/fnc_shift_muzzle_velocity_data.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Ruthberg * Shifts all muzzle velocity entries in the muzzle velocity vs. temperature interpolation table @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" if (_this == 0) exitWith {}; diff --git a/addons/atragmx/functions/fnc_show_add_new_gun.sqf b/addons/atragmx/functions/fnc_show_add_new_gun.sqf index a5d4fd8b8b..a00860490b 100644 --- a/addons/atragmx/functions/fnc_show_add_new_gun.sqf +++ b/addons/atragmx/functions/fnc_show_add_new_gun.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Ruthberg * Shows/Hides add new gun controls @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" GVAR(showAddNewGun) = _this; diff --git a/addons/atragmx/functions/fnc_show_atmo_env_data.sqf b/addons/atragmx/functions/fnc_show_atmo_env_data.sqf index 75dcaad502..b07843e18a 100644 --- a/addons/atragmx/functions/fnc_show_atmo_env_data.sqf +++ b/addons/atragmx/functions/fnc_show_atmo_env_data.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Ruthberg * Shows/Hides the atmosphere and environmental data controls @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" GVAR(showAtmoEnvData) = _this; diff --git a/addons/atragmx/functions/fnc_show_c1_ballistic_coefficient_data.sqf b/addons/atragmx/functions/fnc_show_c1_ballistic_coefficient_data.sqf index 797f0498fe..34f598ac6c 100644 --- a/addons/atragmx/functions/fnc_show_c1_ballistic_coefficient_data.sqf +++ b/addons/atragmx/functions/fnc_show_c1_ballistic_coefficient_data.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Ruthberg * Shows/Hides the c1 ballistic coefficient data controls @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" GVAR(showC1BallisticCoefficientData) = _this; diff --git a/addons/atragmx/functions/fnc_show_gun_ammo_data.sqf b/addons/atragmx/functions/fnc_show_gun_ammo_data.sqf index c6fb288acc..108108a14c 100644 --- a/addons/atragmx/functions/fnc_show_gun_ammo_data.sqf +++ b/addons/atragmx/functions/fnc_show_gun_ammo_data.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Ruthberg * Shows/Hides the gun ammo data controls @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" GVAR(showGunAmmoData) = _this; diff --git a/addons/atragmx/functions/fnc_show_gun_list.sqf b/addons/atragmx/functions/fnc_show_gun_list.sqf index e6c8156d26..714e9a0d12 100644 --- a/addons/atragmx/functions/fnc_show_gun_list.sqf +++ b/addons/atragmx/functions/fnc_show_gun_list.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Ruthberg * Shows/Hides the gun list controls @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" GVAR(showGunList) = _this; diff --git a/addons/atragmx/functions/fnc_show_main_page.sqf b/addons/atragmx/functions/fnc_show_main_page.sqf index 6b2259c72a..7b12af4439 100644 --- a/addons/atragmx/functions/fnc_show_main_page.sqf +++ b/addons/atragmx/functions/fnc_show_main_page.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Ruthberg * Shows/Hides the main menu controls @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" GVAR(showMainPage) = _this; diff --git a/addons/atragmx/functions/fnc_show_muzzle_velocity_data.sqf b/addons/atragmx/functions/fnc_show_muzzle_velocity_data.sqf index 20c7bf1826..e12263d36f 100644 --- a/addons/atragmx/functions/fnc_show_muzzle_velocity_data.sqf +++ b/addons/atragmx/functions/fnc_show_muzzle_velocity_data.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Ruthberg * Shows/Hides the muzzle velocity data controls @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" GVAR(showMuzzleVelocityData) = _this; diff --git a/addons/atragmx/functions/fnc_show_range_card.sqf b/addons/atragmx/functions/fnc_show_range_card.sqf index d2dc368bb4..02f65164bb 100644 --- a/addons/atragmx/functions/fnc_show_range_card.sqf +++ b/addons/atragmx/functions/fnc_show_range_card.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Ruthberg * Shows/Hides the range card controls @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" GVAR(showRangeCard) = _this; diff --git a/addons/atragmx/functions/fnc_show_range_card_setup.sqf b/addons/atragmx/functions/fnc_show_range_card_setup.sqf index 6597e4ee7e..183e115b1b 100644 --- a/addons/atragmx/functions/fnc_show_range_card_setup.sqf +++ b/addons/atragmx/functions/fnc_show_range_card_setup.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Ruthberg * Shows/Hides the range card setup controls @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" GVAR(showRangeCardSetup) = _this; diff --git a/addons/atragmx/functions/fnc_show_solution_setup.sqf b/addons/atragmx/functions/fnc_show_solution_setup.sqf index 83476228f4..4eafd38a31 100644 --- a/addons/atragmx/functions/fnc_show_solution_setup.sqf +++ b/addons/atragmx/functions/fnc_show_solution_setup.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Ruthberg * Shows/Hides the solution setup controls @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" GVAR(showSolutionSetup) = _this; diff --git a/addons/atragmx/functions/fnc_show_target_data.sqf b/addons/atragmx/functions/fnc_show_target_data.sqf index 7a0845f862..6987047cbf 100644 --- a/addons/atragmx/functions/fnc_show_target_data.sqf +++ b/addons/atragmx/functions/fnc_show_target_data.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Ruthberg * Shows/Hides the target data controls @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" GVAR(showTargetData) = _this; diff --git a/addons/atragmx/functions/fnc_show_target_range_assist.sqf b/addons/atragmx/functions/fnc_show_target_range_assist.sqf index 0f6c7bad04..89453c9134 100644 --- a/addons/atragmx/functions/fnc_show_target_range_assist.sqf +++ b/addons/atragmx/functions/fnc_show_target_range_assist.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Ruthberg * Shows/Hides the target range assist controls @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" GVAR(showTargetRangeAssist) = _this; diff --git a/addons/atragmx/functions/fnc_show_target_speed_assist.sqf b/addons/atragmx/functions/fnc_show_target_speed_assist.sqf index ac99a4e76e..267c3676b6 100644 --- a/addons/atragmx/functions/fnc_show_target_speed_assist.sqf +++ b/addons/atragmx/functions/fnc_show_target_speed_assist.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Ruthberg * Shows/Hides the target speed assist controls @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" GVAR(showTargetSpeedAssist) = _this; diff --git a/addons/atragmx/functions/fnc_show_target_speed_assist_timer.sqf b/addons/atragmx/functions/fnc_show_target_speed_assist_timer.sqf index cb28390ff6..fca074547f 100644 --- a/addons/atragmx/functions/fnc_show_target_speed_assist_timer.sqf +++ b/addons/atragmx/functions/fnc_show_target_speed_assist_timer.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Ruthberg * Shows/Hides the target speed assist timer controls @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" GVAR(showTargetSpeedAssistTimer) = _this; diff --git a/addons/atragmx/functions/fnc_show_truing_drop.sqf b/addons/atragmx/functions/fnc_show_truing_drop.sqf index 644fe834b6..ca69346c49 100644 --- a/addons/atragmx/functions/fnc_show_truing_drop.sqf +++ b/addons/atragmx/functions/fnc_show_truing_drop.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Ruthberg * Shows/Hides the truing drop controls @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" GVAR(showTruingDrop) = _this; diff --git a/addons/atragmx/functions/fnc_sord.sqf b/addons/atragmx/functions/fnc_sord.sqf index c6f77f748b..a6c3d2b5b8 100644 --- a/addons/atragmx/functions/fnc_sord.sqf +++ b/addons/atragmx/functions/fnc_sord.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Ruthberg * Handles incoming data packets from the Vectronix Vector LRF @@ -15,7 +16,6 @@ * * Public: No */ -#include "script_component.hpp" if (!GVAR(initialised)) exitWith {}; diff --git a/addons/atragmx/functions/fnc_store_gun_list.sqf b/addons/atragmx/functions/fnc_store_gun_list.sqf index b3969837d2..d5c3d7657d 100644 --- a/addons/atragmx/functions/fnc_store_gun_list.sqf +++ b/addons/atragmx/functions/fnc_store_gun_list.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Ruthberg * Saves the persistent gun list entries into profileNamespace @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" private _gunList = []; { diff --git a/addons/atragmx/functions/fnc_store_user_data.sqf b/addons/atragmx/functions/fnc_store_user_data.sqf index 264ac07458..09b710e1d4 100644 --- a/addons/atragmx/functions/fnc_store_user_data.sqf +++ b/addons/atragmx/functions/fnc_store_user_data.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Ruthberg * Saves user data into profileNamespace @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" profileNamespace setVariable ["ACE_ATragMX_profileNamespaceVersion", ATRAGMX_PROFILE_NAMESPACE_VERSION]; diff --git a/addons/atragmx/functions/fnc_target_speed_assist_timer.sqf b/addons/atragmx/functions/fnc_target_speed_assist_timer.sqf index d9ae84e1ae..69be94dd8f 100644 --- a/addons/atragmx/functions/fnc_target_speed_assist_timer.sqf +++ b/addons/atragmx/functions/fnc_target_speed_assist_timer.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Ruthberg * Shows and starts the target speed assist timer @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" if !(ctrlVisible 9000) then { diff --git a/addons/atragmx/functions/fnc_toggle_atmo_env_data.sqf b/addons/atragmx/functions/fnc_toggle_atmo_env_data.sqf index 5e420b41f8..6f2fc11e27 100644 --- a/addons/atragmx/functions/fnc_toggle_atmo_env_data.sqf +++ b/addons/atragmx/functions/fnc_toggle_atmo_env_data.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Ruthberg * Toggles the atmospheric data screen on/off @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" if (ctrlVisible 13000) then { false call FUNC(show_atmo_env_data); diff --git a/addons/atragmx/functions/fnc_toggle_c1_ballistic_coefficient_data.sqf b/addons/atragmx/functions/fnc_toggle_c1_ballistic_coefficient_data.sqf index c83e21a872..088658b747 100644 --- a/addons/atragmx/functions/fnc_toggle_c1_ballistic_coefficient_data.sqf +++ b/addons/atragmx/functions/fnc_toggle_c1_ballistic_coefficient_data.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Ruthberg * Toggles the c1 ballistic coefficient data screen on/off @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" if (!(missionNamespace getVariable [QEGVAR(advanced_ballistics,enabled), false])) exitWith {}; diff --git a/addons/atragmx/functions/fnc_toggle_coriolis.sqf b/addons/atragmx/functions/fnc_toggle_coriolis.sqf index a711d2a55e..aad845ce35 100644 --- a/addons/atragmx/functions/fnc_toggle_coriolis.sqf +++ b/addons/atragmx/functions/fnc_toggle_coriolis.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Ruthberg * Toggles the coriolis and spin drift output on/off @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" GVAR(showCoriolis) = !GVAR(showCoriolis); true call FUNC(show_main_page); diff --git a/addons/atragmx/functions/fnc_toggle_gun_ammo_data.sqf b/addons/atragmx/functions/fnc_toggle_gun_ammo_data.sqf index 332c0f1aba..1be813fec6 100644 --- a/addons/atragmx/functions/fnc_toggle_gun_ammo_data.sqf +++ b/addons/atragmx/functions/fnc_toggle_gun_ammo_data.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Ruthberg * Toggles the gun ammo data screen on/off @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" if (ctrlVisible 12000) then { false call FUNC(show_gun_ammo_data); diff --git a/addons/atragmx/functions/fnc_toggle_gun_list.sqf b/addons/atragmx/functions/fnc_toggle_gun_list.sqf index 6ff6e3b6f4..291faf98a4 100644 --- a/addons/atragmx/functions/fnc_toggle_gun_list.sqf +++ b/addons/atragmx/functions/fnc_toggle_gun_list.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Ruthberg * Toggles the gun list screen on/off @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" if (ctrlVisible 6000) then { false call FUNC(show_gun_list); diff --git a/addons/atragmx/functions/fnc_toggle_muzzle_velocity_data.sqf b/addons/atragmx/functions/fnc_toggle_muzzle_velocity_data.sqf index d00992d856..64aadc62cb 100644 --- a/addons/atragmx/functions/fnc_toggle_muzzle_velocity_data.sqf +++ b/addons/atragmx/functions/fnc_toggle_muzzle_velocity_data.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Ruthberg * Toggles the muzzle velocity data screen on/off @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" if (!(missionNamespace getVariable [QEGVAR(advanced_ballistics,enabled), false])) exitWith {}; diff --git a/addons/atragmx/functions/fnc_toggle_option_menu.sqf b/addons/atragmx/functions/fnc_toggle_option_menu.sqf index f7d7f06a13..c39846f466 100644 --- a/addons/atragmx/functions/fnc_toggle_option_menu.sqf +++ b/addons/atragmx/functions/fnc_toggle_option_menu.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Ruthberg * Toggles the option menu on/off @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" if (ctrlVisible 3001) then { if (_this) then { diff --git a/addons/atragmx/functions/fnc_toggle_range_card.sqf b/addons/atragmx/functions/fnc_toggle_range_card.sqf index 4e7ea4d511..f34b60c146 100644 --- a/addons/atragmx/functions/fnc_toggle_range_card.sqf +++ b/addons/atragmx/functions/fnc_toggle_range_card.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Ruthberg * Toggles the range card screen on/off @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" if (ctrlVisible 5006) then { false call FUNC(show_range_card); diff --git a/addons/atragmx/functions/fnc_toggle_range_card_setup.sqf b/addons/atragmx/functions/fnc_toggle_range_card_setup.sqf index e5d68c3933..fb98cfcb0e 100644 --- a/addons/atragmx/functions/fnc_toggle_range_card_setup.sqf +++ b/addons/atragmx/functions/fnc_toggle_range_card_setup.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Ruthberg * Toggles the range card setup screen on/off @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" if (ctrlVisible 10000) then { false call FUNC(show_range_card_setup); diff --git a/addons/atragmx/functions/fnc_toggle_solution_setup.sqf b/addons/atragmx/functions/fnc_toggle_solution_setup.sqf index f548df689f..11c3c0f4bc 100644 --- a/addons/atragmx/functions/fnc_toggle_solution_setup.sqf +++ b/addons/atragmx/functions/fnc_toggle_solution_setup.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Ruthberg * Toggles the solution setup screen on/off @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" if (ctrlVisible 15000) then { false call FUNC(show_solution_setup); diff --git a/addons/atragmx/functions/fnc_toggle_target_data.sqf b/addons/atragmx/functions/fnc_toggle_target_data.sqf index 863af6511f..ecfcab2c41 100644 --- a/addons/atragmx/functions/fnc_toggle_target_data.sqf +++ b/addons/atragmx/functions/fnc_toggle_target_data.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Ruthberg * Toggles the target data screen on/off @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" if (ctrlVisible 14000) then { false call FUNC(show_target_data); diff --git a/addons/atragmx/functions/fnc_toggle_target_range_assist.sqf b/addons/atragmx/functions/fnc_toggle_target_range_assist.sqf index ad593830f9..ac1934ee3e 100644 --- a/addons/atragmx/functions/fnc_toggle_target_range_assist.sqf +++ b/addons/atragmx/functions/fnc_toggle_target_range_assist.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Ruthberg * Toggles the target range assist screen on/off @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" if (ctrlVisible 7000) then { false call FUNC(show_target_range_assist); diff --git a/addons/atragmx/functions/fnc_toggle_target_speed_assist.sqf b/addons/atragmx/functions/fnc_toggle_target_speed_assist.sqf index 7dadd8be03..47d14a32d9 100644 --- a/addons/atragmx/functions/fnc_toggle_target_speed_assist.sqf +++ b/addons/atragmx/functions/fnc_toggle_target_speed_assist.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Ruthberg * Toggles the target speed assist screen on/off @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" if (ctrlVisible 8000) then { false call FUNC(show_target_speed_assist); diff --git a/addons/atragmx/functions/fnc_toggle_truing_drop.sqf b/addons/atragmx/functions/fnc_toggle_truing_drop.sqf index 9865005c78..dbacceb52f 100644 --- a/addons/atragmx/functions/fnc_toggle_truing_drop.sqf +++ b/addons/atragmx/functions/fnc_toggle_truing_drop.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Ruthberg * Toggles the truing drop screen on/off @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" if (!(missionNamespace getVariable [QEGVAR(advanced_ballistics,enabled), false])) exitWith {}; diff --git a/addons/atragmx/functions/fnc_trim_gun_name.sqf b/addons/atragmx/functions/fnc_trim_gun_name.sqf index 36344d6dfa..46f20bede6 100644 --- a/addons/atragmx/functions/fnc_trim_gun_name.sqf +++ b/addons/atragmx/functions/fnc_trim_gun_name.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Ruthberg * Trims the gun name input field @@ -13,6 +14,5 @@ * * Public: No */ -#include "script_component.hpp" ctrlSetText [11001, (ctrlText 11001) select [0, 14]]; diff --git a/addons/atragmx/functions/fnc_true_c1_ballistic_coefficient.sqf b/addons/atragmx/functions/fnc_true_c1_ballistic_coefficient.sqf index dfa41ea0b4..8a6046d1d8 100644 --- a/addons/atragmx/functions/fnc_true_c1_ballistic_coefficient.sqf +++ b/addons/atragmx/functions/fnc_true_c1_ballistic_coefficient.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Ruthberg * Trues the c1 ballistic coefficient @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" private _referenceDrop = GVAR(truingDropDropData) select 0; private _actualDrop = GVAR(truingDropDropData) select 2; diff --git a/addons/atragmx/functions/fnc_true_muzzle_velocity.sqf b/addons/atragmx/functions/fnc_true_muzzle_velocity.sqf index db907aa29d..cee3af2536 100644 --- a/addons/atragmx/functions/fnc_true_muzzle_velocity.sqf +++ b/addons/atragmx/functions/fnc_true_muzzle_velocity.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Ruthberg * Trues the muzzle velocity @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" private _referenceDrop = GVAR(truingDropDropData) select 0; private _actualDrop = GVAR(truingDropDropData) select 1; diff --git a/addons/atragmx/functions/fnc_update_atmo_env_data.sqf b/addons/atragmx/functions/fnc_update_atmo_env_data.sqf index e8e805c0ab..27a1e1510b 100644 --- a/addons/atragmx/functions/fnc_update_atmo_env_data.sqf +++ b/addons/atragmx/functions/fnc_update_atmo_env_data.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Ruthberg * Updates the atmospheric data fields @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" ctrlSetFocus ((uiNamespace getVariable "ATragMX_Display") displayCtrl 13007); diff --git a/addons/atragmx/functions/fnc_update_atmo_selection.sqf b/addons/atragmx/functions/fnc_update_atmo_selection.sqf index cd808326f8..caa7c206cc 100644 --- a/addons/atragmx/functions/fnc_update_atmo_selection.sqf +++ b/addons/atragmx/functions/fnc_update_atmo_selection.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Ruthberg * Updates the atmospheric data input method @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" ((uiNamespace getVariable "ATragMX_Display") displayCtrl 13001) ctrlEnable true; ((uiNamespace getVariable "ATragMX_Display") displayCtrl 13002) ctrlEnable true; diff --git a/addons/atragmx/functions/fnc_update_atmosphere.sqf b/addons/atragmx/functions/fnc_update_atmosphere.sqf index d54daed532..438dfe04f2 100644 --- a/addons/atragmx/functions/fnc_update_atmosphere.sqf +++ b/addons/atragmx/functions/fnc_update_atmosphere.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Ruthberg * Updates all atmosphere column input fields @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" if (GVAR(currentUnit) == 2) then { ctrlSetText [200, Str(Round(GVAR(temperature) * 10) / 10)]; diff --git a/addons/atragmx/functions/fnc_update_c1_ballistic_coefficient_data.sqf b/addons/atragmx/functions/fnc_update_c1_ballistic_coefficient_data.sqf index 5095ee0d96..a7a20d31df 100644 --- a/addons/atragmx/functions/fnc_update_c1_ballistic_coefficient_data.sqf +++ b/addons/atragmx/functions/fnc_update_c1_ballistic_coefficient_data.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Ruthberg * Updates the c1 ballistic coefficient data fields @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" // Distances if (GVAR(currentUnit) != 1) then { diff --git a/addons/atragmx/functions/fnc_update_gun.sqf b/addons/atragmx/functions/fnc_update_gun.sqf index 5e081b47ee..2df4bbe1ee 100644 --- a/addons/atragmx/functions/fnc_update_gun.sqf +++ b/addons/atragmx/functions/fnc_update_gun.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Ruthberg * Updates all gun column input fields @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" ctrlSetText [1000, GVAR(workingMemory) select 0]; if (GVAR(currentUnit) != 2) then { diff --git a/addons/atragmx/functions/fnc_update_gun_ammo_data.sqf b/addons/atragmx/functions/fnc_update_gun_ammo_data.sqf index 4beaf53e0d..3a2c1a8106 100644 --- a/addons/atragmx/functions/fnc_update_gun_ammo_data.sqf +++ b/addons/atragmx/functions/fnc_update_gun_ammo_data.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Ruthberg * Updates the gun ammo data fields @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" ctrlSetFocus ((uiNamespace getVariable "ATragMX_Display") displayCtrl 12008); diff --git a/addons/atragmx/functions/fnc_update_inclination_angle.sqf b/addons/atragmx/functions/fnc_update_inclination_angle.sqf index 82813282f7..f0150c1cfe 100644 --- a/addons/atragmx/functions/fnc_update_inclination_angle.sqf +++ b/addons/atragmx/functions/fnc_update_inclination_angle.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Ruthberg * Updates the inclination angle input fields @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" private _inclinationAngleCosine = 0.5 max parseNumber(ctrlText 140041) min 1; private _inclinationAngleDegree = -60 max parseNumber(ctrlText 140040) min 60; diff --git a/addons/atragmx/functions/fnc_update_muzzle_velocity_data.sqf b/addons/atragmx/functions/fnc_update_muzzle_velocity_data.sqf index 466d83cc4c..55453ce6e9 100644 --- a/addons/atragmx/functions/fnc_update_muzzle_velocity_data.sqf +++ b/addons/atragmx/functions/fnc_update_muzzle_velocity_data.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Ruthberg * Updates the muzzle velocity data fields @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" if (GVAR(currentUnit) == 2) then { // Temperatures diff --git a/addons/atragmx/functions/fnc_update_range_card.sqf b/addons/atragmx/functions/fnc_update_range_card.sqf index 2f4aa3c7a2..3af37cf3f6 100644 --- a/addons/atragmx/functions/fnc_update_range_card.sqf +++ b/addons/atragmx/functions/fnc_update_range_card.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Ruthberg * Updates the range card listbox content @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" private _lastColumnOutput = ""; diff --git a/addons/atragmx/functions/fnc_update_relative_click_memory.sqf b/addons/atragmx/functions/fnc_update_relative_click_memory.sqf index fe09d46cf7..ae847d6c13 100644 --- a/addons/atragmx/functions/fnc_update_relative_click_memory.sqf +++ b/addons/atragmx/functions/fnc_update_relative_click_memory.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Ruthberg * Updates the relative click memory @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" GVAR(workingMemory) set [10, (GVAR(elevationOutput) select GVAR(currentTarget))]; GVAR(workingMemory) set [11, (GVAR(windage1Output) select GVAR(currentTarget))]; diff --git a/addons/atragmx/functions/fnc_update_result.sqf b/addons/atragmx/functions/fnc_update_result.sqf index 1dc2c6204e..21c192549c 100644 --- a/addons/atragmx/functions/fnc_update_result.sqf +++ b/addons/atragmx/functions/fnc_update_result.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Ruthberg * Updates the result input and output fields @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" private _elevationAbs = GVAR(elevationOutput) select GVAR(currentTarget); private _elevationRel = 0; diff --git a/addons/atragmx/functions/fnc_update_scope_unit.sqf b/addons/atragmx/functions/fnc_update_scope_unit.sqf index b66d0885bb..05f7f85b93 100644 --- a/addons/atragmx/functions/fnc_update_scope_unit.sqf +++ b/addons/atragmx/functions/fnc_update_scope_unit.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Ruthberg * Updates the scope unit fields @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" ctrlSetText [2000, GVAR(scopeUnits) select GVAR(currentScopeUnit)]; ctrlSetText [2001, Str(GVAR(currentScopeClickNumber))]; diff --git a/addons/atragmx/functions/fnc_update_solution_setup.sqf b/addons/atragmx/functions/fnc_update_solution_setup.sqf index 8850c937a5..37ea36c069 100644 --- a/addons/atragmx/functions/fnc_update_solution_setup.sqf +++ b/addons/atragmx/functions/fnc_update_solution_setup.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Ruthberg * Updates all solution setup input fields @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" {((uiNamespace getVariable "ATragMX_Display") displayCtrl _x) ctrlEnable true} forEach [15001, 15002, 15003, 15004, 15005, 15006, 15008, 15009, 15010]; diff --git a/addons/atragmx/functions/fnc_update_target.sqf b/addons/atragmx/functions/fnc_update_target.sqf index c457a5cc21..72e6e1f208 100644 --- a/addons/atragmx/functions/fnc_update_target.sqf +++ b/addons/atragmx/functions/fnc_update_target.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Ruthberg * Updates all target column input fields @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" if (GVAR(showWind2)) then { if (GVAR(currentUnit) != 2) then { diff --git a/addons/atragmx/functions/fnc_update_target_data.sqf b/addons/atragmx/functions/fnc_update_target_data.sqf index 3cb6c24c9c..ce4b5cb924 100644 --- a/addons/atragmx/functions/fnc_update_target_data.sqf +++ b/addons/atragmx/functions/fnc_update_target_data.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Ruthberg * Updates all target column input fields @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" ctrlSetText [140000, Str(Round((GVAR(latitude) select GVAR(currentTarget)) * 100) / 100)]; ctrlSetText [140010, Str(Round((GVAR(directionOfFire) select GVAR(currentTarget)) * 100) / 100)]; diff --git a/addons/atragmx/functions/fnc_update_target_selection.sqf b/addons/atragmx/functions/fnc_update_target_selection.sqf index 7ae6256f33..55f39c80fe 100644 --- a/addons/atragmx/functions/fnc_update_target_selection.sqf +++ b/addons/atragmx/functions/fnc_update_target_selection.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Ruthberg * Updates all input fields based on the currently selected target @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" {((uiNamespace getVariable "ATragMX_Display") displayCtrl _x) ctrlEnable true} forEach [500, 501, 502, 503]; diff --git a/addons/atragmx/functions/fnc_update_truing_drop_data.sqf b/addons/atragmx/functions/fnc_update_truing_drop_data.sqf index cd1fa9de68..d331523432 100644 --- a/addons/atragmx/functions/fnc_update_truing_drop_data.sqf +++ b/addons/atragmx/functions/fnc_update_truing_drop_data.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Ruthberg * Updates the truing drop data fields @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" if (GVAR(currentUnit) == 2) then { ctrlSetText [18011, Str(Round(GVAR(truingDropRangeData) select 0))]; diff --git a/addons/atragmx/functions/fnc_update_truing_drop_selection.sqf b/addons/atragmx/functions/fnc_update_truing_drop_selection.sqf index e00876e4a1..f2fffd8fe3 100644 --- a/addons/atragmx/functions/fnc_update_truing_drop_selection.sqf +++ b/addons/atragmx/functions/fnc_update_truing_drop_selection.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Ruthberg * Updates the truing drop input method @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" #define __dsp (uiNamespace getVariable "ATragMX_Display") diff --git a/addons/atragmx/functions/fnc_update_unit_selection.sqf b/addons/atragmx/functions/fnc_update_unit_selection.sqf index 2fc5400e27..ab3edb9256 100644 --- a/addons/atragmx/functions/fnc_update_unit_selection.sqf +++ b/addons/atragmx/functions/fnc_update_unit_selection.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Ruthberg * Updates all input fields based on the currently selected unit @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" ((uiNamespace getVariable "ATragMX_Display") displayCtrl 600) ctrlEnable true; ((uiNamespace getVariable "ATragMX_Display") displayCtrl 601) ctrlEnable true; diff --git a/addons/atragmx/functions/fnc_update_zero_range.sqf b/addons/atragmx/functions/fnc_update_zero_range.sqf index 8a41e1c38e..4de6370591 100644 --- a/addons/atragmx/functions/fnc_update_zero_range.sqf +++ b/addons/atragmx/functions/fnc_update_zero_range.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Ruthberg * Updates the scope base angle based on the zero range input @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" [] call FUNC(parse_input); diff --git a/addons/attach/functions/fnc_attach.sqf b/addons/attach/functions/fnc_attach.sqf index 743b344c63..21652f296d 100644 --- a/addons/attach/functions/fnc_attach.sqf +++ b/addons/attach/functions/fnc_attach.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: eRazeri, esteldunedain, PabstMirror * Attach an item to the unit @@ -15,7 +16,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_attachToVehicle","_unit","_args", ["_silentScripted", false]]; _args params [["_itemClassname","", [""]]]; diff --git a/addons/attach/functions/fnc_canAttach.sqf b/addons/attach/functions/fnc_canAttach.sqf index d862088fcd..00e7b34e8a 100644 --- a/addons/attach/functions/fnc_canAttach.sqf +++ b/addons/attach/functions/fnc_canAttach.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Check if a unit can attach a specific item. @@ -15,7 +16,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_attachToVehicle","_player","_args"]; _args params [["_itemClassname","", [""]]]; diff --git a/addons/attach/functions/fnc_canDetach.sqf b/addons/attach/functions/fnc_canDetach.sqf index bd9d7453cb..8ff4ef3249 100644 --- a/addons/attach/functions/fnc_canDetach.sqf +++ b/addons/attach/functions/fnc_canDetach.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Check if a unit has an item attached and if it can remove that item. @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_attachToVehicle", "_unit"]; TRACE_2("params",_attachToVehicle,_unit); diff --git a/addons/attach/functions/fnc_detach.sqf b/addons/attach/functions/fnc_detach.sqf index 91763c0c4d..5ff12967ce 100644 --- a/addons/attach/functions/fnc_detach.sqf +++ b/addons/attach/functions/fnc_detach.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: eRazeri and esteldunedain * Detach an item from a unit @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_attachToVehicle","_unit"], TRACE_2("params",_attachToVehicle,_unit); diff --git a/addons/attach/functions/fnc_getChildrenActions.sqf b/addons/attach/functions/fnc_getChildrenActions.sqf index c156006931..22b4c28892 100644 --- a/addons/attach/functions/fnc_getChildrenActions.sqf +++ b/addons/attach/functions/fnc_getChildrenActions.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Garth de Wet (LH), PabstMirror, mharis001 * Returns children actions for attachable items. @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_target", "_player"]; TRACE_2("params",_target,_player); diff --git a/addons/attach/functions/fnc_handleGetIn.sqf b/addons/attach/functions/fnc_handleGetIn.sqf index 0d39a00718..b2203958a0 100644 --- a/addons/attach/functions/fnc_handleGetIn.sqf +++ b/addons/attach/functions/fnc_handleGetIn.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: PabstMirror * Handles when a unit gets in to a vehicle. @@ -15,7 +16,6 @@ * * Public: No */ -#include "script_component.hpp" params ["", "", "_unit"]; TRACE_1("params",_unit); diff --git a/addons/attach/functions/fnc_handleGetOut.sqf b/addons/attach/functions/fnc_handleGetOut.sqf index 8eaebd6b21..4e1dac1e89 100644 --- a/addons/attach/functions/fnc_handleGetOut.sqf +++ b/addons/attach/functions/fnc_handleGetOut.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: PabstMirror * Handles when a unit gets in to a vehicle. @@ -15,7 +16,6 @@ * * Public: No */ -#include "script_component.hpp" params ["", "", "_unit"]; TRACE_1("params",_unit); diff --git a/addons/attach/functions/fnc_handleKilled.sqf b/addons/attach/functions/fnc_handleKilled.sqf index 81c2d659d4..0aaf0b03cb 100644 --- a/addons/attach/functions/fnc_handleKilled.sqf +++ b/addons/attach/functions/fnc_handleKilled.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: PabstMirror * Handles when vehicle or man is killed. @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_deadUnit"]; TRACE_1("params",_deadUnit); diff --git a/addons/attach/functions/fnc_placeApprove.sqf b/addons/attach/functions/fnc_placeApprove.sqf index 9679e55ad2..d0101695b4 100644 --- a/addons/attach/functions/fnc_placeApprove.sqf +++ b/addons/attach/functions/fnc_placeApprove.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Pabst Mirror (based on Explosive attach by Garth de Wet (LH)) * Approves placement of the lightObject, scans for an appropriate location and attaches @@ -23,7 +24,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_unit", "_attachToVehicle", "_itemClassname", "_itemVehClass", "_onAttachText", "_startingPosition"]; TRACE_6("params",_unit,_attachToVehicle,_itemClassname,_itemVehClass,_onAttachText,_startingPosition); diff --git a/addons/backpacks/functions/fnc_backpackOpened.sqf b/addons/backpacks/functions/fnc_backpackOpened.sqf index 0b94b391f0..92897d72f5 100644 --- a/addons/backpacks/functions/fnc_backpackOpened.sqf +++ b/addons/backpacks/functions/fnc_backpackOpened.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Someone opened your backpack. Play sound and camshake. Execute locally. @@ -15,7 +16,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_target", "_backpack"]; diff --git a/addons/backpacks/functions/fnc_isBackpack.sqf b/addons/backpacks/functions/fnc_isBackpack.sqf index 80550290f2..a101a514e9 100644 --- a/addons/backpacks/functions/fnc_isBackpack.sqf +++ b/addons/backpacks/functions/fnc_isBackpack.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Check if the given backpack is an actual backpack that can store items. Parachute, static weapon packs, etc. will return false. @@ -13,7 +14,6 @@ * * Public: Yes */ -#include "script_component.hpp" params [["_backpack", objNull, [objNull, ""]]]; diff --git a/addons/backpacks/functions/fnc_onOpenInventory.sqf b/addons/backpacks/functions/fnc_onOpenInventory.sqf index b229bbb111..bfb380efe2 100644 --- a/addons/backpacks/functions/fnc_onOpenInventory.sqf +++ b/addons/backpacks/functions/fnc_onOpenInventory.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Handle the open inventory event. Camshake and sound on target client. @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_unit", "_backpack"]; diff --git a/addons/ballistics/functions/fnc_statTextStatement_weaponMuzzleVelocity.sqf b/addons/ballistics/functions/fnc_statTextStatement_weaponMuzzleVelocity.sqf index 4751b76902..4d0f04b209 100644 --- a/addons/ballistics/functions/fnc_statTextStatement_weaponMuzzleVelocity.sqf +++ b/addons/ballistics/functions/fnc_statTextStatement_weaponMuzzleVelocity.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Alganthe * Text statement for the weapon muzzle velocity stat @@ -11,7 +12,6 @@ * * Public: No */ -#include "script_component.hpp" params ["", "_config"]; diff --git a/addons/captives/functions/fnc_addLoadCaptiveActions.sqf b/addons/captives/functions/fnc_addLoadCaptiveActions.sqf index 0c7adbda7a..81710f161d 100644 --- a/addons/captives/functions/fnc_addLoadCaptiveActions.sqf +++ b/addons/captives/functions/fnc_addLoadCaptiveActions.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: 654wak654 * Adds child actions to the "load captive" action for near vehicles. @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_target"]; diff --git a/addons/captives/functions/fnc_canApplyHandcuffs.sqf b/addons/captives/functions/fnc_canApplyHandcuffs.sqf index c1e3128feb..72ac745517 100644 --- a/addons/captives/functions/fnc_canApplyHandcuffs.sqf +++ b/addons/captives/functions/fnc_canApplyHandcuffs.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: PabstMirror * Checks the conditions for being able to apply handcuffs @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_unit", "_target"]; //Check sides, Player has cableTie, target is alive and not already handcuffed diff --git a/addons/captives/functions/fnc_canEscortCaptive.sqf b/addons/captives/functions/fnc_canEscortCaptive.sqf index a7c799905e..cb5fdd4972 100644 --- a/addons/captives/functions/fnc_canEscortCaptive.sqf +++ b/addons/captives/functions/fnc_canEscortCaptive.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: PabstMirror * Tests if can escort target (attach) @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_unit", "_target"]; //Alive, handcuffed, not being escored, and not unconscious diff --git a/addons/captives/functions/fnc_canFriskPerson.sqf b/addons/captives/functions/fnc_canFriskPerson.sqf index d164f13ac3..c086afa0c7 100644 --- a/addons/captives/functions/fnc_canFriskPerson.sqf +++ b/addons/captives/functions/fnc_canFriskPerson.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: bux578 * Checks the conditions for being able to frisk a unit @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_unit", "_target"]; diff --git a/addons/captives/functions/fnc_canLoadCaptive.sqf b/addons/captives/functions/fnc_canLoadCaptive.sqf index 782661ea1c..2129b36f5a 100644 --- a/addons/captives/functions/fnc_canLoadCaptive.sqf +++ b/addons/captives/functions/fnc_canLoadCaptive.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Check if the unit can load the target object into a vehicle. @@ -15,7 +16,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_unit", "_target", "_vehicle"]; diff --git a/addons/captives/functions/fnc_canRemoveHandcuffs.sqf b/addons/captives/functions/fnc_canRemoveHandcuffs.sqf index e36ba5cd5b..37dc156bf0 100644 --- a/addons/captives/functions/fnc_canRemoveHandcuffs.sqf +++ b/addons/captives/functions/fnc_canRemoveHandcuffs.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: PabstMirror * Checks the conditions for being able to remove handcuffs @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_unit", "_target"]; diff --git a/addons/captives/functions/fnc_canStopEscorting.sqf b/addons/captives/functions/fnc_canStopEscorting.sqf index 181b16be94..01010c8f97 100644 --- a/addons/captives/functions/fnc_canStopEscorting.sqf +++ b/addons/captives/functions/fnc_canStopEscorting.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: PabstMirror * Tests if player can stop escorting. @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_unit", ["_target", objNull]]; diff --git a/addons/captives/functions/fnc_canSurrender.sqf b/addons/captives/functions/fnc_canSurrender.sqf index 2b58b54d2d..bec8edca04 100644 --- a/addons/captives/functions/fnc_canSurrender.sqf +++ b/addons/captives/functions/fnc_canSurrender.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: PabstMirror * Checks the conditions for being able switch surrender states @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_unit", "_newSurrenderState"]; diff --git a/addons/captives/functions/fnc_canUnloadCaptive.sqf b/addons/captives/functions/fnc_canUnloadCaptive.sqf index 0d8ec81b07..3c5b302529 100644 --- a/addons/captives/functions/fnc_canUnloadCaptive.sqf +++ b/addons/captives/functions/fnc_canUnloadCaptive.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Check if the unit can unload a captive from the vehicle. @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_player", "_unit"]; diff --git a/addons/captives/functions/fnc_doApplyHandcuffs.sqf b/addons/captives/functions/fnc_doApplyHandcuffs.sqf index d80ffc40a1..1731151ead 100644 --- a/addons/captives/functions/fnc_doApplyHandcuffs.sqf +++ b/addons/captives/functions/fnc_doApplyHandcuffs.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: PabstMirror * Checks the conditions for being able to apply handcuffs @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_unit", "_target"]; diff --git a/addons/captives/functions/fnc_doEscortCaptive.sqf b/addons/captives/functions/fnc_doEscortCaptive.sqf index b17a48f7b8..86d597aabe 100644 --- a/addons/captives/functions/fnc_doEscortCaptive.sqf +++ b/addons/captives/functions/fnc_doEscortCaptive.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Nic547 * Attaches a Captive to the _unit @@ -15,7 +16,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_unit", "_target","_state"]; diff --git a/addons/captives/functions/fnc_doFriskPerson.sqf b/addons/captives/functions/fnc_doFriskPerson.sqf index 700fba4ffb..58e7131e72 100644 --- a/addons/captives/functions/fnc_doFriskPerson.sqf +++ b/addons/captives/functions/fnc_doFriskPerson.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: bux578 * Open the select menu with the "personal" items of a frisked unit. It only shows "handgunWeapon", "uniformItems", "vestItems", "backpackItems" and "assignedItems" because every other item is visible on the character @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_player", "_unit"]; diff --git a/addons/captives/functions/fnc_doLoadCaptive.sqf b/addons/captives/functions/fnc_doLoadCaptive.sqf index c47cc389d4..e4e3b5f45b 100644 --- a/addons/captives/functions/fnc_doLoadCaptive.sqf +++ b/addons/captives/functions/fnc_doLoadCaptive.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Unit loads the target object into a vehicle. (logic same as canLoadCaptive) @@ -15,7 +16,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_unit", "_target", "_vehicle"]; diff --git a/addons/captives/functions/fnc_doRemoveHandcuffs.sqf b/addons/captives/functions/fnc_doRemoveHandcuffs.sqf index 7f445440ba..a5623535d2 100644 --- a/addons/captives/functions/fnc_doRemoveHandcuffs.sqf +++ b/addons/captives/functions/fnc_doRemoveHandcuffs.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: PabstMirror * Remove handcuffs from a target @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_unit", "_target"]; diff --git a/addons/captives/functions/fnc_doUnloadCaptive.sqf b/addons/captives/functions/fnc_doUnloadCaptive.sqf index 93bdab114c..8f78b7b323 100644 --- a/addons/captives/functions/fnc_doUnloadCaptive.sqf +++ b/addons/captives/functions/fnc_doUnloadCaptive.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Unit unloads a captive from a vehicle. @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_unit", "_target"]; diff --git a/addons/captives/functions/fnc_findEmptyNonFFVCargoSeat.sqf b/addons/captives/functions/fnc_findEmptyNonFFVCargoSeat.sqf index 91bb800c05..7c9daf1080 100644 --- a/addons/captives/functions/fnc_findEmptyNonFFVCargoSeat.sqf +++ b/addons/captives/functions/fnc_findEmptyNonFFVCargoSeat.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: PabstMirror * Finds a free cargo seat, searching non FFV first @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_vehicle"]; TRACE_1("params", _vehicle); diff --git a/addons/captives/functions/fnc_handleAnimChangedHandcuffed.sqf b/addons/captives/functions/fnc_handleAnimChangedHandcuffed.sqf index f71a3f04a3..bdd61f6686 100644 --- a/addons/captives/functions/fnc_handleAnimChangedHandcuffed.sqf +++ b/addons/captives/functions/fnc_handleAnimChangedHandcuffed.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Nic547, commy2 * Restart the handcuffing animation if it got interrupted. Called from a AnimChanged EH. @@ -15,9 +16,6 @@ * Public: No */ - -#include "script_component.hpp" - params ["_unit", "_newAnimation"]; TRACE_2("AnimChanged",_unit,_newAnimation); if (_unit == (vehicle _unit)) then { diff --git a/addons/captives/functions/fnc_handleAnimChangedSurrendered.sqf b/addons/captives/functions/fnc_handleAnimChangedSurrendered.sqf index 304926600f..08d6369ed6 100644 --- a/addons/captives/functions/fnc_handleAnimChangedSurrendered.sqf +++ b/addons/captives/functions/fnc_handleAnimChangedSurrendered.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Nic547, commy2 * Restart the surrendering animation if it got interrupted. Called from a AnimChanged EH. @@ -15,9 +16,6 @@ * Public: No */ - -#include "script_component.hpp" - params ["_unit", "_newAnimation"]; TRACE_2("AnimChanged",_unit,_newAnimation); diff --git a/addons/captives/functions/fnc_handleGetIn.sqf b/addons/captives/functions/fnc_handleGetIn.sqf index 60f1ecf9b9..96a32031af 100644 --- a/addons/captives/functions/fnc_handleGetIn.sqf +++ b/addons/captives/functions/fnc_handleGetIn.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Handles when a unit gets in to a vehicle. Release escorted captive when entering a vehicle @@ -15,7 +16,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_vehicle", "","_unit"]; TRACE_2("params",_vehicle,_unit); diff --git a/addons/captives/functions/fnc_handleGetOut.sqf b/addons/captives/functions/fnc_handleGetOut.sqf index 7ec510dbf1..7f5de6f330 100644 --- a/addons/captives/functions/fnc_handleGetOut.sqf +++ b/addons/captives/functions/fnc_handleGetOut.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Handles when a captive unit gets out of a vehicle. @@ -15,7 +16,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_vehicle", "", "_unit"]; TRACE_2("params",_vehicle,_unit); diff --git a/addons/captives/functions/fnc_handleKilled.sqf b/addons/captives/functions/fnc_handleKilled.sqf index 27963e460d..39158ae662 100644 --- a/addons/captives/functions/fnc_handleKilled.sqf +++ b/addons/captives/functions/fnc_handleKilled.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Jonpas * Called when a unit dies. @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_unit"]; TRACE_1("handleKilled",_unit); diff --git a/addons/captives/functions/fnc_handleLocal.sqf b/addons/captives/functions/fnc_handleLocal.sqf index 49ee5f0010..be92b1c7dc 100644 --- a/addons/captives/functions/fnc_handleLocal.sqf +++ b/addons/captives/functions/fnc_handleLocal.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: esteldunedain * Called when a unit switched locality @@ -15,9 +16,6 @@ * Public: No */ - -#include "script_component.hpp" - params ["_unit", "_local"]; // Make sure that if the unit is captive or surrendered it has a AnimChanged EH running ONLY on the machine that owns it diff --git a/addons/captives/functions/fnc_handleOnUnconscious.sqf b/addons/captives/functions/fnc_handleOnUnconscious.sqf index d89d18c506..745b651a0d 100644 --- a/addons/captives/functions/fnc_handleOnUnconscious.sqf +++ b/addons/captives/functions/fnc_handleOnUnconscious.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2, PabstMirror * Handles the "ace_unconscious" event @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_unit","_isUnconc"]; diff --git a/addons/captives/functions/fnc_handlePlayerChanged.sqf b/addons/captives/functions/fnc_handlePlayerChanged.sqf index b15312be64..c6adce4f84 100644 --- a/addons/captives/functions/fnc_handlePlayerChanged.sqf +++ b/addons/captives/functions/fnc_handlePlayerChanged.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Handles playerChanged. Resets "showHUD" based on handcuff status @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_newUnit","_oldUnit"]; diff --git a/addons/captives/functions/fnc_handleRespawn.sqf b/addons/captives/functions/fnc_handleRespawn.sqf index 2d6618c6d1..3643eb4393 100644 --- a/addons/captives/functions/fnc_handleRespawn.sqf +++ b/addons/captives/functions/fnc_handleRespawn.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 PabstMirror * Fix, because captiveNum doesn't reset properly on respawn @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_unit","_dead"]; TRACE_2("handleRespawn",_unit,_dead); diff --git a/addons/captives/functions/fnc_handleUnitInitPost.sqf b/addons/captives/functions/fnc_handleUnitInitPost.sqf index 52957acd68..2f189e2ffb 100644 --- a/addons/captives/functions/fnc_handleUnitInitPost.sqf +++ b/addons/captives/functions/fnc_handleUnitInitPost.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * handle captive and unconsciousness state and prevent grenades @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_unit"]; diff --git a/addons/captives/functions/fnc_handleZeusDisplayChanged.sqf b/addons/captives/functions/fnc_handleZeusDisplayChanged.sqf index 2b7c55241d..df78c9773f 100644 --- a/addons/captives/functions/fnc_handleZeusDisplayChanged.sqf +++ b/addons/captives/functions/fnc_handleZeusDisplayChanged.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: PabstMirror * Handles ZeusDisplayChanged event @@ -15,7 +16,6 @@ * * Public: No */ -#include "script_component.hpp" if ((ACE_player getVariable [QGVAR(isHandcuffed), false]) || {ACE_player getVariable [QGVAR(isSurrendering), false]}) then { TRACE_1("Player Change (showHUD false)",ACE_player); diff --git a/addons/captives/functions/fnc_moduleHandcuffed.sqf b/addons/captives/functions/fnc_moduleHandcuffed.sqf index 5b04696678..1cd50dd4ce 100644 --- a/addons/captives/functions/fnc_moduleHandcuffed.sqf +++ b/addons/captives/functions/fnc_moduleHandcuffed.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: PabstMirror * Module Function to make a unit handcuffed (can be called from editor) @@ -16,7 +17,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_logic", "_units", "_activated"]; diff --git a/addons/captives/functions/fnc_moduleSettings.sqf b/addons/captives/functions/fnc_moduleSettings.sqf index 04ffc04f45..d31a57a43d 100644 --- a/addons/captives/functions/fnc_moduleSettings.sqf +++ b/addons/captives/functions/fnc_moduleSettings.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: PabstMirror * Module for captivity settings @@ -14,8 +15,6 @@ * Public: No */ -#include "script_component.hpp" - params ["_logic"]; [_logic, QGVAR(allowHandcuffOwnSide), "allowHandcuffOwnSide"] call EFUNC(common,readSettingFromModule); diff --git a/addons/captives/functions/fnc_moduleSurrender.sqf b/addons/captives/functions/fnc_moduleSurrender.sqf index 9f3bd8cdf9..ab31ea6bc9 100644 --- a/addons/captives/functions/fnc_moduleSurrender.sqf +++ b/addons/captives/functions/fnc_moduleSurrender.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: PabstMirror * Module Function to make a unit surrender (can be called from editor) @@ -16,7 +17,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_logic", "_units", "_activated"]; diff --git a/addons/captives/functions/fnc_setHandcuffed.sqf b/addons/captives/functions/fnc_setHandcuffed.sqf index ad43137b18..5e0b634544 100644 --- a/addons/captives/functions/fnc_setHandcuffed.sqf +++ b/addons/captives/functions/fnc_setHandcuffed.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Nic547, commy2 * Handcuffs a unit. @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_unit","_state"]; TRACE_2("params",_unit,_state); diff --git a/addons/captives/functions/fnc_setSurrendered.sqf b/addons/captives/functions/fnc_setSurrendered.sqf index 2deec8cb84..a9b4ef85a7 100644 --- a/addons/captives/functions/fnc_setSurrendered.sqf +++ b/addons/captives/functions/fnc_setSurrendered.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 PabstMirror * Lets a unit surrender @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_unit","_state"]; TRACE_2("params",_unit,_state); diff --git a/addons/captives/functions/fnc_vehicleCaptiveMoveIn.sqf b/addons/captives/functions/fnc_vehicleCaptiveMoveIn.sqf index fa1d920a0d..6089625961 100644 --- a/addons/captives/functions/fnc_vehicleCaptiveMoveIn.sqf +++ b/addons/captives/functions/fnc_vehicleCaptiveMoveIn.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: PabstMirror * Loads a captive into a vehicle @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_target","_vehicle"]; TRACE_2("params",_target,_vehicle); diff --git a/addons/captives/functions/fnc_vehicleCaptiveMoveOut.sqf b/addons/captives/functions/fnc_vehicleCaptiveMoveOut.sqf index 329adc1740..f26ff45370 100644 --- a/addons/captives/functions/fnc_vehicleCaptiveMoveOut.sqf +++ b/addons/captives/functions/fnc_vehicleCaptiveMoveOut.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: PabstMirror * Unloads a captive from a vehicle. @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_unit"]; TRACE_1("params",_unit); diff --git a/addons/cargo/functions/fnc_addCargoItem.sqf b/addons/cargo/functions/fnc_addCargoItem.sqf index 6e1b311098..8be00818c6 100644 --- a/addons/cargo/functions/fnc_addCargoItem.sqf +++ b/addons/cargo/functions/fnc_addCargoItem.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Glowbal, Jonpas * Adds a cargo item to the vehicle. @@ -16,7 +17,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_itemClass", "_vehicle", ["_amount", 1], ["_showHint", false, [false]]]; TRACE_3("params",_itemClass,_vehicle,_amount); diff --git a/addons/cargo/functions/fnc_addCargoVehiclesActions.sqf b/addons/cargo/functions/fnc_addCargoVehiclesActions.sqf index e13cc65542..ab362e63f4 100644 --- a/addons/cargo/functions/fnc_addCargoVehiclesActions.sqf +++ b/addons/cargo/functions/fnc_addCargoVehiclesActions.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Dystopian * Create actions for nearest vehicles with cargo. @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_target"]; diff --git a/addons/cargo/functions/fnc_canLoadItemIn.sqf b/addons/cargo/functions/fnc_canLoadItemIn.sqf index 7d5d98dc0c..0d4508377c 100644 --- a/addons/cargo/functions/fnc_canLoadItemIn.sqf +++ b/addons/cargo/functions/fnc_canLoadItemIn.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Glowbal * Check if item can be loaded into other Object. @@ -15,7 +16,6 @@ * * Public: No */ -#include "script_component.hpp" params [["_item", "", [objNull,""]], "_vehicle", ["_ignoreInteraction", false]]; diff --git a/addons/cargo/functions/fnc_canUnloadItem.sqf b/addons/cargo/functions/fnc_canUnloadItem.sqf index 9f1722ad08..311f3cb36d 100644 --- a/addons/cargo/functions/fnc_canUnloadItem.sqf +++ b/addons/cargo/functions/fnc_canUnloadItem.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Glowbal, ViperMaul * Check if item can be unloaded. @@ -15,7 +16,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_item", "_vehicle", ["_unloader", objNull]]; TRACE_2("params",_item,_vehicle); diff --git a/addons/cargo/functions/fnc_getCargoSpaceLeft.sqf b/addons/cargo/functions/fnc_getCargoSpaceLeft.sqf index dc5f3ab073..d9452d4b01 100644 --- a/addons/cargo/functions/fnc_getCargoSpaceLeft.sqf +++ b/addons/cargo/functions/fnc_getCargoSpaceLeft.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Glowbal * Get the cargo space left on object. @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_object"]; // TRACE_1("params",_object); diff --git a/addons/cargo/functions/fnc_getSizeItem.sqf b/addons/cargo/functions/fnc_getSizeItem.sqf index 32ec92a550..5d66e59b72 100644 --- a/addons/cargo/functions/fnc_getSizeItem.sqf +++ b/addons/cargo/functions/fnc_getSizeItem.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Glowbal, SilentSpike * Get the cargo size of an object. @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_item"]; diff --git a/addons/cargo/functions/fnc_handleDestroyed.sqf b/addons/cargo/functions/fnc_handleDestroyed.sqf index 88b3cb9351..2818e71e07 100644 --- a/addons/cargo/functions/fnc_handleDestroyed.sqf +++ b/addons/cargo/functions/fnc_handleDestroyed.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Glowbal * Handle object being destroyed. Only runs on server. @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_vehicle"]; TRACE_1("params",_vehicle); diff --git a/addons/cargo/functions/fnc_initObject.sqf b/addons/cargo/functions/fnc_initObject.sqf index b5339e8b28..611e3e6391 100644 --- a/addons/cargo/functions/fnc_initObject.sqf +++ b/addons/cargo/functions/fnc_initObject.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Glowbal, SilentSpike * Initializes variables for loadable objects. Called from init EH. @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_object"]; private _type = typeOf _object; diff --git a/addons/cargo/functions/fnc_initVehicle.sqf b/addons/cargo/functions/fnc_initVehicle.sqf index 2f6398d48b..60f204cb75 100644 --- a/addons/cargo/functions/fnc_initVehicle.sqf +++ b/addons/cargo/functions/fnc_initVehicle.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Glowbal * Initializes vehicle, adds open cargo menu action if available. @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_vehicle"]; TRACE_1("params", _vehicle); diff --git a/addons/cargo/functions/fnc_loadItem.sqf b/addons/cargo/functions/fnc_loadItem.sqf index cb4772b791..a04182064e 100644 --- a/addons/cargo/functions/fnc_loadItem.sqf +++ b/addons/cargo/functions/fnc_loadItem.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Glowbal * Load object into vehicle. @@ -16,7 +17,6 @@ * * Public: Yes */ -#include "script_component.hpp" params [["_item","",[objNull,""]], ["_vehicle",objNull,[objNull]], ["_ignoreInteraction", false]]; TRACE_2("params",_item,_vehicle); diff --git a/addons/cargo/functions/fnc_moduleSettings.sqf b/addons/cargo/functions/fnc_moduleSettings.sqf index 6712d947fa..ce73678e9e 100644 --- a/addons/cargo/functions/fnc_moduleSettings.sqf +++ b/addons/cargo/functions/fnc_moduleSettings.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Glowbal * Module for adjusting the cargo settings @@ -15,7 +16,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_logic", "", "_activated"]; diff --git a/addons/cargo/functions/fnc_onMenuOpen.sqf b/addons/cargo/functions/fnc_onMenuOpen.sqf index e08c7a478a..d611d18ff2 100644 --- a/addons/cargo/functions/fnc_onMenuOpen.sqf +++ b/addons/cargo/functions/fnc_onMenuOpen.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Glowbal * Handle the UI data display. @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" disableSerialization; diff --git a/addons/cargo/functions/fnc_paradropItem.sqf b/addons/cargo/functions/fnc_paradropItem.sqf index ae9b192de4..961b2f7c36 100644 --- a/addons/cargo/functions/fnc_paradropItem.sqf +++ b/addons/cargo/functions/fnc_paradropItem.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: marc_book, commy2, CAA-Picard * Unload and paradrop object from plane or helicopter. @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_item", "_vehicle"]; TRACE_2("params",_item,_vehicle); diff --git a/addons/cargo/functions/fnc_removeCargoItem.sqf b/addons/cargo/functions/fnc_removeCargoItem.sqf index 22d73866f8..ede9c68c94 100644 --- a/addons/cargo/functions/fnc_removeCargoItem.sqf +++ b/addons/cargo/functions/fnc_removeCargoItem.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: 654wak654 * Removes a cargo item from the vehicle. @@ -16,7 +17,6 @@ * * Public: Yes */ -#include "script_component.hpp" params ["_item", "_vehicle", ["_amount", 1]]; TRACE_3("params",_item,_vehicle,_amount); diff --git a/addons/cargo/functions/fnc_setSize.sqf b/addons/cargo/functions/fnc_setSize.sqf index 660131045a..9c9cc34f39 100644 --- a/addons/cargo/functions/fnc_setSize.sqf +++ b/addons/cargo/functions/fnc_setSize.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: SilentSpike * Set the cargo size of any object. Has global effect. @@ -16,7 +17,6 @@ * * Public: Yes */ -#include "script_component.hpp" // Only run this after the settings are initialized if !(EGVAR(common,settingsInitFinished)) exitWith { diff --git a/addons/cargo/functions/fnc_setSpace.sqf b/addons/cargo/functions/fnc_setSpace.sqf index 156b0aa085..1b3743cf9f 100644 --- a/addons/cargo/functions/fnc_setSpace.sqf +++ b/addons/cargo/functions/fnc_setSpace.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: SilentSpike * Set the cargo space of any object. Has global effect. @@ -15,7 +16,6 @@ * * Public: Yes */ -#include "script_component.hpp" // Only run this after the settings are initialized if !(EGVAR(common,settingsInitFinished)) exitWith { diff --git a/addons/cargo/functions/fnc_startLoadIn.sqf b/addons/cargo/functions/fnc_startLoadIn.sqf index 092440e5d4..178d2fff25 100644 --- a/addons/cargo/functions/fnc_startLoadIn.sqf +++ b/addons/cargo/functions/fnc_startLoadIn.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Glowbal * Start load item. @@ -15,7 +16,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_player", "_object", ["_cargoVehicle", objNull]]; TRACE_3("params",_player,_object,_cargoVehicle); diff --git a/addons/cargo/functions/fnc_startUnload.sqf b/addons/cargo/functions/fnc_startUnload.sqf index 27ebe9e952..eedf3b2efa 100644 --- a/addons/cargo/functions/fnc_startUnload.sqf +++ b/addons/cargo/functions/fnc_startUnload.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Glowbal * Start unload action. @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" disableSerialization; diff --git a/addons/cargo/functions/fnc_unloadItem.sqf b/addons/cargo/functions/fnc_unloadItem.sqf index f63e4367aa..6f0f97cb43 100644 --- a/addons/cargo/functions/fnc_unloadItem.sqf +++ b/addons/cargo/functions/fnc_unloadItem.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Glowbal, ViperMaul * Unload object from vehicle. @@ -15,7 +16,6 @@ * * Public: Yes */ -#include "script_component.hpp" params ["_item", "_vehicle", ["_unloader", objNull]]; TRACE_3("params",_item,_vehicle,_unloader); diff --git a/addons/cargo/functions/fnc_validateCargoSpace.sqf b/addons/cargo/functions/fnc_validateCargoSpace.sqf index 6e3d79cf8d..b83ccfe93a 100644 --- a/addons/cargo/functions/fnc_validateCargoSpace.sqf +++ b/addons/cargo/functions/fnc_validateCargoSpace.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Glowbal * Validate the vehicle cargo space. @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_vehicle"]; TRACE_1("params",_vehicle); diff --git a/addons/chemlights/functions/fnc_compileChemlightMenu.sqf b/addons/chemlights/functions/fnc_compileChemlightMenu.sqf index c87c4247ec..c8cccb88bd 100644 --- a/addons/chemlights/functions/fnc_compileChemlightMenu.sqf +++ b/addons/chemlights/functions/fnc_compileChemlightMenu.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: voiper * Compile list of chemlight classnames and add to the "Chemlight shield" parent menu. @@ -16,8 +17,6 @@ * Public: No */ -#include "script_component.hpp" - params ["", "_player", "_args"]; private _actions = []; diff --git a/addons/chemlights/functions/fnc_getShieldComponents.sqf b/addons/chemlights/functions/fnc_getShieldComponents.sqf index 6055070351..f372241599 100644 --- a/addons/chemlights/functions/fnc_getShieldComponents.sqf +++ b/addons/chemlights/functions/fnc_getShieldComponents.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: voiper * Check a unit for whether they're carrying a chemlight shield and a chemlight. @@ -14,8 +15,6 @@ * Public: No */ -#include "script_component.hpp" - params ["_unit"]; private _components = []; private _items = itemsWithMagazines _unit; diff --git a/addons/chemlights/functions/fnc_initIR.sqf b/addons/chemlights/functions/fnc_initIR.sqf index f2ff4b02d3..29532f41f1 100644 --- a/addons/chemlights/functions/fnc_initIR.sqf +++ b/addons/chemlights/functions/fnc_initIR.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: voiper * Spawn IR marker for dummy IR physX object. @@ -14,8 +15,6 @@ * Public: No */ -#include "script_component.hpp" - params ["_dummy"]; private _chemlightClass = getText (configFile >> "CfgVehicles" >> typeOf _dummy >> "ACE_Attachable"); diff --git a/addons/chemlights/functions/fnc_isIRClass.sqf b/addons/chemlights/functions/fnc_isIRClass.sqf index 69643a89fe..3d2021749e 100644 --- a/addons/chemlights/functions/fnc_isIRClass.sqf +++ b/addons/chemlights/functions/fnc_isIRClass.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: voiper * Check if an ammo classname is an IR chemlight. @@ -14,8 +15,6 @@ * Public: No */ -#include "script_component.hpp" - params [["_input", "", ["", objNull]]]; private _class = if (typeName _input == "OBJECT") then {typeOf _input} else {_input}; diff --git a/addons/chemlights/functions/fnc_prepShield.sqf b/addons/chemlights/functions/fnc_prepShield.sqf index b4861da080..3f4f09d430 100644 --- a/addons/chemlights/functions/fnc_prepShield.sqf +++ b/addons/chemlights/functions/fnc_prepShield.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: voiper * Combine a chemlight shield item and a chemlight item into a light. @@ -16,8 +17,6 @@ * Public: No */ -#include "script_component.hpp" - params ["_target", "_unit", "_args"]; _args params ["_chemlight", "_shieldClass"]; diff --git a/addons/chemlights/functions/fnc_removeIR.sqf b/addons/chemlights/functions/fnc_removeIR.sqf index b7f6a0001e..1c40a5b126 100644 --- a/addons/chemlights/functions/fnc_removeIR.sqf +++ b/addons/chemlights/functions/fnc_removeIR.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: voiper * Kill chemlight and any dummy objects attached to it. @@ -15,8 +16,6 @@ * Public: No */ -#include "script_component.hpp" - params ["_chemlight", "_lightMarker"]; if (!isNull _lightMarker) then { diff --git a/addons/chemlights/functions/fnc_throwEH.sqf b/addons/chemlights/functions/fnc_throwEH.sqf index d99d83495b..2bedff7cb7 100644 --- a/addons/chemlights/functions/fnc_throwEH.sqf +++ b/addons/chemlights/functions/fnc_throwEH.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2, voiper * Fired EH, for handling chemlight ThrowMuzzles. @@ -14,8 +15,6 @@ * Public: No */ -#include "script_component.hpp" - params ["_unit", "_weapon", "", "", "_ammo", "", "_projectile"]; if ((_weapon != "Throw") || {!(_ammo isKindOf ["Chemlight_base", configFile >> "CfgAmmo"])}) exitWith {}; diff --git a/addons/chemlights/functions/fnc_throwIR.sqf b/addons/chemlights/functions/fnc_throwIR.sqf index 5d29ccde67..b507c8e5b1 100644 --- a/addons/chemlights/functions/fnc_throwIR.sqf +++ b/addons/chemlights/functions/fnc_throwIR.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: voiper * Create and throw IR chemlight. @@ -16,8 +17,6 @@ * Public: No */ -#include "script_component.hpp" - params ["_projectile", "_ammo", ["_replaceAdvThrowable", false]]; private _config = configFile >> "CfgAmmo" >> _ammo; diff --git a/addons/common/functions/fnc_ASLToPosition.sqf b/addons/common/functions/fnc_ASLToPosition.sqf index 0f745cd2bb..81e99ef8c3 100644 --- a/addons/common/functions/fnc_ASLToPosition.sqf +++ b/addons/common/functions/fnc_ASLToPosition.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: esteldunedain * Converts ASL to Arma "Position" @@ -15,7 +16,6 @@ * * Public: No */ -#include "script_component.hpp" if (surfaceIsWater _this) then { _this diff --git a/addons/common/functions/fnc__handleRequestAllSyncedEvents.sqf b/addons/common/functions/fnc__handleRequestAllSyncedEvents.sqf index e41436078c..dfdbe4db54 100644 --- a/addons/common/functions/fnc__handleRequestAllSyncedEvents.sqf +++ b/addons/common/functions/fnc__handleRequestAllSyncedEvents.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: jaynus * Handles a server-side request for synchronization ALL events on JIP to a client. @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_client"]; diff --git a/addons/common/functions/fnc__handleRequestSyncedEvent.sqf b/addons/common/functions/fnc__handleRequestSyncedEvent.sqf index 61711eb0b0..1e038c40bc 100644 --- a/addons/common/functions/fnc__handleRequestSyncedEvent.sqf +++ b/addons/common/functions/fnc__handleRequestSyncedEvent.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: jaynus * Receives either requests for synchronization from clients, or the synchronization data from the server. @@ -19,7 +20,6 @@ * * Public: No */ -#include "script_component.hpp" //SEH_s if (isServer) then { diff --git a/addons/common/functions/fnc__handleSyncedEvent.sqf b/addons/common/functions/fnc__handleSyncedEvent.sqf index f59c8a6535..a7fa657a5f 100644 --- a/addons/common/functions/fnc__handleSyncedEvent.sqf +++ b/addons/common/functions/fnc__handleSyncedEvent.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: jaynus * Handles synced events being received. Server will log them, and server/client will execute them. @@ -15,7 +16,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_name", "_args", "_ttl"]; diff --git a/addons/common/functions/fnc_actionKeysNamesConverted.sqf b/addons/common/functions/fnc_actionKeysNamesConverted.sqf index fae1fb939e..53ebba0cd6 100644 --- a/addons/common/functions/fnc_actionKeysNamesConverted.sqf +++ b/addons/common/functions/fnc_actionKeysNamesConverted.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Reports same as actionKeysNames(Array) but in a format processable by "keyDown". @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" #define LAST_DIK 250 #define PLACEHOLDER_PLUS "" diff --git a/addons/common/functions/fnc_addActionEventHandler.sqf b/addons/common/functions/fnc_addActionEventHandler.sqf index 18d337225f..8fafef07cf 100644 --- a/addons/common/functions/fnc_addActionEventHandler.sqf +++ b/addons/common/functions/fnc_addActionEventHandler.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Add an addAction event to a unit. Used to handle multiple addAction events. Global arguments, local effects. Does only work for player controlled units. @@ -16,7 +17,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_unit", "_action", "_condition", "_statement"]; diff --git a/addons/common/functions/fnc_addActionMenuEventHandler.sqf b/addons/common/functions/fnc_addActionMenuEventHandler.sqf index 94028b9aea..67d531c22e 100644 --- a/addons/common/functions/fnc_addActionMenuEventHandler.sqf +++ b/addons/common/functions/fnc_addActionMenuEventHandler.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Add an addAction event to a unit. Used to handle multiple addAction events and add a action to the mouse wheel menu. Global arguments, local effects. Does only work for player controlled units. @@ -20,7 +21,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_unit", "_displayName", "_action", "_condition", "_statement", "_condition2", "_statement2", ["_priority", 0]]; diff --git a/addons/common/functions/fnc_addCanInteractWithCondition.sqf b/addons/common/functions/fnc_addCanInteractWithCondition.sqf index 7c2bc3591b..5db1a79a3d 100644 --- a/addons/common/functions/fnc_addCanInteractWithCondition.sqf +++ b/addons/common/functions/fnc_addCanInteractWithCondition.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Add a condition that gets checked by ace_common_fnc_canInteractWith. @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_conditionName", "_conditionFunc"]; diff --git a/addons/common/functions/fnc_addLineToDebugDraw.sqf b/addons/common/functions/fnc_addLineToDebugDraw.sqf index 46f015c5e0..3056d750d6 100644 --- a/addons/common/functions/fnc_addLineToDebugDraw.sqf +++ b/addons/common/functions/fnc_addLineToDebugDraw.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: esteldunedain * Add line to draw on debug @@ -15,7 +16,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_startASL", "_endASL", "_color"]; diff --git a/addons/common/functions/fnc_addMapMarkerCreatedEventHandler.sqf b/addons/common/functions/fnc_addMapMarkerCreatedEventHandler.sqf index 1b82b9fedf..c698d30272 100644 --- a/addons/common/functions/fnc_addMapMarkerCreatedEventHandler.sqf +++ b/addons/common/functions/fnc_addMapMarkerCreatedEventHandler.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Add a map marker creation event handler. @@ -13,7 +14,6 @@ * * Public: Yes */ -#include "script_component.hpp" params ["_statement"]; diff --git a/addons/common/functions/fnc_addSyncedEventHandler.sqf b/addons/common/functions/fnc_addSyncedEventHandler.sqf index d46dcbe45c..3dd4f03152 100644 --- a/addons/common/functions/fnc_addSyncedEventHandler.sqf +++ b/addons/common/functions/fnc_addSyncedEventHandler.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: jaynus * Register an event handler for an ACE synced event @@ -15,7 +16,6 @@ * * Public: Yes */ -#include "script_component.hpp" params ["_name", "_handler", ["_ttl", 0]]; diff --git a/addons/common/functions/fnc_addToInventory.sqf b/addons/common/functions/fnc_addToInventory.sqf index d7193cfd23..b8b5f93635 100644 --- a/addons/common/functions/fnc_addToInventory.sqf +++ b/addons/common/functions/fnc_addToInventory.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Garth 'L-H' de Wet * Adds an item, weapon, or magazine to the unit's inventory or places it in a weaponHolder if no space. @@ -17,7 +18,6 @@ * * Public: Yes */ -#include "script_component.hpp" params ["_unit", "_classname", ["_container", ""], ["_ammoCount", -1]]; diff --git a/addons/common/functions/fnc_ambientBrightness.sqf b/addons/common/functions/fnc_ambientBrightness.sqf index 276d7aa5c3..608c35dfef 100644 --- a/addons/common/functions/fnc_ambientBrightness.sqf +++ b/addons/common/functions/fnc_ambientBrightness.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2, idea by Falke * Returns a brightness value depending on the sun and moon state. Ranges from 0 to 1 (dark ... bright). @@ -13,6 +14,5 @@ * * Public: Yes */ -#include "script_component.hpp" (sunOrMoon * sunOrMoon * (1 - overcast * 0.25) + (moonIntensity / 5) * (1 - overcast)) min 1 diff --git a/addons/common/functions/fnc_arithmeticGetResult.sqf b/addons/common/functions/fnc_arithmeticGetResult.sqf index 3dae9b23a0..418d510d66 100644 --- a/addons/common/functions/fnc_arithmeticGetResult.sqf +++ b/addons/common/functions/fnc_arithmeticGetResult.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: PabstMirror * Gets arithmetic result from a set. @@ -16,8 +17,6 @@ * * Public: Yes */ -// #define DEBUG_MODE_FULL -#include "script_component.hpp" params ["_namespace", "_setID", "_op"]; TRACE_3("params",_namespace,_setID,_op); diff --git a/addons/common/functions/fnc_arithmeticSetSource.sqf b/addons/common/functions/fnc_arithmeticSetSource.sqf index a11cb29527..0d7503aa90 100644 --- a/addons/common/functions/fnc_arithmeticSetSource.sqf +++ b/addons/common/functions/fnc_arithmeticSetSource.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: PabstMirror * Adds or removes a source to an arithmetic set. @@ -17,8 +18,6 @@ * * Public: Yes */ -// #define DEBUG_MODE_FULL -#include "script_component.hpp" params ["_namespace", "_setID", "_source", "_variable"]; TRACE_4("params",_namespace,_setID,_source,_variable); diff --git a/addons/common/functions/fnc_assignObjectsInList.sqf b/addons/common/functions/fnc_assignObjectsInList.sqf index 5724521a7b..764675fa5f 100644 --- a/addons/common/functions/fnc_assignObjectsInList.sqf +++ b/addons/common/functions/fnc_assignObjectsInList.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Glowbal * Loops through a string and filters out object names/variables to assign a value for given variable. @@ -18,7 +19,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_list", "_variable", "_setting", "_global", ["_vehicle", false]]; diff --git a/addons/common/functions/fnc_assignedItemFix.sqf b/addons/common/functions/fnc_assignedItemFix.sqf index 8e0c518c90..3f523f4a59 100644 --- a/addons/common/functions/fnc_assignedItemFix.sqf +++ b/addons/common/functions/fnc_assignedItemFix.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Initialized the assigned item fix. @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" ACE_isMapEnabled = getMissionConfigValue ["showMap", 1] in [true, 1]; ACE_isCompassEnabled = getMissionConfigValue ["showCompass", 1] in [true, 1]; diff --git a/addons/common/functions/fnc_binarizeNumber.sqf b/addons/common/functions/fnc_binarizeNumber.sqf index 82494e39d6..780551756c 100644 --- a/addons/common/functions/fnc_binarizeNumber.sqf +++ b/addons/common/functions/fnc_binarizeNumber.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Get a binary equivalent of a decimal number. @@ -14,7 +15,6 @@ * * Public: Yes */ -#include "script_component.hpp" params ["_number", ["_minLength", 8]]; diff --git a/addons/common/functions/fnc_blurScreen.sqf b/addons/common/functions/fnc_blurScreen.sqf index 0995c957d9..339a1138e6 100644 --- a/addons/common/functions/fnc_blurScreen.sqf +++ b/addons/common/functions/fnc_blurScreen.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Glowbal * Blurs screen. @@ -14,7 +15,6 @@ * * Public: Yes */ -#include "script_component.hpp" if (!hasInterface) exitWith {}; diff --git a/addons/common/functions/fnc_cachedCall.sqf b/addons/common/functions/fnc_cachedCall.sqf index 086112b90d..728303d6cd 100644 --- a/addons/common/functions/fnc_cachedCall.sqf +++ b/addons/common/functions/fnc_cachedCall.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: esteldunedain, Jaynus * Returns the result of the function and caches it up to a given time or event @@ -18,7 +19,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_params", "_function", "_namespace", "_uid", "_duration", "_event"]; diff --git a/addons/common/functions/fnc_canDig.sqf b/addons/common/functions/fnc_canDig.sqf index 2b0412f730..e96b44a478 100644 --- a/addons/common/functions/fnc_canDig.sqf +++ b/addons/common/functions/fnc_canDig.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Ruthberg, commy2 * Checks if the player can dig on the surface below (enough dust). @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_unit"]; diff --git a/addons/common/functions/fnc_canGetInPosition.sqf b/addons/common/functions/fnc_canGetInPosition.sqf index c0379c861a..22d885b38c 100644 --- a/addons/common/functions/fnc_canGetInPosition.sqf +++ b/addons/common/functions/fnc_canGetInPosition.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Is the unit able to enter the vehicle in the given position? @@ -17,7 +18,6 @@ * * Public: No */ -#include "script_component.hpp" #define CANGETINDRIVER (isNull (driver _vehicle) || {!alive driver _vehicle}) && {!lockedDriver _vehicle} && {getNumber (_config >> "isUav") != 1} #define CANGETINTURRETINDEX (isNull (_vehicle turretUnit _turret) || {!alive (_vehicle turretUnit _turret)}) && {!(_vehicle lockedTurret _turret)} && {getNumber (_config >> "isUav") != 1} diff --git a/addons/common/functions/fnc_canInteractWith.sqf b/addons/common/functions/fnc_canInteractWith.sqf index a94ba6d9d1..b67e57964f 100644 --- a/addons/common/functions/fnc_canInteractWith.sqf +++ b/addons/common/functions/fnc_canInteractWith.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Check if the unit can interact. @@ -15,7 +16,6 @@ * * Public: Yes */ -#include "script_component.hpp" params ["_unit", "_target", ["_exceptions", []]]; diff --git a/addons/common/functions/fnc_cbaSettings.sqf b/addons/common/functions/fnc_cbaSettings.sqf index 0441680dfd..4eb84d54da 100644 --- a/addons/common/functions/fnc_cbaSettings.sqf +++ b/addons/common/functions/fnc_cbaSettings.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: PabstMirror * Called at pre-init: Loads all ace_settings and converts them to CBA Settings. @@ -13,8 +14,6 @@ * * Public: No */ -//#define DEBUG_MODE_FULL -#include "script_component.hpp" LOG("Adding ACE_Settings to CBA_settings"); diff --git a/addons/common/functions/fnc_cbaSettings_convertHelper.sqf b/addons/common/functions/fnc_cbaSettings_convertHelper.sqf index 6b6416e7df..14d2b8c35a 100644 --- a/addons/common/functions/fnc_cbaSettings_convertHelper.sqf +++ b/addons/common/functions/fnc_cbaSettings_convertHelper.sqf @@ -1,3 +1,5 @@ +#define DEBUG_MODE_FULL +#include "script_component.hpp" /* * Author: PabstMirror * Dev function: Converts ace_settings to code, outputs to clipboard @@ -13,8 +15,6 @@ * * Public: No */ -#define DEBUG_MODE_FULL -#include "script_component.hpp" params ["_addon"]; diff --git a/addons/common/functions/fnc_cbaSettings_loadFromConfig.sqf b/addons/common/functions/fnc_cbaSettings_loadFromConfig.sqf index 1382942732..ef529de955 100644 --- a/addons/common/functions/fnc_cbaSettings_loadFromConfig.sqf +++ b/addons/common/functions/fnc_cbaSettings_loadFromConfig.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: PabstMirror * Converts a ace_setting config into a cba setting @@ -13,8 +14,6 @@ * * Public: No */ -// #define DEBUG_MODE_FULL -#include "script_component.hpp" params ["_config"]; diff --git a/addons/common/functions/fnc_cbaSettings_settingChanged.sqf b/addons/common/functions/fnc_cbaSettings_settingChanged.sqf index 6fa99e313d..2a2974ef24 100644 --- a/addons/common/functions/fnc_cbaSettings_settingChanged.sqf +++ b/addons/common/functions/fnc_cbaSettings_settingChanged.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: PabstMirror * Function for handeling a cba setting being changed. @@ -16,8 +17,6 @@ * * Public: No */ -// #define DEBUG_MODE_FULL -#include "script_component.hpp" params ["_settingName", "_newValue", ["_canBeChanged", false]]; TRACE_2("",_settingName,_newValue); diff --git a/addons/common/functions/fnc_cbaSettings_transferUserSettings.sqf b/addons/common/functions/fnc_cbaSettings_transferUserSettings.sqf index 8d55f671b7..703e0263dc 100644 --- a/addons/common/functions/fnc_cbaSettings_transferUserSettings.sqf +++ b/addons/common/functions/fnc_cbaSettings_transferUserSettings.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: PabstMirror * Transfers a client's old ace settings to cba @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" if (!hasInterface) exitWith {}; diff --git a/addons/common/functions/fnc_changeProjectileDirection.sqf b/addons/common/functions/fnc_changeProjectileDirection.sqf index 6e42ee332a..f355662598 100644 --- a/addons/common/functions/fnc_changeProjectileDirection.sqf +++ b/addons/common/functions/fnc_changeProjectileDirection.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Adjust a projectiles velocity and dir + up vector. @@ -16,7 +17,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_projectile", "_adjustDir", "_adjustUp", ["_adjustSpeed",0]]; diff --git a/addons/common/functions/fnc_checkFiles.sqf b/addons/common/functions/fnc_checkFiles.sqf index 1a3d34bc86..62a344952f 100644 --- a/addons/common/functions/fnc_checkFiles.sqf +++ b/addons/common/functions/fnc_checkFiles.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Compares version numbers of PBOs and DLLs. @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" /////////////// // check addons diff --git a/addons/common/functions/fnc_checkPBOs.sqf b/addons/common/functions/fnc_checkPBOs.sqf index 2504d73dc1..b45fae45d6 100644 --- a/addons/common/functions/fnc_checkPBOs.sqf +++ b/addons/common/functions/fnc_checkPBOs.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Used to execute the checkPBOs module without placing the module. Don't use this together with the module. @@ -19,7 +20,6 @@ * * Public: Yes */ -#include "script_component.hpp" params ["_mode", ["_checkAll", false], ["_whitelist", "", [""]]]; TRACE_3("params",_mode,_checkAll,_whitelist); diff --git a/addons/common/functions/fnc_claim.sqf b/addons/common/functions/fnc_claim.sqf index 8df41cb241..5c291c78da 100644 --- a/addons/common/functions/fnc_claim.sqf +++ b/addons/common/functions/fnc_claim.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Unit claims the ownership over an object. This is used to prevent multiple players from draging the same ammo box or using up the same wheel when repairing etc. @@ -15,7 +16,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_unit", "_target", ["_lockTarget", false]]; diff --git a/addons/common/functions/fnc_codeToString.sqf b/addons/common/functions/fnc_codeToString.sqf index ff4597f7bb..b938148220 100644 --- a/addons/common/functions/fnc_codeToString.sqf +++ b/addons/common/functions/fnc_codeToString.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Removes the brackets around a code and returns the code as a string. It does nothing if the code is already a string. @@ -13,7 +14,6 @@ * * Public: Yes */ -#include "script_component.hpp" params ["_code"]; if (_code isEqualType "") exitWith {_code}; diff --git a/addons/common/functions/fnc_createOrthonormalReference.sqf b/addons/common/functions/fnc_createOrthonormalReference.sqf index cb443de15b..d705086e85 100644 --- a/addons/common/functions/fnc_createOrthonormalReference.sqf +++ b/addons/common/functions/fnc_createOrthonormalReference.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: esteldunedain * Returns a orthonormal system of reference aligned with the supplied vector @@ -15,7 +16,6 @@ * * Public: Yes */ -#include "script_component.hpp" [_this] params [["_vector", [0,0,1], [[]], 3]]; diff --git a/addons/common/functions/fnc_currentChannel.sqf b/addons/common/functions/fnc_currentChannel.sqf index 0844ebd881..350f91c9a2 100644 --- a/addons/common/functions/fnc_currentChannel.sqf +++ b/addons/common/functions/fnc_currentChannel.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Returns the current radio / chat / marker channel. @@ -13,7 +14,6 @@ * * Public: Yes */ -#include "script_component.hpp" #define CHANNELS ["global", "side", "command", "group", "vehicle", "direct"] #define CHANNELS_LOCALIZED [localize "str_channel_global", localize "str_channel_side", localize "str_channel_command", localize "str_channel_group", localize "str_channel_vehicle", localize "str_channel_direct"] diff --git a/addons/common/functions/fnc_debug.sqf b/addons/common/functions/fnc_debug.sqf index a825c82523..2e08a19faf 100644 --- a/addons/common/functions/fnc_debug.sqf +++ b/addons/common/functions/fnc_debug.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Glowbal * Print logging messages through the ACE framework. @@ -14,7 +15,6 @@ * * Public: Yes */ -#include "script_component.hpp" #define DEFAULT_LOGGING_LEVEL -1 #define DEFAULT_TEXT_DISPLAY -1 diff --git a/addons/common/functions/fnc_debugModule.sqf b/addons/common/functions/fnc_debugModule.sqf index c4fa7b8547..90ad5ab6ba 100644 --- a/addons/common/functions/fnc_debugModule.sqf +++ b/addons/common/functions/fnc_debugModule.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Glowbal * ? @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_entity"]; diff --git a/addons/common/functions/fnc_defineVariable.sqf b/addons/common/functions/fnc_defineVariable.sqf index 7c1a694aeb..ba12d1c426 100644 --- a/addons/common/functions/fnc_defineVariable.sqf +++ b/addons/common/functions/fnc_defineVariable.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Glowbal * Define a variable for the ACE variable framework @@ -18,7 +19,6 @@ * * Public: Yes */ -#include "script_component.hpp" params ["_name", "_value", "_defaultGlobal", "_category", ["_code", 0], ["_persistent", false]]; diff --git a/addons/common/functions/fnc_deprecateComponent.sqf b/addons/common/functions/fnc_deprecateComponent.sqf index 6bf38559fc..a723b733ec 100644 --- a/addons/common/functions/fnc_deprecateComponent.sqf +++ b/addons/common/functions/fnc_deprecateComponent.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Glowbal * Mark a component as deprecated and switches it to a new component if that is available @@ -15,7 +16,6 @@ * Example: * [["ace_sitting", "ace_sitting_enabled"], ["acex_sitting", "acex_sitting_enabled"], "3.7.0"] call ace_common_fnc_deprecateComponent; */ -#include "script_component.hpp" params ["_oldComponent", "_newComponent", "_version"]; diff --git a/addons/common/functions/fnc_deviceKeyFindValidIndex.sqf b/addons/common/functions/fnc_deviceKeyFindValidIndex.sqf index aeacf940cc..1e8ea86a53 100644 --- a/addons/common/functions/fnc_deviceKeyFindValidIndex.sqf +++ b/addons/common/functions/fnc_deviceKeyFindValidIndex.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: PabstMirror * Finds next valid index for the device array. @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params [["_searchOffsetOrName", 0]]; diff --git a/addons/common/functions/fnc_deviceKeyRegisterNew.sqf b/addons/common/functions/fnc_deviceKeyRegisterNew.sqf index ce012fc3aa..2e6dbbee99 100644 --- a/addons/common/functions/fnc_deviceKeyRegisterNew.sqf +++ b/addons/common/functions/fnc_deviceKeyRegisterNew.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: PabstMirror * Finds next valid index for the device array. @@ -17,7 +18,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_displayName", "_iconImage", "_conditionCode", "_toggleCode", "_closeCode"]; diff --git a/addons/common/functions/fnc_disableAI.sqf b/addons/common/functions/fnc_disableAI.sqf index 75c59d1a9a..88b6f2bd49 100644 --- a/addons/common/functions/fnc_disableAI.sqf +++ b/addons/common/functions/fnc_disableAI.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Glowbal, KoffeinFlummi * Disables/Enables AI @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params [["_unit", objNull, [objNull]], ["_disable", true, [false]]]; diff --git a/addons/common/functions/fnc_disableUserInput.sqf b/addons/common/functions/fnc_disableUserInput.sqf index 729da9b504..44468641f3 100644 --- a/addons/common/functions/fnc_disableUserInput.sqf +++ b/addons/common/functions/fnc_disableUserInput.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Disables key input. ESC can still be pressed to open the menu. @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_state"]; diff --git a/addons/common/functions/fnc_displayIcon.sqf b/addons/common/functions/fnc_displayIcon.sqf index ff8598d056..11e9f5d6e7 100644 --- a/addons/common/functions/fnc_displayIcon.sqf +++ b/addons/common/functions/fnc_displayIcon.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Glowbal * Draw progress bar and execute given function if succesful. @@ -18,7 +19,6 @@ * * Public: Yes */ -#include "script_component.hpp" // positions for the icon UI #define RIGHT_SIDE (safezoneW + safezoneX) diff --git a/addons/common/functions/fnc_displayText.sqf b/addons/common/functions/fnc_displayText.sqf index fdd1f960d5..f34a0cdfcd 100644 --- a/addons/common/functions/fnc_displayText.sqf +++ b/addons/common/functions/fnc_displayText.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Display a message. @@ -16,7 +17,6 @@ * * Public: Yes */ -#include "script_component.hpp" params ["_text", ["_sound", false], ["_delay", 2], ["_priority", 0]]; diff --git a/addons/common/functions/fnc_displayTextPicture.sqf b/addons/common/functions/fnc_displayTextPicture.sqf index b0c42824be..b25945382f 100644 --- a/addons/common/functions/fnc_displayTextPicture.sqf +++ b/addons/common/functions/fnc_displayTextPicture.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2, Glowbal * Display a structured text with image. @@ -18,7 +19,6 @@ * * Public: Yes */ -#include "script_component.hpp" params [["_text", ""], ["_image", "", [""]], ["_imageColor", [1,1,1], [[]]], ["_target", ACE_player, [objNull]], ["_size", 2, [0]]]; diff --git a/addons/common/functions/fnc_displayTextStructured.sqf b/addons/common/functions/fnc_displayTextStructured.sqf index b24b59ba81..e54e481b5a 100644 --- a/addons/common/functions/fnc_displayTextStructured.sqf +++ b/addons/common/functions/fnc_displayTextStructured.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2, Glowbal, GitHawk * Display a structured text. @@ -17,7 +18,6 @@ * * Public: Yes */ -#include "script_component.hpp" params [["_text", ""], ["_size", 1.5, [0]], ["_target", ACE_player, [objNull]], ["_width", 10, [0]]]; diff --git a/addons/common/functions/fnc_doAnimation.sqf b/addons/common/functions/fnc_doAnimation.sqf index 720518d003..678f4d4ef7 100644 --- a/addons/common/functions/fnc_doAnimation.sqf +++ b/addons/common/functions/fnc_doAnimation.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Execute an animation. This is used to not break things like the unconsciousness animation. @@ -19,7 +20,6 @@ * * Public: Yes */ -#include "script_component.hpp" params ["_unit", "_animation", ["_priority", 0], ["_force", false]]; TRACE_4("params",_unit,_animation,_priority,_force); diff --git a/addons/common/functions/fnc_doGesture.sqf b/addons/common/functions/fnc_doGesture.sqf index 9805beffc7..3aa4656cfd 100644 --- a/addons/common/functions/fnc_doGesture.sqf +++ b/addons/common/functions/fnc_doGesture.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Play a gesture. @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_unit", "_animation", ["_priority", 0]]; TRACE_3("params",_unit,_animation,_priority); diff --git a/addons/common/functions/fnc_dropBackpack.sqf b/addons/common/functions/fnc_dropBackpack.sqf index dcbb9a3f70..38f1be8a52 100644 --- a/addons/common/functions/fnc_dropBackpack.sqf +++ b/addons/common/functions/fnc_dropBackpack.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Drops a backback. Also returns the ground wepaon holder object of the dropped backpack. @@ -13,7 +14,6 @@ * * Public: Yes */ -#include "script_component.hpp" params [["_unit", objNull, [objNull]]]; diff --git a/addons/common/functions/fnc_dumpArray.sqf b/addons/common/functions/fnc_dumpArray.sqf index 6c1caf7908..4997ad119a 100644 --- a/addons/common/functions/fnc_dumpArray.sqf +++ b/addons/common/functions/fnc_dumpArray.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: ? * Dumps an array to the RPT, showing the depth of each element. @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_var", ["_depth", 0, [0]]]; diff --git a/addons/common/functions/fnc_dumpPerformanceCounters.sqf b/addons/common/functions/fnc_dumpPerformanceCounters.sqf index a6bcc1d29c..2dad092a2c 100644 --- a/addons/common/functions/fnc_dumpPerformanceCounters.sqf +++ b/addons/common/functions/fnc_dumpPerformanceCounters.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: ? * Dumps performance counter statistics into Logs. @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" diag_log text format ["REGISTERED ACE PFH HANDLERS"]; diag_log text format ["-------------------------------------------"]; diff --git a/addons/common/functions/fnc_endRadioTransmission.sqf b/addons/common/functions/fnc_endRadioTransmission.sqf index 57099afe90..16985a8773 100644 --- a/addons/common/functions/fnc_endRadioTransmission.sqf +++ b/addons/common/functions/fnc_endRadioTransmission.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" ["ace_endRadioTransmissions"] call CBA_fnc_localEvent; diff --git a/addons/common/functions/fnc_eraseCache.sqf b/addons/common/functions/fnc_eraseCache.sqf index 0bcfab1dd4..79eb4444fa 100644 --- a/addons/common/functions/fnc_eraseCache.sqf +++ b/addons/common/functions/fnc_eraseCache.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: esteldunedain * Deletes a cached result @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_namespace", "_uid"]; diff --git a/addons/common/functions/fnc_errorMessage.sqf b/addons/common/functions/fnc_errorMessage.sqf index 1be21e0e58..c062c8836c 100644 --- a/addons/common/functions/fnc_errorMessage.sqf +++ b/addons/common/functions/fnc_errorMessage.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2, based on BIS_fnc_errorMsg and BIS_fnc_guiMessage by Karel Moricky (BI) * Stops simulation and opens a textbox with error message. @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" disableSerialization; endLoadingScreen; diff --git a/addons/common/functions/fnc_findUnloadPosition.sqf b/addons/common/functions/fnc_findUnloadPosition.sqf index 818b15a864..22e23c7f2b 100644 --- a/addons/common/functions/fnc_findUnloadPosition.sqf +++ b/addons/common/functions/fnc_findUnloadPosition.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: PabstMirror, ViperMaul * Find a safe place near a vehicle to unload something. @@ -18,8 +19,6 @@ * * Public: No */ -// #define DEBUG_MODE_FULL -#include "script_component.hpp" //Number of tests run (effects performance in worst case scenarior where nothing is found VERSUES reliably finding a pos): #define MAX_TESTS 75 diff --git a/addons/common/functions/fnc_firedEH.sqf b/addons/common/functions/fnc_firedEH.sqf index cbf49f626b..22a64f5c23 100644 --- a/addons/common/functions/fnc_firedEH.sqf +++ b/addons/common/functions/fnc_firedEH.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: esteldunedain * Unfied handling of weapon fire @@ -19,7 +20,6 @@ * * Public: No */ -#include "script_component.hpp" BEGIN_COUNTER(firedEH); diff --git a/addons/common/functions/fnc_fixCollision.sqf b/addons/common/functions/fnc_fixCollision.sqf index 569d7d1e87..ee61d83c35 100644 --- a/addons/common/functions/fnc_fixCollision.sqf +++ b/addons/common/functions/fnc_fixCollision.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Attempt to fix PhysX collisions causing unreasonable impact forces and damage. @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" // allowDamage requires local object if (!local _this) exitWith {}; diff --git a/addons/common/functions/fnc_fixFloating.sqf b/addons/common/functions/fnc_fixFloating.sqf index dc7608f9fe..03e7933e2e 100644 --- a/addons/common/functions/fnc_fixFloating.sqf +++ b/addons/common/functions/fnc_fixFloating.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Attempt to fix floating physx with disabled damage after setPosXXX commands. @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_object"]; diff --git a/addons/common/functions/fnc_fixLoweredRifleAnimation.sqf b/addons/common/functions/fnc_fixLoweredRifleAnimation.sqf index f804b087d2..d89a3978c6 100644 --- a/addons/common/functions/fnc_fixLoweredRifleAnimation.sqf +++ b/addons/common/functions/fnc_fixLoweredRifleAnimation.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Fixes the lowered rifle animation @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_unit"]; diff --git a/addons/common/functions/fnc_fixPosition.sqf b/addons/common/functions/fnc_fixPosition.sqf index 700d47dc19..ac152cf5c9 100644 --- a/addons/common/functions/fnc_fixPosition.sqf +++ b/addons/common/functions/fnc_fixPosition.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2, Jonpas * Fixes position of an object. E.g. moves object above ground and adjusts to terrain slope. Requires local object. @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" // setVectorUp requires local object if (!local _this) exitWith {}; diff --git a/addons/common/functions/fnc_getAllDefinedSetVariables.sqf b/addons/common/functions/fnc_getAllDefinedSetVariables.sqf index fd94ae8024..eeb96002d1 100644 --- a/addons/common/functions/fnc_getAllDefinedSetVariables.sqf +++ b/addons/common/functions/fnc_getAllDefinedSetVariables.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Glowbal * Returns an 2d array of all variables that have been set on the object @@ -19,7 +20,6 @@ * * Public: Yes */ -#include "script_component.hpp" params ["_object", ["_category", ""]]; diff --git a/addons/common/functions/fnc_getChildren.sqf b/addons/common/functions/fnc_getChildren.sqf index 56bc5d779c..998d0b4399 100644 --- a/addons/common/functions/fnc_getChildren.sqf +++ b/addons/common/functions/fnc_getChildren.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Obtain children of a config entry @@ -13,7 +14,6 @@ * * Public: Yes */ -#include "script_component.hpp" params ["_name", "_cfgClass"]; diff --git a/addons/common/functions/fnc_getConfigCommander.sqf b/addons/common/functions/fnc_getConfigCommander.sqf index 45d7d6389c..f3d011c57a 100644 --- a/addons/common/functions/fnc_getConfigCommander.sqf +++ b/addons/common/functions/fnc_getConfigCommander.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Get the commander config of a vehicles turret. @@ -13,7 +14,6 @@ * * Public: Yes */ -#include "script_component.hpp" params ["_vehicle"]; diff --git a/addons/common/functions/fnc_getConfigGunner.sqf b/addons/common/functions/fnc_getConfigGunner.sqf index c14eb85ed5..732256b8a1 100644 --- a/addons/common/functions/fnc_getConfigGunner.sqf +++ b/addons/common/functions/fnc_getConfigGunner.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Get the gunner config of a vehicles turret. @@ -13,7 +14,6 @@ * * Public: Yes */ -#include "script_component.hpp" params ["_vehicle"]; diff --git a/addons/common/functions/fnc_getDeathAnim.sqf b/addons/common/functions/fnc_getDeathAnim.sqf index 60aaf3bc0c..8fb72e0a21 100644 --- a/addons/common/functions/fnc_getDeathAnim.sqf +++ b/addons/common/functions/fnc_getDeathAnim.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Glowbal, PabstMirror * Get the death animation for the unit at current time @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_unit"]; diff --git a/addons/common/functions/fnc_getDefaultAnim.sqf b/addons/common/functions/fnc_getDefaultAnim.sqf index c2c0e1e7c4..9fea3e15df 100644 --- a/addons/common/functions/fnc_getDefaultAnim.sqf +++ b/addons/common/functions/fnc_getDefaultAnim.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Get the Defualt animation for the unit @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_unit"]; diff --git a/addons/common/functions/fnc_getDefinedVariable.sqf b/addons/common/functions/fnc_getDefinedVariable.sqf index 98267ab18f..7e20570cc1 100644 --- a/addons/common/functions/fnc_getDefinedVariable.sqf +++ b/addons/common/functions/fnc_getDefinedVariable.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Glowbal * Grabs a variable. If variable has not been set, attempts to use default defined value @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_unit", "_variable", "_defaultValue"]; diff --git a/addons/common/functions/fnc_getDefinedVariableDefault.sqf b/addons/common/functions/fnc_getDefinedVariableDefault.sqf index 88199f8ad3..edae4ef3ef 100644 --- a/addons/common/functions/fnc_getDefinedVariableDefault.sqf +++ b/addons/common/functions/fnc_getDefinedVariableDefault.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Glowbal * Get the variable default value @@ -13,7 +14,6 @@ * * Public: Yes */ -#include "script_component.hpp" params ["_varName"]; diff --git a/addons/common/functions/fnc_getDefinedVariableInfo.sqf b/addons/common/functions/fnc_getDefinedVariableInfo.sqf index e22ba193f6..f6aeca0df9 100644 --- a/addons/common/functions/fnc_getDefinedVariableInfo.sqf +++ b/addons/common/functions/fnc_getDefinedVariableInfo.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Glowbal * Get the variable Informations @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_varName"]; diff --git a/addons/common/functions/fnc_getDisplayConfigName.sqf b/addons/common/functions/fnc_getDisplayConfigName.sqf index d61800e5ce..f952d5c385 100644 --- a/addons/common/functions/fnc_getDisplayConfigName.sqf +++ b/addons/common/functions/fnc_getDisplayConfigName.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Get display classnames from config with given idd. @@ -15,7 +16,6 @@ * * Note: Really slow due to iteration through whole config. Meant for debugging. */ -#include "script_component.hpp" params ["_idd"]; diff --git a/addons/common/functions/fnc_getDoorTurrets.sqf b/addons/common/functions/fnc_getDoorTurrets.sqf index cfb0369d63..93b0360042 100644 --- a/addons/common/functions/fnc_getDoorTurrets.sqf +++ b/addons/common/functions/fnc_getDoorTurrets.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: bux578 * Returns all turret indecies of door gunners. @@ -13,7 +14,6 @@ * * Public: Yes */ -#include "script_component.hpp" params ["_vehicle"]; diff --git a/addons/common/functions/fnc_getFirstObjectIntersection.sqf b/addons/common/functions/fnc_getFirstObjectIntersection.sqf index 951f48ad16..1120707b2b 100644 --- a/addons/common/functions/fnc_getFirstObjectIntersection.sqf +++ b/addons/common/functions/fnc_getFirstObjectIntersection.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Ruthberg * Returns the the first intersection with terrain between two positions. @todo rewrite using lineIntersectsSurfaces? @@ -16,7 +17,6 @@ * * Public: Yes */ -#include "script_component.hpp" params ["_source", "_destination", "_accuracy"]; diff --git a/addons/common/functions/fnc_getFirstTerrainIntersection.sqf b/addons/common/functions/fnc_getFirstTerrainIntersection.sqf index cfb2397c95..989486b1ac 100644 --- a/addons/common/functions/fnc_getFirstTerrainIntersection.sqf +++ b/addons/common/functions/fnc_getFirstTerrainIntersection.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Ruthberg * Returns the the first intersection with an object between two positions. @todo rewrite using lineIntersectsSurfaces? @@ -16,7 +17,6 @@ * * Public: Yes */ -#include "script_component.hpp" params ["_source", "_destination", "_accuracy"]; diff --git a/addons/common/functions/fnc_getGunner.sqf b/addons/common/functions/fnc_getGunner.sqf index 85f4cef199..bd65c49ed4 100644 --- a/addons/common/functions/fnc_getGunner.sqf +++ b/addons/common/functions/fnc_getGunner.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Returns gunner using specified weapon type in vehicle. Only works if all turrets have different weapons. @@ -14,7 +15,6 @@ * * Public: Yes */ -#include "script_component.hpp" params [["_vehicle", objNull, [objNull]], ["_weapon", "", [""]]]; diff --git a/addons/common/functions/fnc_getInPosition.sqf b/addons/common/functions/fnc_getInPosition.sqf index a19a150704..a45b5546a6 100644 --- a/addons/common/functions/fnc_getInPosition.sqf +++ b/addons/common/functions/fnc_getInPosition.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Move unit into given vehicle position or switch to that position if the unit is already inside the vehicle. @@ -16,7 +17,6 @@ * * Public: Yes */ -#include "script_component.hpp" #define CANGETINDRIVER (isNull (driver _vehicle) || {!alive driver _vehicle}) && {!lockedDriver _vehicle} && {getNumber (_config >> "isUav") != 1} #define CANGETINTURRETINDEX (isNull (_vehicle turretUnit _turret) || {!alive (_vehicle turretUnit _turret)}) && {!(_vehicle lockedTurret _turret)} && {getNumber (_config >> "isUav") != 1} diff --git a/addons/common/functions/fnc_getItemType.sqf b/addons/common/functions/fnc_getItemType.sqf index eebb02f246..5212c6d57e 100644 --- a/addons/common/functions/fnc_getItemType.sqf +++ b/addons/common/functions/fnc_getItemType.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Returns item type of given classname. @@ -14,7 +15,6 @@ * * Public: Yes */ -#include "script_component.hpp" params ["_item"]; diff --git a/addons/common/functions/fnc_getLightProperties.sqf b/addons/common/functions/fnc_getLightProperties.sqf index ffaddfaf87..002868dd4e 100644 --- a/addons/common/functions/fnc_getLightProperties.sqf +++ b/addons/common/functions/fnc_getLightProperties.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Read properties of given vehicles light. @@ -18,7 +19,6 @@ * * Public: Yes */ -#include "script_component.hpp" params ["_vehicle", "_light"]; diff --git a/addons/common/functions/fnc_getLightPropertiesWeapon.sqf b/addons/common/functions/fnc_getLightPropertiesWeapon.sqf index dfcd483304..fca17dd51f 100644 --- a/addons/common/functions/fnc_getLightPropertiesWeapon.sqf +++ b/addons/common/functions/fnc_getLightPropertiesWeapon.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Read properties of given flashlight. @@ -17,7 +18,6 @@ * * Public: Yes */ -#include "script_component.hpp" params ["_weapon"]; diff --git a/addons/common/functions/fnc_getMGRSdata.sqf b/addons/common/functions/fnc_getMGRSdata.sqf index 4b4906aba3..f6ca81175b 100644 --- a/addons/common/functions/fnc_getMGRSdata.sqf +++ b/addons/common/functions/fnc_getMGRSdata.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: VKing * Gets the current map's MGRS grid zone designator and 100km square. @@ -17,7 +18,6 @@ * * Public: No */ -#include "script_component.hpp" params [["_map", worldName]]; diff --git a/addons/common/functions/fnc_getMapGridData.sqf b/addons/common/functions/fnc_getMapGridData.sqf index a33e49e7d0..c329c0b3f9 100644 --- a/addons/common/functions/fnc_getMapGridData.sqf +++ b/addons/common/functions/fnc_getMapGridData.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: PabstMirror * Finds real x/y offset and map step for a 10 digit grid @@ -15,7 +16,6 @@ * * Public: No */ -#include "script_component.hpp" GVAR(mapGridData) = []; diff --git a/addons/common/functions/fnc_getMapGridFromPos.sqf b/addons/common/functions/fnc_getMapGridFromPos.sqf index 8604d68fa6..defee04e57 100644 --- a/addons/common/functions/fnc_getMapGridFromPos.sqf +++ b/addons/common/functions/fnc_getMapGridFromPos.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: VKing, PabstMirror * Gets a 10-digit map grid for the given world position @@ -15,7 +16,6 @@ * * Public: Yes */ -#include "script_component.hpp" params ["_pos", ["_returnSingleString", false]]; diff --git a/addons/common/functions/fnc_getMapPosFromGrid.sqf b/addons/common/functions/fnc_getMapPosFromGrid.sqf index 18599f4ef4..d4469b56cc 100644 --- a/addons/common/functions/fnc_getMapPosFromGrid.sqf +++ b/addons/common/functions/fnc_getMapPosFromGrid.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: PabstMirror * Gets position from grid cords @@ -14,7 +15,6 @@ * * Public: Yes */ -#include "script_component.hpp" params ["_inputString", ["_getCenterOfGrid", true]]; diff --git a/addons/common/functions/fnc_getMarkerType.sqf b/addons/common/functions/fnc_getMarkerType.sqf index 3d5864cf08..ed551e4c1b 100644 --- a/addons/common/functions/fnc_getMarkerType.sqf +++ b/addons/common/functions/fnc_getMarkerType.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: KoffeinFlummi * Get the apropriate marker for a group. @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_group"]; diff --git a/addons/common/functions/fnc_getName.sqf b/addons/common/functions/fnc_getName.sqf index 4c49e8dc11..0bcce9d2c8 100644 --- a/addons/common/functions/fnc_getName.sqf +++ b/addons/common/functions/fnc_getName.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Returns the name of the object. Used to prevent issues with the name command. @@ -15,7 +16,6 @@ * * Public: Yes */ -#include "script_component.hpp" params ["_unit", ["_showEffective", false], ["_useRaw", false]]; diff --git a/addons/common/functions/fnc_getNumberMagazinesIn.sqf b/addons/common/functions/fnc_getNumberMagazinesIn.sqf index dd02d055e0..7beaf3ee37 100644 --- a/addons/common/functions/fnc_getNumberMagazinesIn.sqf +++ b/addons/common/functions/fnc_getNumberMagazinesIn.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Glowbal * Count magazines of unit. @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_unit", "_magazine"]; diff --git a/addons/common/functions/fnc_getPitchBankYaw.sqf b/addons/common/functions/fnc_getPitchBankYaw.sqf index 2a7a5c43e8..6cdec367de 100644 --- a/addons/common/functions/fnc_getPitchBankYaw.sqf +++ b/addons/common/functions/fnc_getPitchBankYaw.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: KoffeinFlummi * Returns pitch, bank, yaw for given vehicle in degrees. @@ -15,7 +16,6 @@ * * Public: Yes */ -#include "script_component.hpp" params ["_vehicle"]; diff --git a/addons/common/functions/fnc_getPylonTurret.sqf b/addons/common/functions/fnc_getPylonTurret.sqf index ff343173dd..b27e6eb582 100644 --- a/addons/common/functions/fnc_getPylonTurret.sqf +++ b/addons/common/functions/fnc_getPylonTurret.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: PabstMirror * Finds turret owner of a pylon. @@ -14,8 +15,6 @@ * * Public: No */ -// #define DEBUG_MODE_FULL -#include "script_component.hpp" params ["_vehicle", "_pylonIndex"]; diff --git a/addons/common/functions/fnc_getReflectorsWithSelections.sqf b/addons/common/functions/fnc_getReflectorsWithSelections.sqf index d166818494..97feca6e19 100644 --- a/addons/common/functions/fnc_getReflectorsWithSelections.sqf +++ b/addons/common/functions/fnc_getReflectorsWithSelections.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * @@ -17,7 +18,6 @@ * * Public: Yes */ -#include "script_component.hpp" params ["_vehicle"]; diff --git a/addons/common/functions/fnc_getSelectionsWithoutHitPoints.sqf b/addons/common/functions/fnc_getSelectionsWithoutHitPoints.sqf index 028024a94e..5c30245732 100644 --- a/addons/common/functions/fnc_getSelectionsWithoutHitPoints.sqf +++ b/addons/common/functions/fnc_getSelectionsWithoutHitPoints.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_vehicle"]; diff --git a/addons/common/functions/fnc_getSettingData.sqf b/addons/common/functions/fnc_getSettingData.sqf index 0eb76d9b7b..79ee4f3264 100644 --- a/addons/common/functions/fnc_getSettingData.sqf +++ b/addons/common/functions/fnc_getSettingData.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: esteldunedain * Returns the metadata of a setting if it exists @@ -22,7 +23,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_name"]; diff --git a/addons/common/functions/fnc_getStaminaBarControl.sqf b/addons/common/functions/fnc_getStaminaBarControl.sqf index cfdef5bb35..a426a7f933 100644 --- a/addons/common/functions/fnc_getStaminaBarControl.sqf +++ b/addons/common/functions/fnc_getStaminaBarControl.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Returns the control of the Stamina Bar from Arma 1.54. @@ -13,6 +14,5 @@ * * Public: No */ -#include "script_component.hpp" (uiNamespace getVariable [QGVAR(dlgStaminaBar), displayNull]) displayCtrl IDC_STAMINA_BAR diff --git a/addons/common/functions/fnc_getTargetAzimuthAndInclination.sqf b/addons/common/functions/fnc_getTargetAzimuthAndInclination.sqf index 98e7a5e3b2..3a4da0326f 100644 --- a/addons/common/functions/fnc_getTargetAzimuthAndInclination.sqf +++ b/addons/common/functions/fnc_getTargetAzimuthAndInclination.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Get players viewing direction and slope. @@ -14,7 +15,6 @@ * * Public: Yes */ -#include "script_component.hpp" private _position = ATLToASL positionCameraToWorld [0, 0, 0]; private _direction = ATLToASL positionCameraToWorld [0, 0, 1]; diff --git a/addons/common/functions/fnc_getTargetDistance.sqf b/addons/common/functions/fnc_getTargetDistance.sqf index c93941eb12..ff6d2cc198 100644 --- a/addons/common/functions/fnc_getTargetDistance.sqf +++ b/addons/common/functions/fnc_getTargetDistance.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: VKing * Get the distance to the next object the player is looking at. Used for laser distance measurements. @@ -15,7 +16,6 @@ * * Public: Yes */ -#include "script_component.hpp" params [["_accuracy",1], ["_maxDistance",5000], ["_minDistance",0]]; diff --git a/addons/common/functions/fnc_getTargetObject.sqf b/addons/common/functions/fnc_getTargetObject.sqf index 9ee1d26ff3..a15cd309be 100644 --- a/addons/common/functions/fnc_getTargetObject.sqf +++ b/addons/common/functions/fnc_getTargetObject.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Get the nearest object the player is looking at. Used for laser designator instead of cursorTarget. @@ -13,7 +14,6 @@ * * Public: Yes */ -#include "script_component.hpp" params ["_maxDistance"]; diff --git a/addons/common/functions/fnc_getTurnedOnLights.sqf b/addons/common/functions/fnc_getTurnedOnLights.sqf index f95a4bbf19..a40832d61d 100644 --- a/addons/common/functions/fnc_getTurnedOnLights.sqf +++ b/addons/common/functions/fnc_getTurnedOnLights.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Returns all turned on lights of any vehicle or streetlamp. @@ -13,7 +14,6 @@ * * Public: Yes */ -#include "script_component.hpp" params ["_vehicle"]; diff --git a/addons/common/functions/fnc_getTurretCommander.sqf b/addons/common/functions/fnc_getTurretCommander.sqf index 2f832438b5..49d0798d35 100644 --- a/addons/common/functions/fnc_getTurretCommander.sqf +++ b/addons/common/functions/fnc_getTurretCommander.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Get the turret index of a vehicles commander. @@ -13,7 +14,6 @@ * * Public: Yes */ -#include "script_component.hpp" params [["_vehicle", objNull, [objNull]]]; diff --git a/addons/common/functions/fnc_getTurretConfigPath.sqf b/addons/common/functions/fnc_getTurretConfigPath.sqf index 6af9aa62e3..aee865b3fb 100644 --- a/addons/common/functions/fnc_getTurretConfigPath.sqf +++ b/addons/common/functions/fnc_getTurretConfigPath.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Get the config path of a vehicles turret. @@ -14,7 +15,6 @@ * * Public: Yes */ -#include "script_component.hpp" params ["_config", "_turretIndex"]; diff --git a/addons/common/functions/fnc_getTurretCopilot.sqf b/addons/common/functions/fnc_getTurretCopilot.sqf index ef52200f6e..7207ac5b17 100644 --- a/addons/common/functions/fnc_getTurretCopilot.sqf +++ b/addons/common/functions/fnc_getTurretCopilot.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Get the turret index of a vehicles copilot. @@ -13,7 +14,6 @@ * * Public: Yes */ -#include "script_component.hpp" params [["_vehicle", objNull, [objNull]]]; diff --git a/addons/common/functions/fnc_getTurretDirection.sqf b/addons/common/functions/fnc_getTurretDirection.sqf index 7bec5cf3e6..78db8bc8e6 100644 --- a/addons/common/functions/fnc_getTurretDirection.sqf +++ b/addons/common/functions/fnc_getTurretDirection.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: jaynus * Get the absolute turret direction for FOV/PIP turret. @@ -15,7 +16,6 @@ * * Public: Yes */ -#include "script_component.hpp" params ["_vehicle", "_position"]; diff --git a/addons/common/functions/fnc_getTurretGunner.sqf b/addons/common/functions/fnc_getTurretGunner.sqf index e1846f96de..180a10914e 100644 --- a/addons/common/functions/fnc_getTurretGunner.sqf +++ b/addons/common/functions/fnc_getTurretGunner.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Get the turret index of a vehicles gunner. @@ -13,7 +14,6 @@ * * Public: Yes */ -#include "script_component.hpp" params [["_vehicle", objNull, [objNull]]]; diff --git a/addons/common/functions/fnc_getTurretIndex.sqf b/addons/common/functions/fnc_getTurretIndex.sqf index df2d540873..423f2e6289 100644 --- a/addons/common/functions/fnc_getTurretIndex.sqf +++ b/addons/common/functions/fnc_getTurretIndex.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Get the turret index of a units current turret. @@ -13,7 +14,6 @@ * * Public: Yes */ -#include "script_component.hpp" params [["_unit", objNull, [objNull]]]; diff --git a/addons/common/functions/fnc_getTurretsFFV.sqf b/addons/common/functions/fnc_getTurretsFFV.sqf index 885396b2bf..0ae04a3032 100644 --- a/addons/common/functions/fnc_getTurretsFFV.sqf +++ b/addons/common/functions/fnc_getTurretsFFV.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Get the turret indices of ffv turrets. @@ -13,7 +14,6 @@ * * Public: Yes */ -#include "script_component.hpp" params [["_vehicle", objNull, [objNull]]]; diff --git a/addons/common/functions/fnc_getTurretsOther.sqf b/addons/common/functions/fnc_getTurretsOther.sqf index 04750e98fd..c84b50d842 100644 --- a/addons/common/functions/fnc_getTurretsOther.sqf +++ b/addons/common/functions/fnc_getTurretsOther.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Get the turret indices of other turrets (not gunner, commander, copilot or ffv). @@ -13,7 +14,6 @@ * * Public: Yes */ -#include "script_component.hpp" params [["_vehicle", objNull, [objNull]]]; diff --git a/addons/common/functions/fnc_getUavControlPosition.sqf b/addons/common/functions/fnc_getUavControlPosition.sqf index c98004c7e7..9d6f6de9f2 100644 --- a/addons/common/functions/fnc_getUavControlPosition.sqf +++ b/addons/common/functions/fnc_getUavControlPosition.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: PabstMirror * Returns the seat position of a UAV that the unit is activly controling. @@ -16,7 +17,6 @@ * * Public: Yes */ -#include "script_component.hpp" params [["_unit", objNull, [objNull]]]; diff --git a/addons/common/functions/fnc_getVehicleCargo.sqf b/addons/common/functions/fnc_getVehicleCargo.sqf index 5279825008..82442700a2 100644 --- a/addons/common/functions/fnc_getVehicleCargo.sqf +++ b/addons/common/functions/fnc_getVehicleCargo.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Get the vehicle cargo positions. Codrivers and ffv positions are not listed. @@ -13,7 +14,6 @@ * * Public: Yes */ -#include "script_component.hpp" params [["_vehicle", objNull, [objNull]]]; diff --git a/addons/common/functions/fnc_getVehicleCodriver.sqf b/addons/common/functions/fnc_getVehicleCodriver.sqf index 8b0fd3be29..8deef3f9cd 100644 --- a/addons/common/functions/fnc_getVehicleCodriver.sqf +++ b/addons/common/functions/fnc_getVehicleCodriver.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Get the vehicle codriver positions. @@ -13,7 +14,6 @@ * * Public: Yes */ -#include "script_component.hpp" params [["_vehicle", objNull, [objNull]]]; diff --git a/addons/common/functions/fnc_getVehicleCrew.sqf b/addons/common/functions/fnc_getVehicleCrew.sqf index f0377671e9..af699d3b6b 100644 --- a/addons/common/functions/fnc_getVehicleCrew.sqf +++ b/addons/common/functions/fnc_getVehicleCrew.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Returns array of crew member objects. @@ -14,7 +15,6 @@ * * Public: Yes */ -#include "script_component.hpp" params ["_vehicle", ["_types", ["driver", "commander", "gunner", "turret", "cargo", "ffv"]]]; diff --git a/addons/common/functions/fnc_getVehicleIcon.sqf b/addons/common/functions/fnc_getVehicleIcon.sqf index fd556ed580..ce17a66bc2 100644 --- a/addons/common/functions/fnc_getVehicleIcon.sqf +++ b/addons/common/functions/fnc_getVehicleIcon.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: AACO * Function used to get the vehicle icon for provided object (cached for repeat use) @@ -13,8 +14,6 @@ * * Public: Yes */ - -#include "script_component.hpp" #define DEFAULT_TEXTURE "\A3\ui_f\data\Map\VehicleIcons\iconVehicle_ca.paa" params [["_object", objNull, [objNull, ""]]]; diff --git a/addons/common/functions/fnc_getVehicleUAVCrew.sqf b/addons/common/functions/fnc_getVehicleUAVCrew.sqf index 9804a14b68..45d151bc30 100644 --- a/addons/common/functions/fnc_getVehicleUAVCrew.sqf +++ b/addons/common/functions/fnc_getVehicleUAVCrew.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Returns array of uav dummy ais. @@ -13,7 +14,6 @@ * * Public: Yes */ -#include "script_component.hpp" params [["_vehicle", objNull, [objNull]]]; diff --git a/addons/common/functions/fnc_getVersion.sqf b/addons/common/functions/fnc_getVersion.sqf index e0f2ab9f6d..8f9e39e360 100644 --- a/addons/common/functions/fnc_getVersion.sqf +++ b/addons/common/functions/fnc_getVersion.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Glowbal * Get the version number of the current ACE build. @@ -13,6 +14,5 @@ * * Public: Yes */ -#include "script_component.hpp" getText (configFile >> "CfgPatches" >> "ACE_main" >> "version") // return diff --git a/addons/common/functions/fnc_getWeaponAzimuthAndInclination.sqf b/addons/common/functions/fnc_getWeaponAzimuthAndInclination.sqf index 604a89b9f8..83df3782e4 100644 --- a/addons/common/functions/fnc_getWeaponAzimuthAndInclination.sqf +++ b/addons/common/functions/fnc_getWeaponAzimuthAndInclination.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Get local players weapon direction and slope. @@ -14,7 +15,6 @@ * * Public: Yes */ -#include "script_component.hpp" params ["_weapon"]; diff --git a/addons/common/functions/fnc_getWeaponIndex.sqf b/addons/common/functions/fnc_getWeaponIndex.sqf index a881233469..b4e94e678f 100644 --- a/addons/common/functions/fnc_getWeaponIndex.sqf +++ b/addons/common/functions/fnc_getWeaponIndex.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Get the index of the weapon. @@ -18,7 +19,6 @@ * * Public: Yes */ - #include "script_component.hpp" params ["_unit", "_weapon"]; diff --git a/addons/common/functions/fnc_getWeaponModes.sqf b/addons/common/functions/fnc_getWeaponModes.sqf index ede86ac842..93a8614f7f 100644 --- a/addons/common/functions/fnc_getWeaponModes.sqf +++ b/addons/common/functions/fnc_getWeaponModes.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Get the available firing modes of a weapon. Will ignore the AI helper modes. @@ -13,7 +14,6 @@ * * Public: Yes */ -#include "script_component.hpp" params [["_weapon", "", [""]]]; diff --git a/addons/common/functions/fnc_getWeaponMuzzles.sqf b/addons/common/functions/fnc_getWeaponMuzzles.sqf index b0b0533721..264ad2b405 100644 --- a/addons/common/functions/fnc_getWeaponMuzzles.sqf +++ b/addons/common/functions/fnc_getWeaponMuzzles.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Get the muzzles of a weapon. @@ -13,7 +14,6 @@ * * Public: Yes */ -#include "script_component.hpp" params [["_weapon", "", [""]]]; diff --git a/addons/common/functions/fnc_getWeaponState.sqf b/addons/common/functions/fnc_getWeaponState.sqf index 772a5058b9..219f52d369 100644 --- a/addons/common/functions/fnc_getWeaponState.sqf +++ b/addons/common/functions/fnc_getWeaponState.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Return current state of the weapon. Attachments and magazines with ammo. @@ -17,7 +18,6 @@ * * Public: Yes */ -#include "script_component.hpp" params [["_unit", objNull, [objNull]], ["_weapon", nil, [""]]]; diff --git a/addons/common/functions/fnc_getWeaponType.sqf b/addons/common/functions/fnc_getWeaponType.sqf index b53f23d514..1b3e8fd331 100644 --- a/addons/common/functions/fnc_getWeaponType.sqf +++ b/addons/common/functions/fnc_getWeaponType.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Check what kind of weapon the given class name is. @@ -17,7 +18,6 @@ * * Public: Yes */ -#include "script_component.hpp" params ["_weapon"]; diff --git a/addons/common/functions/fnc_getWeight.sqf b/addons/common/functions/fnc_getWeight.sqf index 6c3a224582..5fc92b7703 100644 --- a/addons/common/functions/fnc_getWeight.sqf +++ b/addons/common/functions/fnc_getWeight.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Returns the weight (from the loadAbs command) in lbs/kg (based on user option) @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_unit", ["_useImperial", false, [false, 0]]]; diff --git a/addons/common/functions/fnc_getWindDirection.sqf b/addons/common/functions/fnc_getWindDirection.sqf index f35047fc30..cb10e18f85 100644 --- a/addons/common/functions/fnc_getWindDirection.sqf +++ b/addons/common/functions/fnc_getWindDirection.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Get the compass direction the wind is blowing from. @@ -13,7 +14,6 @@ * * Public: Yes */ -#include "script_component.hpp" localize ([ LSTRING(S), diff --git a/addons/common/functions/fnc_getZoom.sqf b/addons/common/functions/fnc_getZoom.sqf index 9c3f7987a4..26144da81e 100644 --- a/addons/common/functions/fnc_getZoom.sqf +++ b/addons/common/functions/fnc_getZoom.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Returns a value depending on current zoom level. @@ -13,7 +14,6 @@ * * Public: Yes */ -#include "script_component.hpp" if (!hasInterface) exitWith {0}; diff --git a/addons/common/functions/fnc_goKneeling.sqf b/addons/common/functions/fnc_goKneeling.sqf index 5d45a3f400..e9317cc74e 100644 --- a/addons/common/functions/fnc_goKneeling.sqf +++ b/addons/common/functions/fnc_goKneeling.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Move unit to kneeling position (only if not yet prone and not underwater). @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_unit"]; diff --git a/addons/common/functions/fnc_hadamardProduct.sqf b/addons/common/functions/fnc_hadamardProduct.sqf index 20173e7d0b..07295dcef9 100644 --- a/addons/common/functions/fnc_hadamardProduct.sqf +++ b/addons/common/functions/fnc_hadamardProduct.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: KoffeinFlummi * Returns the Hadamard Product of two vectors. @@ -15,7 +16,6 @@ * * Public: Yes */ -#include "script_component.hpp" params ["_vector1", "_vector2"]; diff --git a/addons/common/functions/fnc_handleEngine.sqf b/addons/common/functions/fnc_handleEngine.sqf index 55696a679e..40574c69c6 100644 --- a/addons/common/functions/fnc_handleEngine.sqf +++ b/addons/common/functions/fnc_handleEngine.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: BaerMitUmlaut * Blocks turning on the vehicles engine if set by the status effect handler. @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_vehicle", "_engineOn"]; if (local _vehicle && {_engineOn} && {_vehicle getVariable [QGVAR(blockEngine), false]}) then { diff --git a/addons/common/functions/fnc_handleModifierKey.sqf b/addons/common/functions/fnc_handleModifierKey.sqf index 094ec278f4..1440a7849e 100644 --- a/addons/common/functions/fnc_handleModifierKey.sqf +++ b/addons/common/functions/fnc_handleModifierKey.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Handles key down event for modifier key. @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" if (_this select 3) then {ACE_modifier = 1}; diff --git a/addons/common/functions/fnc_handleModifierKeyUp.sqf b/addons/common/functions/fnc_handleModifierKeyUp.sqf index 97df636050..9ab3cadf7d 100644 --- a/addons/common/functions/fnc_handleModifierKeyUp.sqf +++ b/addons/common/functions/fnc_handleModifierKeyUp.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Handles key up event for modifier key. @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" ACE_modifier = 0; diff --git a/addons/common/functions/fnc_hasHatch.sqf b/addons/common/functions/fnc_hasHatch.sqf index b750d01b85..90053f43d9 100644 --- a/addons/common/functions/fnc_hasHatch.sqf +++ b/addons/common/functions/fnc_hasHatch.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Check if unit is in a vehicle position where it can turn in or out. @@ -13,7 +14,6 @@ * * Public: Yes */ -#include "script_component.hpp" params [["_unit", objNull, [objNull]]]; diff --git a/addons/common/functions/fnc_hasItem.sqf b/addons/common/functions/fnc_hasItem.sqf index 04d3dd0902..9ae4e7ec63 100644 --- a/addons/common/functions/fnc_hasItem.sqf +++ b/addons/common/functions/fnc_hasItem.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Glowbal * Check if unit has item. Note: case-sensitive. @@ -14,7 +15,6 @@ * * Public: Yes */ -#include "script_component.hpp" params [["_unit", objNull, [objNull]], ["_item", "", [""]]]; diff --git a/addons/common/functions/fnc_hasMagazine.sqf b/addons/common/functions/fnc_hasMagazine.sqf index 4ad40bf959..fceee87c11 100644 --- a/addons/common/functions/fnc_hasMagazine.sqf +++ b/addons/common/functions/fnc_hasMagazine.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Glowbal * Check if given unit has a magazine of given classname @@ -16,7 +17,6 @@ * * Note: Case sensitive */ -#include "script_component.hpp" params [["_unit", objNull, [objNull]], ["_magazine", "", [""]]]; diff --git a/addons/common/functions/fnc_headBugFix.sqf b/addons/common/functions/fnc_headBugFix.sqf index fca04c234b..edea791f24 100644 --- a/addons/common/functions/fnc_headBugFix.sqf +++ b/addons/common/functions/fnc_headBugFix.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: rocko * Fixes animation issues that may get you stuck @@ -15,7 +16,6 @@ * * Note: Has to be spawned not called */ -#include "script_component.hpp" private _unit = ACE_player; private _anim = animationState _unit; diff --git a/addons/common/functions/fnc_hideUnit.sqf b/addons/common/functions/fnc_hideUnit.sqf index 838bd4246e..e67f68dcc3 100644 --- a/addons/common/functions/fnc_hideUnit.sqf +++ b/addons/common/functions/fnc_hideUnit.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: SilentSpike (based on muteUnit) * Globally hides a unit. This allows the handling of more than one reason to hide an object globally. @@ -14,7 +15,6 @@ * * Public: Yes */ -#include "script_component.hpp" params ["_unit", "_reason"]; diff --git a/addons/common/functions/fnc_inTransitionAnim.sqf b/addons/common/functions/fnc_inTransitionAnim.sqf index a127fad005..5999bcbe27 100644 --- a/addons/common/functions/fnc_inTransitionAnim.sqf +++ b/addons/common/functions/fnc_inTransitionAnim.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Check if given unit is in a transitional animation @@ -13,6 +14,5 @@ * * Public: Yes */ -#include "script_component.hpp" getNumber (configFile >> "CfgMovesMaleSdr" >> "States" >> animationState (_this select 0) >> "looped") == 0 // return diff --git a/addons/common/functions/fnc_interpolateFromArray.sqf b/addons/common/functions/fnc_interpolateFromArray.sqf index 9c63a9798c..851d368d37 100644 --- a/addons/common/functions/fnc_interpolateFromArray.sqf +++ b/addons/common/functions/fnc_interpolateFromArray.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Interpolates between two set points in a curve. @@ -14,7 +15,6 @@ * * Public: Yes */ -#include "script_component.hpp" params ["_array", "_value"]; diff --git a/addons/common/functions/fnc_isAwake.sqf b/addons/common/functions/fnc_isAwake.sqf index d7f0b79149..916f545685 100644 --- a/addons/common/functions/fnc_isAwake.sqf +++ b/addons/common/functions/fnc_isAwake.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Glowbal * Check if unit is awake. Will be false when death or unit is unconscious. @@ -13,7 +14,6 @@ * * Public: Yes */ -#include "script_component.hpp" params ["_unit"]; diff --git a/addons/common/functions/fnc_isEOD.sqf b/addons/common/functions/fnc_isEOD.sqf index 2a6e04247c..226d315e36 100644 --- a/addons/common/functions/fnc_isEOD.sqf +++ b/addons/common/functions/fnc_isEOD.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Garth de Wet (LH) * Checks whether the passed unit is an explosive specialist. @@ -16,7 +17,6 @@ * * Public: Yes */ -#include "script_component.hpp" params ["_unit"]; diff --git a/addons/common/functions/fnc_isEngineer.sqf b/addons/common/functions/fnc_isEngineer.sqf index 96a00970f6..1805bb50e5 100644 --- a/addons/common/functions/fnc_isEngineer.sqf +++ b/addons/common/functions/fnc_isEngineer.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: marc_book, edited by commy2 * Checks if a unit is an engineer. @@ -13,7 +14,6 @@ * * Public: Yes */ -#include "script_component.hpp" params ["_unit"]; diff --git a/addons/common/functions/fnc_isFeatureCameraActive.sqf b/addons/common/functions/fnc_isFeatureCameraActive.sqf index 1875b08681..00e3db699a 100644 --- a/addons/common/functions/fnc_isFeatureCameraActive.sqf +++ b/addons/common/functions/fnc_isFeatureCameraActive.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Sniperwolf572 * Checks if one of the following common feature cameras is active: @@ -22,7 +23,6 @@ * * Public: Yes */ -#include "script_component.hpp" !( isNull curatorCamera && // Curator diff --git a/addons/common/functions/fnc_isInBuilding.sqf b/addons/common/functions/fnc_isInBuilding.sqf index 98f092e762..4b843fcea4 100644 --- a/addons/common/functions/fnc_isInBuilding.sqf +++ b/addons/common/functions/fnc_isInBuilding.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Check if the unit is in a building. Will return true if the unit is sitting in a bush. @@ -13,7 +14,6 @@ * * Public: Yes */ -#include "script_component.hpp" #define CHECK_DISTANCE 10 diff --git a/addons/common/functions/fnc_isMedic.sqf b/addons/common/functions/fnc_isMedic.sqf index 2a0d0dc520..9618a15548 100644 --- a/addons/common/functions/fnc_isMedic.sqf +++ b/addons/common/functions/fnc_isMedic.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: SilentSpike * Check if a unit is a medic @@ -14,8 +15,6 @@ * Public: Yes */ -#include "script_component.hpp" - params ["_unit"]; private _isMedic = _unit getVariable [QEGVAR(medical,medicClass), getNumber (configFile >> "CfgVehicles" >> typeOf _unit >> "attendant")]; diff --git a/addons/common/functions/fnc_isModLoaded.sqf b/addons/common/functions/fnc_isModLoaded.sqf index f740f58b0b..b69086e39d 100644 --- a/addons/common/functions/fnc_isModLoaded.sqf +++ b/addons/common/functions/fnc_isModLoaded.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Glowbal * Check in cfgPatches if modification is loaded @@ -13,7 +14,6 @@ * * Public: Yes */ -#include "script_component.hpp" params [["_modName", "", [""]]]; diff --git a/addons/common/functions/fnc_isPlayer.sqf b/addons/common/functions/fnc_isPlayer.sqf index fe265bd925..8aabbd3bc0 100644 --- a/addons/common/functions/fnc_isPlayer.sqf +++ b/addons/common/functions/fnc_isPlayer.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: bux578, commy2, akalegman * Checks if a unit is a player / curator controlled unit. @@ -15,7 +16,6 @@ * * Public: Yes */ -#include "script_component.hpp" params ["_unit", ["_excludeRemoteControlled", false]]; diff --git a/addons/common/functions/fnc_isSwimming.sqf b/addons/common/functions/fnc_isSwimming.sqf index 8aee92ad81..c7b290a65c 100644 --- a/addons/common/functions/fnc_isSwimming.sqf +++ b/addons/common/functions/fnc_isSwimming.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: das attorney, Jonpas * Check if unit is swimming (surface swimming or diving). @@ -13,7 +14,6 @@ * * Public: Yes */ -#include "script_component.hpp" params [["_unit", objNull, [objNull]]]; diff --git a/addons/common/functions/fnc_lightIntensityFromObject.sqf b/addons/common/functions/fnc_lightIntensityFromObject.sqf index 4991370f5d..538246b537 100644 --- a/addons/common/functions/fnc_lightIntensityFromObject.sqf +++ b/addons/common/functions/fnc_lightIntensityFromObject.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Calculate light intensity object 1 recieves from object 2 @@ -14,7 +15,6 @@ * * Public: Yes */ -#include "script_component.hpp" params ["_unit", "_lightSource"]; diff --git a/addons/common/functions/fnc_loadPerson.sqf b/addons/common/functions/fnc_loadPerson.sqf index 4fc6245b5a..466387cc72 100644 --- a/addons/common/functions/fnc_loadPerson.sqf +++ b/addons/common/functions/fnc_loadPerson.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Glowbal * Loads a specified unit into any nearby vehicle, or _vehicle parameter. @@ -15,7 +16,6 @@ * * Public: Yes */ -#include "script_component.hpp" #define GROUP_SWITCH_ID QFUNC(loadPerson) diff --git a/addons/common/functions/fnc_loadPersonLocal.sqf b/addons/common/functions/fnc_loadPersonLocal.sqf index f6a759add8..109e7e8e77 100644 --- a/addons/common/functions/fnc_loadPersonLocal.sqf +++ b/addons/common/functions/fnc_loadPersonLocal.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Glowbal * Load a person, local @@ -15,7 +16,6 @@ * * Public: Yes */ -#include "script_component.hpp" params ["_unit", "_vehicle", "_caller"]; diff --git a/addons/common/functions/fnc_moduleCheckPBOs.sqf b/addons/common/functions/fnc_moduleCheckPBOs.sqf index 6cdfd0d811..583441d4d2 100644 --- a/addons/common/functions/fnc_moduleCheckPBOs.sqf +++ b/addons/common/functions/fnc_moduleCheckPBOs.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: KoffeinFlummi * Initializes the check-PBOs module. @@ -15,7 +16,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_logic", "_units", "_activated"]; diff --git a/addons/common/functions/fnc_moduleLSDVehicles.sqf b/addons/common/functions/fnc_moduleLSDVehicles.sqf index cecc8983a1..97ce3833eb 100644 --- a/addons/common/functions/fnc_moduleLSDVehicles.sqf +++ b/addons/common/functions/fnc_moduleLSDVehicles.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: KoffeinFlummi, joko // Jonas * Nothing to see here, move along. @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" params ["", "_units", "_activated"]; diff --git a/addons/common/functions/fnc_monitor.sqf b/addons/common/functions/fnc_monitor.sqf index 591e923d1b..17d3087c53 100644 --- a/addons/common/functions/fnc_monitor.sqf +++ b/addons/common/functions/fnc_monitor.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * hint retun value of given function every frame @@ -13,7 +14,6 @@ * * Public: Yes */ -#include "script_component.hpp" if (!isNil QGVAR(MonitorFnc)) then { [GVAR(MonitorFnc)] call CBA_fnc_removePerFrameHandler; diff --git a/addons/common/functions/fnc_muteUnit.sqf b/addons/common/functions/fnc_muteUnit.sqf index 25106c979f..fe65a56492 100644 --- a/addons/common/functions/fnc_muteUnit.sqf +++ b/addons/common/functions/fnc_muteUnit.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Mutes the unit. It won't trigger auto generated chat messages either. @@ -14,7 +15,6 @@ * * Public: Yes */ -#include "script_component.hpp" params ["_unit", "_reason"]; diff --git a/addons/common/functions/fnc_muteUnitHandleInitPost.sqf b/addons/common/functions/fnc_muteUnitHandleInitPost.sqf index 4e6ac7cbaf..4681ca73aa 100644 --- a/addons/common/functions/fnc_muteUnitHandleInitPost.sqf +++ b/addons/common/functions/fnc_muteUnitHandleInitPost.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Applies speaker changes on init post. Used because setSpeaker is broken on init. @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_unit"]; diff --git a/addons/common/functions/fnc_muteUnitHandleRespawn.sqf b/addons/common/functions/fnc_muteUnitHandleRespawn.sqf index 6e93e40ef6..b507e7ec1d 100644 --- a/addons/common/functions/fnc_muteUnitHandleRespawn.sqf +++ b/addons/common/functions/fnc_muteUnitHandleRespawn.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Applies speaker changes on respawn. Used because speaker is respawning breaks the speaker on non-local clients. Also resets the public object variable (broken for JIP clients, that join after respawn) @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_unit"]; diff --git a/addons/common/functions/fnc_nearestVehiclesFreeSeat.sqf b/addons/common/functions/fnc_nearestVehiclesFreeSeat.sqf index 080499d9cf..30b0594b30 100644 --- a/addons/common/functions/fnc_nearestVehiclesFreeSeat.sqf +++ b/addons/common/functions/fnc_nearestVehiclesFreeSeat.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: 654wak654 * Returns a list of vehicles near given unit that the unit can be a passenger in. @@ -14,7 +15,6 @@ * * Public: Yes */ -#include "script_component.hpp" params ["_unit", ["_distance", 10]]; diff --git a/addons/common/functions/fnc_numberToDigits.sqf b/addons/common/functions/fnc_numberToDigits.sqf index 2cedb2a339..ff4cd23977 100644 --- a/addons/common/functions/fnc_numberToDigits.sqf +++ b/addons/common/functions/fnc_numberToDigits.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2, SilentSpike * Transforms a number to an array of the correspondending digits. @@ -14,7 +15,6 @@ * * Public: Yes */ -#include "script_component.hpp" params ["_number", "_minLength"]; diff --git a/addons/common/functions/fnc_numberToDigitsString.sqf b/addons/common/functions/fnc_numberToDigitsString.sqf index 3b54a4cf0c..35b0d0fd9b 100644 --- a/addons/common/functions/fnc_numberToDigitsString.sqf +++ b/addons/common/functions/fnc_numberToDigitsString.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Transforms a number to an string of the correspondending digits. @@ -14,7 +15,6 @@ * * Public: Yes */ -#include "script_component.hpp" ACE_DEPRECATED(QFUNC(numberToDigitsString),"3.14.0","CBA_fnc_formatNumber"); diff --git a/addons/common/functions/fnc_numberToString.sqf b/addons/common/functions/fnc_numberToString.sqf index 8ca22bca88..8d5aaa09a1 100644 --- a/addons/common/functions/fnc_numberToString.sqf +++ b/addons/common/functions/fnc_numberToString.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Converts a number to a string without losing as much precission as str or format. @@ -13,7 +14,6 @@ * * Public: Yes */ -#include "script_component.hpp" params ["_number"]; diff --git a/addons/common/functions/fnc_onAnswerRequest.sqf b/addons/common/functions/fnc_onAnswerRequest.sqf index 38f35f1968..5613e5d1bc 100644 --- a/addons/common/functions/fnc_onAnswerRequest.sqf +++ b/addons/common/functions/fnc_onAnswerRequest.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Glowbal * N/A @@ -15,7 +16,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_unit", "_id", "_accepted"]; diff --git a/addons/common/functions/fnc_owned.sqf b/addons/common/functions/fnc_owned.sqf index a8c3f737e7..e216b10c39 100644 --- a/addons/common/functions/fnc_owned.sqf +++ b/addons/common/functions/fnc_owned.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Counterpart of ace_common_fnc_claim. Check if the given object is claimed by another unit. @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_target"]; diff --git a/addons/common/functions/fnc_parseList.sqf b/addons/common/functions/fnc_parseList.sqf index 40b16c1aa5..d3e2871f44 100644 --- a/addons/common/functions/fnc_parseList.sqf +++ b/addons/common/functions/fnc_parseList.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Glowbal, Jonpas * Makes a list from a string using comma as a delimiter, optionally trim or remove whitespace and check each for object existence. @@ -15,7 +16,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_list", ["_removeWhitespace", false], ["_checkNil", false]]; diff --git a/addons/common/functions/fnc_playConfigSound3D.sqf b/addons/common/functions/fnc_playConfigSound3D.sqf index fde3848cf8..ee8d81f2c9 100644 --- a/addons/common/functions/fnc_playConfigSound3D.sqf +++ b/addons/common/functions/fnc_playConfigSound3D.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: esteldunedain * Plays a sound defined in CfgSounds using playSound3D, with global effect. @@ -16,7 +17,6 @@ * * Public: Yes */ -#include "script_component.hpp" params ["_soundClass", "_posASL", "_volume", "_distance"]; diff --git a/addons/common/functions/fnc_player.sqf b/addons/common/functions/fnc_player.sqf index 54510be05e..d691741e53 100644 --- a/addons/common/functions/fnc_player.sqf +++ b/addons/common/functions/fnc_player.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: bux578, commy2 * Returns the player or curator controlled unit. @@ -14,6 +15,5 @@ * * Public: Yes */ -#include "script_component.hpp" missionNamespace getVariable ["bis_fnc_moduleRemoteControl_unit", player] diff --git a/addons/common/functions/fnc_playerSide.sqf b/addons/common/functions/fnc_playerSide.sqf index dd6b7e8b2f..6d42df6511 100644 --- a/addons/common/functions/fnc_playerSide.sqf +++ b/addons/common/functions/fnc_playerSide.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Return the current side of the player @@ -13,6 +14,5 @@ * * Public: Yes */ -#include "script_component.hpp" side group ACE_player diff --git a/addons/common/functions/fnc_positionToASL.sqf b/addons/common/functions/fnc_positionToASL.sqf index 297e89ee2b..8d0586e097 100644 --- a/addons/common/functions/fnc_positionToASL.sqf +++ b/addons/common/functions/fnc_positionToASL.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: esteldunedain * Converts Arma "Position" to ASL @@ -15,7 +16,6 @@ * * Public: Yes */ -#include "script_component.hpp" if (surfaceIsWater _this) then { _this diff --git a/addons/common/functions/fnc_progressBar.sqf b/addons/common/functions/fnc_progressBar.sqf index 37fb17190a..9b52796569 100644 --- a/addons/common/functions/fnc_progressBar.sqf +++ b/addons/common/functions/fnc_progressBar.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2, Glowbal, PabstMirror * Draw progress bar and execute given function if succesful. @@ -20,7 +21,6 @@ * * Public: Yes */ -#include "script_component.hpp" params ["_totalTime", "_args", "_onFinish", "_onFail", ["_localizedTitle", ""], ["_condition", {true}], ["_exceptions", []]]; diff --git a/addons/common/functions/fnc_readSettingFromModule.sqf b/addons/common/functions/fnc_readSettingFromModule.sqf index 0e40f55412..d61671d604 100644 --- a/addons/common/functions/fnc_readSettingFromModule.sqf +++ b/addons/common/functions/fnc_readSettingFromModule.sqf @@ -1,3 +1,5 @@ +#define DEBUG_MODE_FULL +#include "script_component.hpp" /* * Author: esteldunedain * Reads a setting value from a module, set it and force it. Logs if the setting is missing from the module. @@ -16,8 +18,6 @@ * * Public: No */ -#define DEBUG_MODE_FULL -#include "script_component.hpp" params ["_logic", "_settingName", "_moduleVariable"]; diff --git a/addons/common/functions/fnc_readSettingsFromParamsArray.sqf b/addons/common/functions/fnc_readSettingsFromParamsArray.sqf index d80bd92fb4..277ba23a5d 100644 --- a/addons/common/functions/fnc_readSettingsFromParamsArray.sqf +++ b/addons/common/functions/fnc_readSettingsFromParamsArray.sqf @@ -1,3 +1,5 @@ +#define DEBUG_MODE_FULL +#include "script_component.hpp" /* * Author: PabstMirror * Read settins from paramsArray that have a ACE_setting = 1. @@ -14,8 +16,6 @@ * * Public: No */ -#define DEBUG_MODE_FULL -#include "script_component.hpp" //paramsArray is a normal variable not a command private _paramsArray = missionnamespace getVariable ["paramsArray", []]; diff --git a/addons/common/functions/fnc_receiveRequest.sqf b/addons/common/functions/fnc_receiveRequest.sqf index a3f10550af..e2f25ed734 100644 --- a/addons/common/functions/fnc_receiveRequest.sqf +++ b/addons/common/functions/fnc_receiveRequest.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Glowbal * N/A @@ -17,7 +18,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_caller", "_target", "_requestID", "_requestMessage", "_callBack"]; diff --git a/addons/common/functions/fnc_removeActionEventHandler.sqf b/addons/common/functions/fnc_removeActionEventHandler.sqf index db711b77f4..e536adc191 100644 --- a/addons/common/functions/fnc_removeActionEventHandler.sqf +++ b/addons/common/functions/fnc_removeActionEventHandler.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Remove an addAction event from a unit. @@ -15,7 +16,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_unit", "_action", "_id"]; diff --git a/addons/common/functions/fnc_removeActionMenuEventHandler.sqf b/addons/common/functions/fnc_removeActionMenuEventHandler.sqf index 9fb8ee6588..ed072db89a 100644 --- a/addons/common/functions/fnc_removeActionMenuEventHandler.sqf +++ b/addons/common/functions/fnc_removeActionMenuEventHandler.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Remove an addAction menu event from a unit. @@ -15,7 +16,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_unit", "_action", "_id"]; diff --git a/addons/common/functions/fnc_removeCanInteractWithCondition.sqf b/addons/common/functions/fnc_removeCanInteractWithCondition.sqf index 8c7c72d861..4538a67fb0 100644 --- a/addons/common/functions/fnc_removeCanInteractWithCondition.sqf +++ b/addons/common/functions/fnc_removeCanInteractWithCondition.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Remove a condition that gets checked by ace_common_fnc_canInteractWith. @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_conditionName"]; diff --git a/addons/common/functions/fnc_removeMapMarkerCreatedEventHandler.sqf b/addons/common/functions/fnc_removeMapMarkerCreatedEventHandler.sqf index bda7877a70..2a95b0f4d7 100644 --- a/addons/common/functions/fnc_removeMapMarkerCreatedEventHandler.sqf +++ b/addons/common/functions/fnc_removeMapMarkerCreatedEventHandler.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Remove a map marker creation event handler. @@ -13,7 +14,6 @@ * * Public: Yes */ -#include "script_component.hpp" params ["_id"]; diff --git a/addons/common/functions/fnc_removeSpecificMagazine.sqf b/addons/common/functions/fnc_removeSpecificMagazine.sqf index 73fe910673..141aa28526 100644 --- a/addons/common/functions/fnc_removeSpecificMagazine.sqf +++ b/addons/common/functions/fnc_removeSpecificMagazine.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: esteldunedain * Removes a magazine from the unit that has an specific ammo count @@ -15,7 +16,6 @@ * * Public: No */ -#include "script_component.hpp" params [["_unit", objNull, [objNull]], ["_magazineType", "", [""]], ["_ammoCount", 0, [0]]]; diff --git a/addons/common/functions/fnc_removeSyncedEventHandler.sqf b/addons/common/functions/fnc_removeSyncedEventHandler.sqf index f256c21203..5e9eb48aa7 100644 --- a/addons/common/functions/fnc_removeSyncedEventHandler.sqf +++ b/addons/common/functions/fnc_removeSyncedEventHandler.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: jaynus * Remove a synced event handler @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_name"]; diff --git a/addons/common/functions/fnc_requestCallback.sqf b/addons/common/functions/fnc_requestCallback.sqf index e28ff9439f..6729c19a6d 100644 --- a/addons/common/functions/fnc_requestCallback.sqf +++ b/addons/common/functions/fnc_requestCallback.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Glowbal * N/A @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_info", "_accepted"]; diff --git a/addons/common/functions/fnc_requestSyncedEvent.sqf b/addons/common/functions/fnc_requestSyncedEvent.sqf index fd277c4b36..44b633b9de 100644 --- a/addons/common/functions/fnc_requestSyncedEvent.sqf +++ b/addons/common/functions/fnc_requestSyncedEvent.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: jaynus * Send a request to synchronize an event name from the client->server. Execute on client only. @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_eventName"]; diff --git a/addons/common/functions/fnc_resetAllDefaults.sqf b/addons/common/functions/fnc_resetAllDefaults.sqf index 367c72d5e9..dc638e4947 100644 --- a/addons/common/functions/fnc_resetAllDefaults.sqf +++ b/addons/common/functions/fnc_resetAllDefaults.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Glowbal * reset all variables that have been defined @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_unit"]; diff --git a/addons/common/functions/fnc_restoreVariablesJIP.sqf b/addons/common/functions/fnc_restoreVariablesJIP.sqf index 921be28165..0c0617be77 100644 --- a/addons/common/functions/fnc_restoreVariablesJIP.sqf +++ b/addons/common/functions/fnc_restoreVariablesJIP.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Called from respawn eventhandler. Resets all public object namespace variables that are added via FUNC(setVariableJIP). @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_unit"]; diff --git a/addons/common/functions/fnc_runAfterSettingsInit.sqf b/addons/common/functions/fnc_runAfterSettingsInit.sqf index 15631a626a..f989501dd5 100644 --- a/addons/common/functions/fnc_runAfterSettingsInit.sqf +++ b/addons/common/functions/fnc_runAfterSettingsInit.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: PabstMirror * Executes code after setting are initilized. @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_func", "_params"]; diff --git a/addons/common/functions/fnc_runTests.sqf b/addons/common/functions/fnc_runTests.sqf index 538f321765..4e937d87b6 100644 --- a/addons/common/functions/fnc_runTests.sqf +++ b/addons/common/functions/fnc_runTests.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: PabstMirror * Run test functions. @@ -14,7 +15,6 @@ * * Public: Yes */ -#include "script_component.hpp" params [["_specificTest", "#all", [""]]]; diff --git a/addons/common/functions/fnc_sanitizeString.sqf b/addons/common/functions/fnc_sanitizeString.sqf index 6e0db2cda2..3517c5086a 100644 --- a/addons/common/functions/fnc_sanitizeString.sqf +++ b/addons/common/functions/fnc_sanitizeString.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: esteldunedain, based on Killzone-Kid code * Removes quotation marks to avoid exploits and optionally html tags from text to avoid conflicts with structured text. @@ -14,7 +15,6 @@ * * Public: Yes */ -#include "script_component.hpp" params ["_string", ["_removeTags", false]]; diff --git a/addons/common/functions/fnc_sendRequest.sqf b/addons/common/functions/fnc_sendRequest.sqf index 55a3da9873..cfa52de068 100644 --- a/addons/common/functions/fnc_sendRequest.sqf +++ b/addons/common/functions/fnc_sendRequest.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Glowbal * Send a request to an unit and execute code based upon results. @@ -17,7 +18,6 @@ * * Public: Yes */ -#include "script_component.hpp" params ["_caller", "_target", "_requestID", "_requestMessage", "_callBack"]; diff --git a/addons/common/functions/fnc_serverLog.sqf b/addons/common/functions/fnc_serverLog.sqf index af7485c494..183e110071 100644 --- a/addons/common/functions/fnc_serverLog.sqf +++ b/addons/common/functions/fnc_serverLog.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: esteldunedain * Log a RPT messaged on just the server @@ -13,7 +14,6 @@ * * Public: no */ -#include "script_component.hpp" params [["_msg", "", [""]]]; diff --git a/addons/common/functions/fnc_setAimCoef.sqf b/addons/common/functions/fnc_setAimCoef.sqf index 7c9352c3be..5680918dfa 100644 --- a/addons/common/functions/fnc_setAimCoef.sqf +++ b/addons/common/functions/fnc_setAimCoef.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: xrufix, Glowbal * Handle set AimCoef calls. Will use the highest available setting. @@ -16,7 +17,6 @@ * * Public: Yes */ -#include "script_component.hpp" params ["_unit", "_id", "_setting", ["_add", true]]; diff --git a/addons/common/functions/fnc_setApproximateVariablePublic.sqf b/addons/common/functions/fnc_setApproximateVariablePublic.sqf index e888efe3c2..562bdfd1c8 100644 --- a/addons/common/functions/fnc_setApproximateVariablePublic.sqf +++ b/addons/common/functions/fnc_setApproximateVariablePublic.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: esteldunedain * Publish a variable if it's different enough from the previously published value. @@ -16,8 +17,6 @@ * * Public: No */ -// #define DEBUG_MODE_FULL -#include "script_component.hpp" params ["_object", "_varName", "_value", "_tolerance"]; TRACE_4("params",_object,_varName,_value,_tolerance); diff --git a/addons/common/functions/fnc_setDefinedVariable.sqf b/addons/common/functions/fnc_setDefinedVariable.sqf index 70b8ef42e3..4800958048 100644 --- a/addons/common/functions/fnc_setDefinedVariable.sqf +++ b/addons/common/functions/fnc_setDefinedVariable.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Glowbal * setVariable value @@ -15,7 +16,6 @@ * * Public: Yes */ -#include "script_component.hpp" params ["_unit", "_variable", "_value", "_global"]; diff --git a/addons/common/functions/fnc_setDisableUserInputStatus.sqf b/addons/common/functions/fnc_setDisableUserInputStatus.sqf index b217570dac..3fdc185325 100644 --- a/addons/common/functions/fnc_setDisableUserInputStatus.sqf +++ b/addons/common/functions/fnc_setDisableUserInputStatus.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Glowbal * Disables the user input. Works stacked. @@ -14,7 +15,6 @@ * * Public: Yes */ -#include "script_component.hpp" params ["_id", "_disable"]; diff --git a/addons/common/functions/fnc_setHearingCapability.sqf b/addons/common/functions/fnc_setHearingCapability.sqf index 98de3d0d32..5fdb5b1272 100644 --- a/addons/common/functions/fnc_setHearingCapability.sqf +++ b/addons/common/functions/fnc_setHearingCapability.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Glowbal * Handle set volume calls. Will use the lowest available volume setting. @@ -15,7 +16,6 @@ * * Public: Yes */ -#include "script_component.hpp" params ["_id", "_setting", ["_add", true]]; diff --git a/addons/common/functions/fnc_setName.sqf b/addons/common/functions/fnc_setName.sqf index e93e09c0f0..d725dcc30d 100644 --- a/addons/common/functions/fnc_setName.sqf +++ b/addons/common/functions/fnc_setName.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Sets the name variable of the object. Used to prevent issues with the name command. @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_unit"]; TRACE_3("setName",_unit,alive _unit,name _unit); diff --git a/addons/common/functions/fnc_setParameter.sqf b/addons/common/functions/fnc_setParameter.sqf index 723d49ea0c..f7b2ca579f 100644 --- a/addons/common/functions/fnc_setParameter.sqf +++ b/addons/common/functions/fnc_setParameter.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: esteldunedain * Sets the value of an ACE_Parameter and makes it public. @@ -16,7 +17,6 @@ * * Deprecated */ -#include "script_component.hpp" params ["_name", "_value"]; diff --git a/addons/common/functions/fnc_setPitchBankYaw.sqf b/addons/common/functions/fnc_setPitchBankYaw.sqf index 1b986c6445..debe133484 100644 --- a/addons/common/functions/fnc_setPitchBankYaw.sqf +++ b/addons/common/functions/fnc_setPitchBankYaw.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Bohemia Interactive edit by KoffeinFlummi * Sets the value of an ACE_Parameter and makes it public. @@ -16,7 +17,6 @@ * * Public: Yes */ -#include "script_component.hpp" params ["_object", "_aroundX", "_aroundY", "_aroundZ"]; diff --git a/addons/common/functions/fnc_setPlayerOwner.sqf b/addons/common/functions/fnc_setPlayerOwner.sqf index 5b21db0190..c15974098b 100644 --- a/addons/common/functions/fnc_setPlayerOwner.sqf +++ b/addons/common/functions/fnc_setPlayerOwner.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: PabstMirror * Sets the player's owner id as a variable on his player ojbect. @@ -16,9 +17,6 @@ * Public: No */ -// #define DEBUG_MODE_FULL -#include "script_component.hpp" - if (missionNameSpace getVariable [QGVAR(setPlayerOwnerRunning), false]) exitWith {}; GVAR(setPlayerOwnerRunning) = true; diff --git a/addons/common/functions/fnc_setProne.sqf b/addons/common/functions/fnc_setProne.sqf index 8df8a4d900..f12545290c 100644 --- a/addons/common/functions/fnc_setProne.sqf +++ b/addons/common/functions/fnc_setProne.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Glowbal * Force a unit to go prone @@ -13,7 +14,6 @@ * * Public: Yes */ -#include "script_component.hpp" params ["_unit"]; diff --git a/addons/common/functions/fnc_setSetting.sqf b/addons/common/functions/fnc_setSetting.sqf index 1d98f613fd..a50cf89214 100644 --- a/addons/common/functions/fnc_setSetting.sqf +++ b/addons/common/functions/fnc_setSetting.sqf @@ -1,3 +1,5 @@ +#define DEBUG_MODE_FULL +#include "script_component.hpp" /* * Author: esteldunedain * Change the value of an existing setting if it was not previously forced. Force if neccesary. @@ -18,8 +20,6 @@ * * Public: No */ -#define DEBUG_MODE_FULL -#include "script_component.hpp" params ["_name", "_value", ["_force", false], ["_broadcastChanges", false]]; TRACE_4("setSetting",_name,_value,_force,_broadcastChanges); diff --git a/addons/common/functions/fnc_setVariableJIP.sqf b/addons/common/functions/fnc_setVariableJIP.sqf index 151d7b9925..857bd1b9b9 100644 --- a/addons/common/functions/fnc_setVariableJIP.sqf +++ b/addons/common/functions/fnc_setVariableJIP.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Sets a public object namespace variable that gets reset with the same value after respawn, so JIP clients keep the value. @@ -15,7 +16,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_unit", "_varName", "_value"]; diff --git a/addons/common/functions/fnc_setVariablePublic.sqf b/addons/common/functions/fnc_setVariablePublic.sqf index 2eac69f6ce..067765fc27 100644 --- a/addons/common/functions/fnc_setVariablePublic.sqf +++ b/addons/common/functions/fnc_setVariablePublic.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 and CAA-Picard and joko and PabstMirror * Publish a variable, but wait a certain amount of time before allowing it to be published it again. @@ -16,8 +17,6 @@ * * Public: No */ -// #define DEBUG_MODE_FULL -#include "script_component.hpp" params ["_object", "_varName", "_value", ["_delay", 1]]; TRACE_4("params",_object,_varName,_value,_delay); diff --git a/addons/common/functions/fnc_setVolume.sqf b/addons/common/functions/fnc_setVolume.sqf index 5d7f349ce1..0ab00e26be 100644 --- a/addons/common/functions/fnc_setVolume.sqf +++ b/addons/common/functions/fnc_setVolume.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Glowbal * Sets the volume of the game, including third party radio modifications such as TFAR and ACRE. @@ -15,7 +16,6 @@ * * Note: Uses player */ -#include "script_component.hpp" #define MUTED_LEVEL 0.2 #define NORMAL_LEVEL 1 diff --git a/addons/common/functions/fnc_showHud.sqf b/addons/common/functions/fnc_showHud.sqf index 5cf2e876bd..86d9e3be8e 100644 --- a/addons/common/functions/fnc_showHud.sqf +++ b/addons/common/functions/fnc_showHud.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: PabstMirror * Allows multiple sources to not overwrite showHud command. @@ -27,7 +28,6 @@ * * Public: Yes */ -#include "script_component.hpp" if (!hasInterface) exitWith {[-1]}; diff --git a/addons/common/functions/fnc_showUser.sqf b/addons/common/functions/fnc_showUser.sqf index 6c78e03f97..a30c7cada3 100644 --- a/addons/common/functions/fnc_showUser.sqf +++ b/addons/common/functions/fnc_showUser.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * hint the Variable ACE_isUsedBy from the input Object every frame @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" if (!isNil QGVAR(showUserPFH)) then { [GVAR(showUserPFH)] call CBA_fnc_removePerFrameHandler; diff --git a/addons/common/functions/fnc_statusEffect_addType.sqf b/addons/common/functions/fnc_statusEffect_addType.sqf index c423db2393..6be61967d9 100644 --- a/addons/common/functions/fnc_statusEffect_addType.sqf +++ b/addons/common/functions/fnc_statusEffect_addType.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: PabstMirror * Adds a status effect that will be handled. @@ -15,8 +16,6 @@ * * Public: No */ -// #define DEBUG_MODE_FULL -#include "script_component.hpp" params [["_name", "", [""]], ["_isGlobal", false, [false]], ["_commonReasonsArray", [], [[]]]]; TRACE_3("params",_name,_isGlobal,_commonReasonsArray); diff --git a/addons/common/functions/fnc_statusEffect_get.sqf b/addons/common/functions/fnc_statusEffect_get.sqf index 2d7e17e0ec..683c235214 100644 --- a/addons/common/functions/fnc_statusEffect_get.sqf +++ b/addons/common/functions/fnc_statusEffect_get.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: PabstMirror * Retrives list of current status effects @@ -16,8 +17,6 @@ * * Public: Yes */ -// #define DEBUG_MODE_FULL -#include "script_component.hpp" params [["_object", objNull, [objNull]], ["_effectName", "", [""]]]; TRACE_2("params",_object,_effectName); diff --git a/addons/common/functions/fnc_statusEffect_localEH.sqf b/addons/common/functions/fnc_statusEffect_localEH.sqf index 84f3e0e9a2..9f5cd7c42a 100644 --- a/addons/common/functions/fnc_statusEffect_localEH.sqf +++ b/addons/common/functions/fnc_statusEffect_localEH.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: PabstMirror * Handles locality switch, runs a respawn check and then reapplies all effect events. @@ -14,8 +15,6 @@ * * Public: No */ -// #define DEBUG_MODE_FULL -#include "script_component.hpp" params ["_object", "_isLocal"]; TRACE_2("params",_object,_isLocal); diff --git a/addons/common/functions/fnc_statusEffect_resetVariables.sqf b/addons/common/functions/fnc_statusEffect_resetVariables.sqf index 7f638bcbef..b819174753 100644 --- a/addons/common/functions/fnc_statusEffect_resetVariables.sqf +++ b/addons/common/functions/fnc_statusEffect_resetVariables.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: PabstMirror * Resets all effect numbers to 0 when an object respawns (but does not apply the effect event). @@ -13,8 +14,6 @@ * * Public: No */ -// #define DEBUG_MODE_FULL -#include "script_component.hpp" params [["_object", objNull, [objNull]], ["_setObjectRef", false, [false]]]; TRACE_2("params",_object,_setObjectRef); diff --git a/addons/common/functions/fnc_statusEffect_respawnEH.sqf b/addons/common/functions/fnc_statusEffect_respawnEH.sqf index ba3058be19..56fe38b6a8 100644 --- a/addons/common/functions/fnc_statusEffect_respawnEH.sqf +++ b/addons/common/functions/fnc_statusEffect_respawnEH.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: PabstMirror * Handles the Respawn Event Handler to reset effects. @@ -13,8 +14,6 @@ * * Public: No */ -// #define DEBUG_MODE_FULL -#include "script_component.hpp" params ["_object"]; TRACE_1("params",_object); diff --git a/addons/common/functions/fnc_statusEffect_sendEffects.sqf b/addons/common/functions/fnc_statusEffect_sendEffects.sqf index 0945fc3424..dae88d35e4 100644 --- a/addons/common/functions/fnc_statusEffect_sendEffects.sqf +++ b/addons/common/functions/fnc_statusEffect_sendEffects.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: PabstMirror * Sends all status effects for an object (can be run on non-local objects) @@ -14,8 +15,6 @@ * * Public: No */ -// #define DEBUG_MODE_FULL -#include "script_component.hpp" params [["_object", objNull, [objNull]], ["_effectName", "", [""]]]; TRACE_2("params",_object,_effectName); diff --git a/addons/common/functions/fnc_statusEffect_set.sqf b/addons/common/functions/fnc_statusEffect_set.sqf index 27824cfe2e..ff8fa8565a 100644 --- a/addons/common/functions/fnc_statusEffect_set.sqf +++ b/addons/common/functions/fnc_statusEffect_set.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: PabstMirror * Adds or removes an id to a status effect and will send an event to apply. @@ -16,7 +17,6 @@ * * Public: Yes */ -#include "script_component.hpp" params [["_object", objNull, [objNull]], ["_effectName", "", [""]], ["_ID", "", [""]], ["_set", true, [false]]]; TRACE_4("params",_object,_effectName,_ID,_set); diff --git a/addons/common/functions/fnc_stringCompare.sqf b/addons/common/functions/fnc_stringCompare.sqf index b14eedb653..9a0955b27a 100644 --- a/addons/common/functions/fnc_stringCompare.sqf +++ b/addons/common/functions/fnc_stringCompare.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: bovine3dom * Determines whether one string matches another and how many characters match. Case insensitive. @@ -14,7 +15,6 @@ * * Public: Yes */ -#include "script_component.hpp" params ["_string", "_searchTerm"]; diff --git a/addons/common/functions/fnc_stringToColoredText.sqf b/addons/common/functions/fnc_stringToColoredText.sqf index 33d2fb5dcc..c7eaaaecb3 100644 --- a/addons/common/functions/fnc_stringToColoredText.sqf +++ b/addons/common/functions/fnc_stringToColoredText.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Create a centered, colored text. @@ -14,7 +15,6 @@ * * Public: Yes */ -#include "script_component.hpp" params ["_string", "_color"]; diff --git a/addons/common/functions/fnc_switchPersistentLaser.sqf b/addons/common/functions/fnc_switchPersistentLaser.sqf index 0a186d8076..2e2fb7505b 100644 --- a/addons/common/functions/fnc_switchPersistentLaser.sqf +++ b/addons/common/functions/fnc_switchPersistentLaser.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Dystopian * Controls persistent laser state. @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_enabled"]; diff --git a/addons/common/functions/fnc_switchToGroupSide.sqf b/addons/common/functions/fnc_switchToGroupSide.sqf index 914c12034f..842bdffabd 100644 --- a/addons/common/functions/fnc_switchToGroupSide.sqf +++ b/addons/common/functions/fnc_switchToGroupSide.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Glowbal * Stack group switches. Will always trace back to original group. @@ -16,7 +17,6 @@ * * Public: Yes */ -#include "script_component.hpp" params [["_unit", objNull], ["_switch", false], ["_id", ""], ["_side", sideUnknown]]; diff --git a/addons/common/functions/fnc_syncedEvent.sqf b/addons/common/functions/fnc_syncedEvent.sqf index a6a7fb30e3..9ddb071dac 100644 --- a/addons/common/functions/fnc_syncedEvent.sqf +++ b/addons/common/functions/fnc_syncedEvent.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: jaynus * Call and propegate a synced event @@ -15,7 +16,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_name", "_args", ["_ttl", 0]]; diff --git a/addons/common/functions/fnc_syncedEventPFH.sqf b/addons/common/functions/fnc_syncedEventPFH.sqf index c35be73d5c..6d5d2ea12c 100644 --- a/addons/common/functions/fnc_syncedEventPFH.sqf +++ b/addons/common/functions/fnc_syncedEventPFH.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: ACE-Team * @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" if (!isServer) exitWith {false}; diff --git a/addons/common/functions/fnc_throttledPublicVariable.sqf b/addons/common/functions/fnc_throttledPublicVariable.sqf index 7d86a75a29..abfcfc8c8c 100644 --- a/addons/common/functions/fnc_throttledPublicVariable.sqf +++ b/addons/common/functions/fnc_throttledPublicVariable.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: esteldunedain * Schedules the publishment of an object variable to reduce network overhead @@ -15,7 +16,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_unit", "_varName", "_maxDelay"]; diff --git a/addons/common/functions/fnc_toBin.sqf b/addons/common/functions/fnc_toBin.sqf index f3e08711a7..c5da7ece8e 100644 --- a/addons/common/functions/fnc_toBin.sqf +++ b/addons/common/functions/fnc_toBin.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Converts number to binary number @@ -13,7 +14,6 @@ * * Public: Yes */ -#include "script_component.hpp" params ["_number", ["_minLength", 1]]; diff --git a/addons/common/functions/fnc_toBitmask.sqf b/addons/common/functions/fnc_toBitmask.sqf index ac5b7f056e..2d46811c6b 100644 --- a/addons/common/functions/fnc_toBitmask.sqf +++ b/addons/common/functions/fnc_toBitmask.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Convert an array of booleans into a number. @@ -13,7 +14,6 @@ * * Public: Yes */ -#include "script_component.hpp" private _result = 0; diff --git a/addons/common/functions/fnc_toHex.sqf b/addons/common/functions/fnc_toHex.sqf index 2c82c1c4a3..f9c82be373 100644 --- a/addons/common/functions/fnc_toHex.sqf +++ b/addons/common/functions/fnc_toHex.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2, esteldunedain * Converts number to hexadecimal number @@ -13,7 +14,6 @@ * * Public: Yes */ -#include "script_component.hpp" params ["_number"]; diff --git a/addons/common/functions/fnc_toNumber.sqf b/addons/common/functions/fnc_toNumber.sqf index eeede0813b..14e8179a63 100644 --- a/addons/common/functions/fnc_toNumber.sqf +++ b/addons/common/functions/fnc_toNumber.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Garth de Wet (LH) * Takes a string/number and returns the number. @@ -13,7 +14,6 @@ * * Public: Yes */ -#include "script_component.hpp" params ["_value"]; diff --git a/addons/common/functions/fnc_translateToModelSpace.sqf b/addons/common/functions/fnc_translateToModelSpace.sqf index 0d7a5551fc..843c710c8d 100644 --- a/addons/common/functions/fnc_translateToModelSpace.sqf +++ b/addons/common/functions/fnc_translateToModelSpace.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: ACE-Team * ? @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_object", "_matrix", "_offset"]; diff --git a/addons/common/functions/fnc_translateToWeaponSpace.sqf b/addons/common/functions/fnc_translateToWeaponSpace.sqf index af3abddb74..4f4bbeae3b 100644 --- a/addons/common/functions/fnc_translateToWeaponSpace.sqf +++ b/addons/common/functions/fnc_translateToWeaponSpace.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: ACE-Team * ? @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_object", "_matrix", "_offset"]; diff --git a/addons/common/functions/fnc_unhideUnit.sqf b/addons/common/functions/fnc_unhideUnit.sqf index cb988cde1b..b6d669366e 100644 --- a/addons/common/functions/fnc_unhideUnit.sqf +++ b/addons/common/functions/fnc_unhideUnit.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: SilentSpike (based on unmuteUnit) * Globally unhides a unit. Only unhides if the last reason was removed. @@ -14,7 +15,6 @@ * * Public: Yes */ -#include "script_component.hpp" params ["_unit", "_reason"]; diff --git a/addons/common/functions/fnc_uniqueElements.sqf b/addons/common/functions/fnc_uniqueElements.sqf index 62a68a71ff..5aad721d48 100644 --- a/addons/common/functions/fnc_uniqueElements.sqf +++ b/addons/common/functions/fnc_uniqueElements.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Glowbal * Make a copy of an array with only the unique elements. @@ -13,7 +14,6 @@ * * Public: Yes */ -#include "script_component.hpp" params [["_array", [], [[]]]]; diff --git a/addons/common/functions/fnc_uniqueItems.sqf b/addons/common/functions/fnc_uniqueItems.sqf index b5e16ab6ed..48f91831b9 100644 --- a/addons/common/functions/fnc_uniqueItems.sqf +++ b/addons/common/functions/fnc_uniqueItems.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: mharis001 * Returns list of unique items in a unit's inventory. @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_unit"]; diff --git a/addons/common/functions/fnc_unloadPerson.sqf b/addons/common/functions/fnc_unloadPerson.sqf index 716f46dc8e..b744cbc272 100644 --- a/addons/common/functions/fnc_unloadPerson.sqf +++ b/addons/common/functions/fnc_unloadPerson.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Glowbal * Unload a person from a vehicle @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" #define GROUP_SWITCH_ID QFUNC(loadPerson) diff --git a/addons/common/functions/fnc_unloadPersonLocal.sqf b/addons/common/functions/fnc_unloadPersonLocal.sqf index 762b643bc1..74b8b8c39e 100644 --- a/addons/common/functions/fnc_unloadPersonLocal.sqf +++ b/addons/common/functions/fnc_unloadPersonLocal.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: ViperMaul * Unload a person from a vehicle, local @@ -15,7 +16,6 @@ * * Public: No */ -#include "script_component.hpp" #define GROUP_SWITCH_ID QFUNC(loadPerson) diff --git a/addons/common/functions/fnc_unmuteUnit.sqf b/addons/common/functions/fnc_unmuteUnit.sqf index 7d81ae7346..03a7a33e23 100644 --- a/addons/common/functions/fnc_unmuteUnit.sqf +++ b/addons/common/functions/fnc_unmuteUnit.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Unmutes the unit. Only unmutes if the last reason was removed. @@ -14,7 +15,6 @@ * * Public: Yes */ -#include "script_component.hpp" params ["_unit", "_reason"]; diff --git a/addons/common/functions/fnc_useItem.sqf b/addons/common/functions/fnc_useItem.sqf index 44be64587c..ba4e668792 100644 --- a/addons/common/functions/fnc_useItem.sqf +++ b/addons/common/functions/fnc_useItem.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Glowbal * Use item @@ -14,7 +15,6 @@ * * Public: Yes */ -#include "script_component.hpp" params ["_unit", "_item", ["_vehicleUsage", false]]; diff --git a/addons/common/functions/fnc_useMagazine.sqf b/addons/common/functions/fnc_useMagazine.sqf index 646d461d21..109f01f996 100644 --- a/addons/common/functions/fnc_useMagazine.sqf +++ b/addons/common/functions/fnc_useMagazine.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Glowbal * Use magazine @@ -14,7 +15,6 @@ * * Public: Yes */ -#include "script_component.hpp" params ["_unit", "_magazine", ["_vehicleUsage", false]]; diff --git a/addons/common/functions/fnc_watchVariable.sqf b/addons/common/functions/fnc_watchVariable.sqf index 012a726a6c..6fa86dc9bc 100644 --- a/addons/common/functions/fnc_watchVariable.sqf +++ b/addons/common/functions/fnc_watchVariable.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: PabstMirror * Shows multiple watched variables on the main display (for easy debugging). @@ -25,8 +26,6 @@ * * Public: Yes */ -// #define DEBUG_MODE_FULL -#include "script_component.hpp" #define TEXT_HEIGHT 16 diff --git a/addons/common/functions/fnc_waveHeightAt.sqf b/addons/common/functions/fnc_waveHeightAt.sqf index 1a9049b491..969f4fc87e 100644 --- a/addons/common/functions/fnc_waveHeightAt.sqf +++ b/addons/common/functions/fnc_waveHeightAt.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: jaynus * Gets the wave height at a specific location. Uses a logic, so may be performance iffy @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_position"]; diff --git a/addons/common/functions/fnc_worldToScreenBounds.sqf b/addons/common/functions/fnc_worldToScreenBounds.sqf index 42ffa27317..74c19d0b4e 100644 --- a/addons/common/functions/fnc_worldToScreenBounds.sqf +++ b/addons/common/functions/fnc_worldToScreenBounds.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: zGuba 2011 * Function helper for framing objects on screen. @@ -24,7 +25,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_object", "_margins", "_offsets"]; diff --git a/addons/common/init_handleModifierKey.sqf b/addons/common/init_handleModifierKey.sqf index 7fe2be6476..364146c551 100644 --- a/addons/common/init_handleModifierKey.sqf +++ b/addons/common/init_handleModifierKey.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Initializes the modifier key handler. @@ -10,7 +11,6 @@ * * Public : No */ -#include "script_component.hpp" _this spawn {// waitUntil {!isNull findDisplay 46};// diff --git a/addons/concertina_wire/functions/fnc_deploy.sqf b/addons/concertina_wire/functions/fnc_deploy.sqf index 6782f64342..6ff782fb8e 100644 --- a/addons/concertina_wire/functions/fnc_deploy.sqf +++ b/addons/concertina_wire/functions/fnc_deploy.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Rocko, Ruthberg * @@ -15,7 +16,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_wirecoil", "_unit"]; diff --git a/addons/concertina_wire/functions/fnc_dismount.sqf b/addons/concertina_wire/functions/fnc_dismount.sqf index ef32431292..487c5685a4 100644 --- a/addons/concertina_wire/functions/fnc_dismount.sqf +++ b/addons/concertina_wire/functions/fnc_dismount.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Ruthberg * @@ -15,7 +16,6 @@ * * Public: No */ -#include "script_component.hpp" // If the cursorMenu is open, the loading bar will fail. If we execute the function one frame later, it will work fine if (uiNamespace getVariable [QEGVAR(interact_menu,cursorMenuOpened),false]) exitWith { diff --git a/addons/concertina_wire/functions/fnc_dismountSuccess.sqf b/addons/concertina_wire/functions/fnc_dismountSuccess.sqf index 76ee768504..4611aea0f3 100644 --- a/addons/concertina_wire/functions/fnc_dismountSuccess.sqf +++ b/addons/concertina_wire/functions/fnc_dismountSuccess.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Rocko, Ruthberg * @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_wire"]; diff --git a/addons/concertina_wire/functions/fnc_handleDamage.sqf b/addons/concertina_wire/functions/fnc_handleDamage.sqf index d4f2555546..958354250b 100644 --- a/addons/concertina_wire/functions/fnc_handleDamage.sqf +++ b/addons/concertina_wire/functions/fnc_handleDamage.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Ruthberg * @@ -18,7 +19,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_wire", "", "_damage", "_source", ""]; if (_damage < 0.5) exitWith { 0 }; diff --git a/addons/concertina_wire/functions/fnc_handleInit.sqf b/addons/concertina_wire/functions/fnc_handleInit.sqf index d547a09463..a602281af1 100644 --- a/addons/concertina_wire/functions/fnc_handleInit.sqf +++ b/addons/concertina_wire/functions/fnc_handleInit.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Rocko * Handles wire Init @@ -13,6 +14,5 @@ * * Public: No */ -#include "script_component.hpp" params ["_wire"]; _wire addEventHandler ["HandleDamage", {call FUNC(handleDamage)}]; diff --git a/addons/concertina_wire/functions/fnc_handleKilled.sqf b/addons/concertina_wire/functions/fnc_handleKilled.sqf index 6649f5c3b6..33f00ebe13 100644 --- a/addons/concertina_wire/functions/fnc_handleKilled.sqf +++ b/addons/concertina_wire/functions/fnc_handleKilled.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Rocko * @@ -15,7 +16,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_wire", "_killer"]; TRACE_2("params",_wire,_killer); diff --git a/addons/concertina_wire/functions/fnc_vehicleDamage.sqf b/addons/concertina_wire/functions/fnc_vehicleDamage.sqf index dd3504f031..6482ea718a 100644 --- a/addons/concertina_wire/functions/fnc_vehicleDamage.sqf +++ b/addons/concertina_wire/functions/fnc_vehicleDamage.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Rocko * Handles vehicle damage from hitting wire @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_wire", "_vehicle"]; private _type = typeOf _wire; diff --git a/addons/cookoff/functions/fnc_blowOffTurret.sqf b/addons/cookoff/functions/fnc_blowOffTurret.sqf index fed5afc188..2d76463e8d 100644 --- a/addons/cookoff/functions/fnc_blowOffTurret.sqf +++ b/addons/cookoff/functions/fnc_blowOffTurret.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Blow off turret effect. @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" // delayed so the object is spawned after the model changes to a wreck // the sudden change in the model would cause nearby physx objects to get stuck diff --git a/addons/cookoff/functions/fnc_cookOff.sqf b/addons/cookoff/functions/fnc_cookOff.sqf index a86564e74d..c19f968c47 100644 --- a/addons/cookoff/functions/fnc_cookOff.sqf +++ b/addons/cookoff/functions/fnc_cookOff.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: KoffeinFlummi, commy2 * Start a cook-off in the given vehicle. @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_vehicle"]; diff --git a/addons/cookoff/functions/fnc_cookOffBox.sqf b/addons/cookoff/functions/fnc_cookOffBox.sqf index 1f2c0b3b90..8f6ef7f2f0 100644 --- a/addons/cookoff/functions/fnc_cookOffBox.sqf +++ b/addons/cookoff/functions/fnc_cookOffBox.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: KoffeinFlummi, commy2, SilentSpike * Start a cook-off in the given ammo box. @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_box"]; diff --git a/addons/cookoff/functions/fnc_detonateAmmunition.sqf b/addons/cookoff/functions/fnc_detonateAmmunition.sqf index c5c0a64549..f77a2755fd 100644 --- a/addons/cookoff/functions/fnc_detonateAmmunition.sqf +++ b/addons/cookoff/functions/fnc_detonateAmmunition.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Glowbal * Detonates ammunition from a vehicle until no ammo left @@ -17,7 +18,6 @@ * * Public: No */ -#include "script_component.hpp" #define MAX_TIME_BETWEEN_AMMO_DET 25 params ["_vehicle", "_magazines", "_totalAmmo"]; diff --git a/addons/cookoff/functions/fnc_engineFire.sqf b/addons/cookoff/functions/fnc_engineFire.sqf index 580bd5d54d..6ed6920b7c 100644 --- a/addons/cookoff/functions/fnc_engineFire.sqf +++ b/addons/cookoff/functions/fnc_engineFire.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: KoffeinFlummi, commy2 * Start fire in engine block of a car. @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_vehicle"]; diff --git a/addons/cookoff/functions/fnc_getVehicleAmmo.sqf b/addons/cookoff/functions/fnc_getVehicleAmmo.sqf index 78d13ee301..810084fe71 100644 --- a/addons/cookoff/functions/fnc_getVehicleAmmo.sqf +++ b/addons/cookoff/functions/fnc_getVehicleAmmo.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: PabstMirror * Gets all magazines inside of a vehicle. @@ -16,7 +17,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_vehicle"]; TRACE_1("getVehicleAmmo",_vehicle); diff --git a/addons/cookoff/functions/fnc_handleDamage.sqf b/addons/cookoff/functions/fnc_handleDamage.sqf index d9fbaf4cef..e9765805cb 100644 --- a/addons/cookoff/functions/fnc_handleDamage.sqf +++ b/addons/cookoff/functions/fnc_handleDamage.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: KoffeinFlummi, commy2 * Handles all incoming damage for tanks (including wheeled APCs). @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_simulationType", "_thisHandleDamage"]; _thisHandleDamage params ["_vehicle", "", "_damage", "_source", "_ammo", "_hitIndex", "_shooter"]; diff --git a/addons/dagr/functions/fnc_handleRangeFinderData.sqf b/addons/dagr/functions/fnc_handleRangeFinderData.sqf index 6d932e5e0d..4d9447240b 100644 --- a/addons/dagr/functions/fnc_handleRangeFinderData.sqf +++ b/addons/dagr/functions/fnc_handleRangeFinderData.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Rosuto, Ruthberg * Handles incoming data packets from the Vectronix Vector LRF @@ -15,7 +16,6 @@ * * Public: No */ -#include "script_component.hpp" #define EMP_RF_ACC 5 // Rangefinder Accuracy diff --git a/addons/dagr/functions/fnc_menuInit.sqf b/addons/dagr/functions/fnc_menuInit.sqf index b061717c58..0425f1f4d2 100644 --- a/addons/dagr/functions/fnc_menuInit.sqf +++ b/addons/dagr/functions/fnc_menuInit.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Rosuto, Ruthberg * Creates the DAGR menu dialog @@ -12,7 +13,6 @@ * * Public: No */ -#include "script_component.hpp" #define __dsp (uiNamespace getVariable "DAGR_MENU") #define __F1 266874 diff --git a/addons/dagr/functions/fnc_outputData.sqf b/addons/dagr/functions/fnc_outputData.sqf index edabf6209c..a5816e472d 100644 --- a/addons/dagr/functions/fnc_outputData.sqf +++ b/addons/dagr/functions/fnc_outputData.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Rosuto * DAGR data output loop @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" 135471 cutRsc ["DAGR_DISPLAY", "plain down"]; diff --git a/addons/dagr/functions/fnc_outputVector.sqf b/addons/dagr/functions/fnc_outputVector.sqf index 12716f0e5b..ce2ca2a04c 100644 --- a/addons/dagr/functions/fnc_outputVector.sqf +++ b/addons/dagr/functions/fnc_outputVector.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Rosuto * DAGR vector output loop @@ -14,8 +15,6 @@ * Public: No */ -#include "script_component.hpp" - 135471 cutRsc ["DAGR_DISPLAY", "plain down"]; #define __display (uiNameSpace getVariable "DAGR_DISPLAY") diff --git a/addons/dagr/functions/fnc_outputWP.sqf b/addons/dagr/functions/fnc_outputWP.sqf index 0b6a77db7d..41518a0560 100644 --- a/addons/dagr/functions/fnc_outputWP.sqf +++ b/addons/dagr/functions/fnc_outputWP.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Rosuto * DAGR waypoint output loop @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" 135471 cutRsc ["DAGR_DISPLAY", "plain down"]; diff --git a/addons/dagr/functions/fnc_toggleOverlay.sqf b/addons/dagr/functions/fnc_toggleOverlay.sqf index af9909efda..c0e229d745 100644 --- a/addons/dagr/functions/fnc_toggleOverlay.sqf +++ b/addons/dagr/functions/fnc_toggleOverlay.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Rosuto, Ruthberg * Toggles the DAGR overlay @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" GVAR(run) = !GVAR(run); diff --git a/addons/disarming/functions/fnc_canBeDisarmed.sqf b/addons/disarming/functions/fnc_canBeDisarmed.sqf index 7e45c42ce0..ab41729f6a 100644 --- a/addons/disarming/functions/fnc_canBeDisarmed.sqf +++ b/addons/disarming/functions/fnc_canBeDisarmed.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: PabstMirror * @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_target"]; diff --git a/addons/disarming/functions/fnc_canPlayerDisarmUnit.sqf b/addons/disarming/functions/fnc_canPlayerDisarmUnit.sqf index 3c375c8ddf..2468e454fd 100644 --- a/addons/disarming/functions/fnc_canPlayerDisarmUnit.sqf +++ b/addons/disarming/functions/fnc_canPlayerDisarmUnit.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: PabstMirror * @@ -15,7 +16,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_player", "_target"]; diff --git a/addons/disarming/functions/fnc_disarmDropItems.sqf b/addons/disarming/functions/fnc_disarmDropItems.sqf index fe362aedd0..4c8fb3bf2d 100644 --- a/addons/disarming/functions/fnc_disarmDropItems.sqf +++ b/addons/disarming/functions/fnc_disarmDropItems.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: PabstMirror * @@ -17,7 +18,6 @@ * * Public: No */ -#include "script_component.hpp" #define TIME_MAX_WAIT 5 diff --git a/addons/disarming/functions/fnc_eventCallerFinish.sqf b/addons/disarming/functions/fnc_eventCallerFinish.sqf index 48a7191a5f..60629b221f 100644 --- a/addons/disarming/functions/fnc_eventCallerFinish.sqf +++ b/addons/disarming/functions/fnc_eventCallerFinish.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: PabstMirror * @@ -16,7 +17,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_caller", "_target", "_errorMsg"]; diff --git a/addons/disarming/functions/fnc_eventTargetFinish.sqf b/addons/disarming/functions/fnc_eventTargetFinish.sqf index f700cb6f79..b750fd51b1 100644 --- a/addons/disarming/functions/fnc_eventTargetFinish.sqf +++ b/addons/disarming/functions/fnc_eventTargetFinish.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: PabstMirror * @@ -17,7 +18,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_caller", "_target", "_errorMsg"]; diff --git a/addons/disarming/functions/fnc_eventTargetStart.sqf b/addons/disarming/functions/fnc_eventTargetStart.sqf index 8490c17be1..e63289cf20 100644 --- a/addons/disarming/functions/fnc_eventTargetStart.sqf +++ b/addons/disarming/functions/fnc_eventTargetStart.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: PabstMirror * @@ -17,7 +18,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_caller", "_target", "_listOfObjectsToRemove"]; diff --git a/addons/disarming/functions/fnc_getAllGearContainer.sqf b/addons/disarming/functions/fnc_getAllGearContainer.sqf index 105be91a9e..be46d66e5e 100644 --- a/addons/disarming/functions/fnc_getAllGearContainer.sqf +++ b/addons/disarming/functions/fnc_getAllGearContainer.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: PabstMirror * @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_target"]; diff --git a/addons/disarming/functions/fnc_getAllGearUnit.sqf b/addons/disarming/functions/fnc_getAllGearUnit.sqf index 30d263fd27..db066ad5d8 100644 --- a/addons/disarming/functions/fnc_getAllGearUnit.sqf +++ b/addons/disarming/functions/fnc_getAllGearUnit.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: PabstMirror * @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_target"]; diff --git a/addons/disarming/functions/fnc_openDisarmDialog.sqf b/addons/disarming/functions/fnc_openDisarmDialog.sqf index 0490598231..0b66009949 100644 --- a/addons/disarming/functions/fnc_openDisarmDialog.sqf +++ b/addons/disarming/functions/fnc_openDisarmDialog.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: PabstMirror * @@ -15,7 +16,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_caller", "_target"]; #define DEFUALTPATH "\A3\Ui_f\data\GUI\Cfg\Ranks\%1_gs.paa" //Sanity Checks diff --git a/addons/disarming/functions/fnc_showItemsInListbox.sqf b/addons/disarming/functions/fnc_showItemsInListbox.sqf index 741a67aa6c..fadbb2d914 100644 --- a/addons/disarming/functions/fnc_showItemsInListbox.sqf +++ b/addons/disarming/functions/fnc_showItemsInListbox.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: PabstMirror * @@ -15,7 +16,6 @@ * * Public: No */ -#include "script_component.hpp" disableSerialization; diff --git a/addons/disarming/functions/fnc_verifyMagazinesMoved.sqf b/addons/disarming/functions/fnc_verifyMagazinesMoved.sqf index 5dddec5339..60d851b973 100644 --- a/addons/disarming/functions/fnc_verifyMagazinesMoved.sqf +++ b/addons/disarming/functions/fnc_verifyMagazinesMoved.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: PabstMirror * @@ -19,7 +20,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_startA", "_endA", "_startB", "_endB"]; diff --git a/addons/disposable/functions/fnc_replaceATWeapon.sqf b/addons/disposable/functions/fnc_replaceATWeapon.sqf index d94944bfde..a5ad1196f2 100644 --- a/addons/disposable/functions/fnc_replaceATWeapon.sqf +++ b/addons/disposable/functions/fnc_replaceATWeapon.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: bux, commy2 * Replace the disposable launcher with the used dummy. Called from the unified fired EH. @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" //IGNORE_PRIVATE_WARNING ["_unit", "_weapon", "_muzzle", "_mode", "_ammo", "_magazine", "_projectile", "_vehicle", "_gunner", "_turret"]; TRACE_10("firedEH:",_unit, _weapon, _muzzle, _mode, _ammo, _magazine, _projectile, _vehicle, _gunner, _turret); diff --git a/addons/disposable/functions/fnc_takeLoadedATWeapon.sqf b/addons/disposable/functions/fnc_takeLoadedATWeapon.sqf index bd6dec057c..3f12d610d3 100644 --- a/addons/disposable/functions/fnc_takeLoadedATWeapon.sqf +++ b/addons/disposable/functions/fnc_takeLoadedATWeapon.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Handle the take event. Add a dummy magazine if a disposable rocket launcher is taken. @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_unit"]; TRACE_1("params",_unit); diff --git a/addons/disposable/functions/fnc_updateInventoryDisplay.sqf b/addons/disposable/functions/fnc_updateInventoryDisplay.sqf index 9908c86186..7ab2d18d75 100644 --- a/addons/disposable/functions/fnc_updateInventoryDisplay.sqf +++ b/addons/disposable/functions/fnc_updateInventoryDisplay.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: bux, commy2 * Hide or show the secondary weapon magazine inventory slot to prevent unloading of dummy magazines. @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" disableSerialization; params ["_player", ["_display",(findDisplay 602),[displayNull]]]; diff --git a/addons/dogtags/functions/fnc_addDogtagActions.sqf b/addons/dogtags/functions/fnc_addDogtagActions.sqf index 65ebfe5034..a9b36d8432 100644 --- a/addons/dogtags/functions/fnc_addDogtagActions.sqf +++ b/addons/dogtags/functions/fnc_addDogtagActions.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: SzwedzikPL, mharis001 * Returns children actions for checking dogtags in player's inventory. @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_player"]; diff --git a/addons/dogtags/functions/fnc_addDogtagItem.sqf b/addons/dogtags/functions/fnc_addDogtagItem.sqf index 09d07f1d13..acecd6b252 100644 --- a/addons/dogtags/functions/fnc_addDogtagItem.sqf +++ b/addons/dogtags/functions/fnc_addDogtagItem.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: SzwedzikPL * Adds dogtag item to unit (triggered by server). @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_item", "_dogtagData"]; diff --git a/addons/dogtags/functions/fnc_bloodType.sqf b/addons/dogtags/functions/fnc_bloodType.sqf index a7cafbd1fd..46e75ee7f9 100644 --- a/addons/dogtags/functions/fnc_bloodType.sqf +++ b/addons/dogtags/functions/fnc_bloodType.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Reports a blood type depending on the units name. @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" #define BLOOD_TYPES ["O POS", "O NEG", "A POS", "A NEG", "B POS", "B NEG", "AB POS", "AB NEG"] diff --git a/addons/dogtags/functions/fnc_canCheckDogtag.sqf b/addons/dogtags/functions/fnc_canCheckDogtag.sqf index b31911a0c6..8abbf8858d 100644 --- a/addons/dogtags/functions/fnc_canCheckDogtag.sqf +++ b/addons/dogtags/functions/fnc_canCheckDogtag.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: SzwedzikPL * Checks if dogtag can be checked. @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_player", "_target"]; diff --git a/addons/dogtags/functions/fnc_canTakeDogtag.sqf b/addons/dogtags/functions/fnc_canTakeDogtag.sqf index 37163f68c7..8bcad4a73d 100644 --- a/addons/dogtags/functions/fnc_canTakeDogtag.sqf +++ b/addons/dogtags/functions/fnc_canTakeDogtag.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: SzwedzikPL * Checks if dogtag can be taken. @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_player", "_target"]; diff --git a/addons/dogtags/functions/fnc_checkDogtag.sqf b/addons/dogtags/functions/fnc_checkDogtag.sqf index 7c032259c1..fb722361a4 100644 --- a/addons/dogtags/functions/fnc_checkDogtag.sqf +++ b/addons/dogtags/functions/fnc_checkDogtag.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: SzwedzikPL * Checks unit dogtag. @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_player", "_target"]; diff --git a/addons/dogtags/functions/fnc_checkDogtagItem.sqf b/addons/dogtags/functions/fnc_checkDogtagItem.sqf index 237c4cf4b1..8ce7864774 100644 --- a/addons/dogtags/functions/fnc_checkDogtagItem.sqf +++ b/addons/dogtags/functions/fnc_checkDogtagItem.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: SzwedzikPL * Check dogtag self menu action. @@ -15,7 +16,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_player", "_target", "_item"]; diff --git a/addons/dogtags/functions/fnc_disableFactionDogtags.sqf b/addons/dogtags/functions/fnc_disableFactionDogtags.sqf index 2418b31f4e..c299af3a7d 100644 --- a/addons/dogtags/functions/fnc_disableFactionDogtags.sqf +++ b/addons/dogtags/functions/fnc_disableFactionDogtags.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Disable this faction from using dogtags. @@ -13,7 +14,6 @@ * * Public: Yes */ -#include "script_component.hpp" params [["_faction", "", [""]]]; diff --git a/addons/dogtags/functions/fnc_getDogtagData.sqf b/addons/dogtags/functions/fnc_getDogtagData.sqf index 607426fda4..d566daf64b 100644 --- a/addons/dogtags/functions/fnc_getDogtagData.sqf +++ b/addons/dogtags/functions/fnc_getDogtagData.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: esteldunedain * Get unit dogtag data. @@ -16,7 +17,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_target"]; diff --git a/addons/dogtags/functions/fnc_getDogtagItem.sqf b/addons/dogtags/functions/fnc_getDogtagItem.sqf index 43897ac9fc..22a0561937 100644 --- a/addons/dogtags/functions/fnc_getDogtagItem.sqf +++ b/addons/dogtags/functions/fnc_getDogtagItem.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: SzwedzikPL * Server: creates new dogtag item and send it to client. @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" if(!isServer) exitWith {}; diff --git a/addons/dogtags/functions/fnc_sendDogtagData.sqf b/addons/dogtags/functions/fnc_sendDogtagData.sqf index 34665fdfee..c43cf04dab 100644 --- a/addons/dogtags/functions/fnc_sendDogtagData.sqf +++ b/addons/dogtags/functions/fnc_sendDogtagData.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: SzwedzikPL * Server: returns to client data on given dogtag. @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" if (!isServer) exitWith {}; diff --git a/addons/dogtags/functions/fnc_showDogtag.sqf b/addons/dogtags/functions/fnc_showDogtag.sqf index aac4557f64..8e7bec620c 100644 --- a/addons/dogtags/functions/fnc_showDogtag.sqf +++ b/addons/dogtags/functions/fnc_showDogtag.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: SzwedzikPL * Shows dogtag. @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" disableSerialization; diff --git a/addons/dogtags/functions/fnc_ssn.sqf b/addons/dogtags/functions/fnc_ssn.sqf index 257f47a790..3da972ecd8 100644 --- a/addons/dogtags/functions/fnc_ssn.sqf +++ b/addons/dogtags/functions/fnc_ssn.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: SilentSpike * Reports a social security number generated from the units name. @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_name"]; diff --git a/addons/dogtags/functions/fnc_takeDogtag.sqf b/addons/dogtags/functions/fnc_takeDogtag.sqf index 5073ff73f7..464f282334 100644 --- a/addons/dogtags/functions/fnc_takeDogtag.sqf +++ b/addons/dogtags/functions/fnc_takeDogtag.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: SzwedzikPL * If dogtag is not already taken triggers event on server. @@ -15,7 +16,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_player", "_target"]; diff --git a/addons/dragging/functions/fnc_canCarry.sqf b/addons/dragging/functions/fnc_canCarry.sqf index 381940a9df..4e09cedbdc 100644 --- a/addons/dragging/functions/fnc_canCarry.sqf +++ b/addons/dragging/functions/fnc_canCarry.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Check if unit can carry the object. Doesn't check weight. @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_unit", "_target"]; diff --git a/addons/dragging/functions/fnc_canDrag.sqf b/addons/dragging/functions/fnc_canDrag.sqf index 31c9810aba..81a8537586 100644 --- a/addons/dragging/functions/fnc_canDrag.sqf +++ b/addons/dragging/functions/fnc_canDrag.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Check if unit can drag the object. Doesn't check weight. @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_unit", "_target"]; diff --git a/addons/dragging/functions/fnc_canDrop.sqf b/addons/dragging/functions/fnc_canDrop.sqf index 286f6de3a9..2d42ae6244 100644 --- a/addons/dragging/functions/fnc_canDrop.sqf +++ b/addons/dragging/functions/fnc_canDrop.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Check if unit can drop the object. @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_unit", "_target"]; diff --git a/addons/dragging/functions/fnc_canDrop_carry.sqf b/addons/dragging/functions/fnc_canDrop_carry.sqf index 3d3732f62d..89be866ea6 100644 --- a/addons/dragging/functions/fnc_canDrop_carry.sqf +++ b/addons/dragging/functions/fnc_canDrop_carry.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Check if unit can drop the carried object. @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_unit", "_target"]; diff --git a/addons/dragging/functions/fnc_carryObject.sqf b/addons/dragging/functions/fnc_carryObject.sqf index 985f3ddab6..f7976079b3 100644 --- a/addons/dragging/functions/fnc_carryObject.sqf +++ b/addons/dragging/functions/fnc_carryObject.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Carry an object. @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_unit", "_target"]; TRACE_2("params",_unit,_target); diff --git a/addons/dragging/functions/fnc_carryObjectPFH.sqf b/addons/dragging/functions/fnc_carryObjectPFH.sqf index 963921efa7..6361dcc66d 100644 --- a/addons/dragging/functions/fnc_carryObjectPFH.sqf +++ b/addons/dragging/functions/fnc_carryObjectPFH.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * PFH for Carry Object @@ -17,7 +18,6 @@ * * Public: No */ -#include "script_component.hpp" #ifdef DEBUG_ENABLED_DRAGGING systemChat format ["%1 carryObjectPFH running", CBA_missionTime]; diff --git a/addons/dragging/functions/fnc_dragObject.sqf b/addons/dragging/functions/fnc_dragObject.sqf index 77b4fc703b..347eb857db 100644 --- a/addons/dragging/functions/fnc_dragObject.sqf +++ b/addons/dragging/functions/fnc_dragObject.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Drag an object. Called from ace_dragging_fnc_startDrag @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_unit", "_target"]; TRACE_2("params",_unit,_target); diff --git a/addons/dragging/functions/fnc_dragObjectPFH.sqf b/addons/dragging/functions/fnc_dragObjectPFH.sqf index 08aeba738b..dd18e0c825 100644 --- a/addons/dragging/functions/fnc_dragObjectPFH.sqf +++ b/addons/dragging/functions/fnc_dragObjectPFH.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * PFH for Drag Object @@ -17,7 +18,6 @@ * * Public: No */ -#include "script_component.hpp" #ifdef DEBUG_ENABLED_DRAGGING systemChat format ["%1 dragObjectPFH running", CBA_missionTime]; diff --git a/addons/dragging/functions/fnc_dropObject.sqf b/addons/dragging/functions/fnc_dropObject.sqf index 6553c84929..fde2a7f6d7 100644 --- a/addons/dragging/functions/fnc_dropObject.sqf +++ b/addons/dragging/functions/fnc_dropObject.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Drop a dragged object. @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_unit", "_target"]; TRACE_2("params",_unit,_target); diff --git a/addons/dragging/functions/fnc_dropObject_carry.sqf b/addons/dragging/functions/fnc_dropObject_carry.sqf index 857e64bb7a..ae7bd3598e 100644 --- a/addons/dragging/functions/fnc_dropObject_carry.sqf +++ b/addons/dragging/functions/fnc_dropObject_carry.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Drop a carried object. @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_unit", "_target"]; TRACE_2("params",_unit,_target); diff --git a/addons/dragging/functions/fnc_getWeight.sqf b/addons/dragging/functions/fnc_getWeight.sqf index 2c63d220fa..cd06b8a884 100644 --- a/addons/dragging/functions/fnc_getWeight.sqf +++ b/addons/dragging/functions/fnc_getWeight.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: L-H, edited by commy2, rewritten by joko // Jonas * Returns the weight of a crate. @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_object"]; diff --git a/addons/dragging/functions/fnc_handleAnimChanged.sqf b/addons/dragging/functions/fnc_handleAnimChanged.sqf index 2a531ea67c..7fa242ae16 100644 --- a/addons/dragging/functions/fnc_handleAnimChanged.sqf +++ b/addons/dragging/functions/fnc_handleAnimChanged.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Handle the animaion for a Unit for Dragging Module @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" //IGNORE_PRIVATE_WARNING ["_thisArgs", "_thisID"]; // From CBA_fnc_addBISEventHandler; diff --git a/addons/dragging/functions/fnc_handleKilled.sqf b/addons/dragging/functions/fnc_handleKilled.sqf index 36bda60b78..672869d3c9 100644 --- a/addons/dragging/functions/fnc_handleKilled.sqf +++ b/addons/dragging/functions/fnc_handleKilled.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Handle death of the dragger @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_unit"]; TRACE_1("params",_unit); diff --git a/addons/dragging/functions/fnc_handlePlayerChanged.sqf b/addons/dragging/functions/fnc_handlePlayerChanged.sqf index a0d9e63449..a404660106 100644 --- a/addons/dragging/functions/fnc_handlePlayerChanged.sqf +++ b/addons/dragging/functions/fnc_handlePlayerChanged.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Handle player changes. @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_newPlayer", "_oldPlayer"]; TRACE_2("params",_newPlayer,_oldPlayer); diff --git a/addons/dragging/functions/fnc_handlePlayerWeaponChanged.sqf b/addons/dragging/functions/fnc_handlePlayerWeaponChanged.sqf index a8df6b5b7d..7d07583ddf 100644 --- a/addons/dragging/functions/fnc_handlePlayerWeaponChanged.sqf +++ b/addons/dragging/functions/fnc_handlePlayerWeaponChanged.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Handle the Weapon Changed Event @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_unit", "_weapon"]; TRACE_2("params",_unit,_weapon); diff --git a/addons/dragging/functions/fnc_handleScrollWheel.sqf b/addons/dragging/functions/fnc_handleScrollWheel.sqf index 22a19627c0..9c444add21 100644 --- a/addons/dragging/functions/fnc_handleScrollWheel.sqf +++ b/addons/dragging/functions/fnc_handleScrollWheel.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: L-H, commy2 * Handles raising and lowering the dragged weapon to be able to place it on top of objects. @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_scrollAmount"]; diff --git a/addons/dragging/functions/fnc_handleUnconscious.sqf b/addons/dragging/functions/fnc_handleUnconscious.sqf index 2e891b01c6..ba399aee49 100644 --- a/addons/dragging/functions/fnc_handleUnconscious.sqf +++ b/addons/dragging/functions/fnc_handleUnconscious.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Handle the Unconscious of a Unit while Dragging @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_unit"]; diff --git a/addons/dragging/functions/fnc_initObject.sqf b/addons/dragging/functions/fnc_initObject.sqf index d36ffe9339..8e352a00bb 100644 --- a/addons/dragging/functions/fnc_initObject.sqf +++ b/addons/dragging/functions/fnc_initObject.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Initialize variables for drag or carryable objects. Called from init EH. @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_object"]; diff --git a/addons/dragging/functions/fnc_initPerson.sqf b/addons/dragging/functions/fnc_initPerson.sqf index c8c26a4f8c..c9365710dd 100644 --- a/addons/dragging/functions/fnc_initPerson.sqf +++ b/addons/dragging/functions/fnc_initPerson.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Initialize variables for drag or carryable persons. Called from init EH. @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_unit"]; diff --git a/addons/dragging/functions/fnc_setCarryable.sqf b/addons/dragging/functions/fnc_setCarryable.sqf index 4de52e7bd8..12e2b74a8c 100644 --- a/addons/dragging/functions/fnc_setCarryable.sqf +++ b/addons/dragging/functions/fnc_setCarryable.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Enable the object to be carried. @@ -16,7 +17,6 @@ * * Public: Yes */ -#include "script_component.hpp" params ["_object", "_enableCarry", "_position", "_direction"]; diff --git a/addons/dragging/functions/fnc_setDraggable.sqf b/addons/dragging/functions/fnc_setDraggable.sqf index ce47f8a829..36f42dd9f6 100644 --- a/addons/dragging/functions/fnc_setDraggable.sqf +++ b/addons/dragging/functions/fnc_setDraggable.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Enable the object to be dragged. @@ -16,7 +17,6 @@ * * Public: Yes */ -#include "script_component.hpp" //IGNORE_PRIVATE_WARNING ["_player", "_target"]; params ["_object", "_enableDrag", "_position", "_direction"]; diff --git a/addons/dragging/functions/fnc_startCarry.sqf b/addons/dragging/functions/fnc_startCarry.sqf index 1a53a06994..5d7bc86815 100644 --- a/addons/dragging/functions/fnc_startCarry.sqf +++ b/addons/dragging/functions/fnc_startCarry.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Start the carrying process. @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_unit", "_target"]; TRACE_2("params",_unit,_target); diff --git a/addons/dragging/functions/fnc_startCarryPFH.sqf b/addons/dragging/functions/fnc_startCarryPFH.sqf index 007469d960..89f9f232ed 100644 --- a/addons/dragging/functions/fnc_startCarryPFH.sqf +++ b/addons/dragging/functions/fnc_startCarryPFH.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Carry PFH @@ -17,7 +18,6 @@ * * Public: No */ -#include "script_component.hpp" #ifdef DEBUG_ENABLED_DRAGGING systemChat format ["%1 startCarryPFH running", CBA_missionTime]; diff --git a/addons/dragging/functions/fnc_startDrag.sqf b/addons/dragging/functions/fnc_startDrag.sqf index 8cf552e3d1..b926a972ce 100644 --- a/addons/dragging/functions/fnc_startDrag.sqf +++ b/addons/dragging/functions/fnc_startDrag.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Start the dragging process. @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_unit", "_target"]; TRACE_2("params",_unit,_target); diff --git a/addons/dragging/functions/fnc_startDragPFH.sqf b/addons/dragging/functions/fnc_startDragPFH.sqf index a5bab835b7..614b6a8741 100644 --- a/addons/dragging/functions/fnc_startDragPFH.sqf +++ b/addons/dragging/functions/fnc_startDragPFH.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Drag PFH @@ -17,7 +18,6 @@ * * Public: No */ -#include "script_component.hpp" #ifdef DEBUG_ENABLED_DRAGGING systemChat format ["%1 startDragPFH running", CBA_missionTime]; diff --git a/addons/explosives/XEH_postInit.sqf b/addons/explosives/XEH_postInit.sqf index d98064cfe1..76d3e44bd1 100644 --- a/addons/explosives/XEH_postInit.sqf +++ b/addons/explosives/XEH_postInit.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Garth 'L-H' de Wet * Initialises the player object for the explosive system. @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" //Event for setting explosive placement angle/pitch: [QGVAR(place), {_this call FUNC(setPosition)}] call CBA_fnc_addEventHandler; diff --git a/addons/explosives/XEH_preInit.sqf b/addons/explosives/XEH_preInit.sqf index 969b00e784..d9a8d39ff4 100644 --- a/addons/explosives/XEH_preInit.sqf +++ b/addons/explosives/XEH_preInit.sqf @@ -1,19 +1,6 @@ -/* - * Author: Garth 'L-H' de Wet - * Initialises the explosives system - * - * Arguments: - * None - * - * Return Value: - * None - * - * Example: - * None - * - * Public: No - */ #include "script_component.hpp" +// Author: Garth 'L-H' de Wet +// Initialises the explosives system ADDON = false; diff --git a/addons/explosives/functions/fnc_addCellphoneIED.sqf b/addons/explosives/functions/fnc_addCellphoneIED.sqf index f577490933..d9ae19892c 100644 --- a/addons/explosives/functions/fnc_addCellphoneIED.sqf +++ b/addons/explosives/functions/fnc_addCellphoneIED.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Garth 'L-H' de Wet * Adds an IED to the cellphone list @@ -16,7 +17,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_unit", "_explosive", "_magazineClass", "_extra"]; TRACE_4("params",_unit,_explosive,_magazineClass,_extra); diff --git a/addons/explosives/functions/fnc_addClacker.sqf b/addons/explosives/functions/fnc_addClacker.sqf index 49915dc836..684161d7ee 100644 --- a/addons/explosives/functions/fnc_addClacker.sqf +++ b/addons/explosives/functions/fnc_addClacker.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Garth 'L-H' de Wet * Adds an explosive as a clacker item to the passed unit if the unit has the required item. @@ -16,7 +17,6 @@ * * Public: Yes */ -#include "script_component.hpp" params ["_unit", "_explosive", "_magazineClass"]; TRACE_3("params",_unit,_explosive,_magazineClass); diff --git a/addons/explosives/functions/fnc_addDetonateActions.sqf b/addons/explosives/functions/fnc_addDetonateActions.sqf index 9c8d632253..f1dff4fc9f 100644 --- a/addons/explosives/functions/fnc_addDetonateActions.sqf +++ b/addons/explosives/functions/fnc_addDetonateActions.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Garth 'L-H' de Wet * Opens the UI for explosive detonation selection @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_unit", "_detonator"]; TRACE_2("params",_unit,_detonator); diff --git a/addons/explosives/functions/fnc_addDetonateHandler.sqf b/addons/explosives/functions/fnc_addDetonateHandler.sqf index 2058b24502..b227b96d07 100644 --- a/addons/explosives/functions/fnc_addDetonateHandler.sqf +++ b/addons/explosives/functions/fnc_addDetonateHandler.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: PabstMirror * Add a explosive detonation handler. @@ -17,7 +18,6 @@ * * Public: Yes */ -#include "script_component.hpp" params [["_code", {true}, [{}]]]; diff --git a/addons/explosives/functions/fnc_addExplosiveActions.sqf b/addons/explosives/functions/fnc_addExplosiveActions.sqf index 9ef789345a..2322e4084f 100644 --- a/addons/explosives/functions/fnc_addExplosiveActions.sqf +++ b/addons/explosives/functions/fnc_addExplosiveActions.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Garth 'L-H' de Wet and CAA-Picard * Adds sub actions for all explosive magazines (from insertChildren) @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_unit"]; TRACE_1("params",_unit); diff --git a/addons/explosives/functions/fnc_addToSpeedDial.sqf b/addons/explosives/functions/fnc_addToSpeedDial.sqf index db0a1c0ca5..5b7d828d53 100644 --- a/addons/explosives/functions/fnc_addToSpeedDial.sqf +++ b/addons/explosives/functions/fnc_addToSpeedDial.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Garth 'L-H' de Wet * Sets the speed dial for the UI. @@ -14,7 +15,6 @@ * * Public: Yes */ -#include "script_component.hpp" params ["_name", "_code"]; TRACE_2("params",_name,_code); diff --git a/addons/explosives/functions/fnc_addTransmitterActions.sqf b/addons/explosives/functions/fnc_addTransmitterActions.sqf index f23d7005a6..d39b9fd731 100644 --- a/addons/explosives/functions/fnc_addTransmitterActions.sqf +++ b/addons/explosives/functions/fnc_addTransmitterActions.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Garth 'L-H' de Wet * Opens the UI for selecting the transmitter @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_unit"]; TRACE_1("params",_unit); diff --git a/addons/explosives/functions/fnc_addTriggerActions.sqf b/addons/explosives/functions/fnc_addTriggerActions.sqf index cdee713ecb..6e534a19ae 100644 --- a/addons/explosives/functions/fnc_addTriggerActions.sqf +++ b/addons/explosives/functions/fnc_addTriggerActions.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Garth 'L-H' de Wet * Opens the UI for explosive trigger selection @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_magazine", "_explosive"]; TRACE_2("params",_magazine,_explosive); diff --git a/addons/explosives/functions/fnc_canDefuse.sqf b/addons/explosives/functions/fnc_canDefuse.sqf index 98f84278db..f42764ee38 100644 --- a/addons/explosives/functions/fnc_canDefuse.sqf +++ b/addons/explosives/functions/fnc_canDefuse.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Garth 'L-H' de Wet * Whether a unit can perform the defuse action @@ -14,7 +15,6 @@ * * Public: Yes */ -#include "script_component.hpp" params ["_unit", "_target"]; TRACE_2("params",_unit,_target); diff --git a/addons/explosives/functions/fnc_canDetonate.sqf b/addons/explosives/functions/fnc_canDetonate.sqf index 73ca3c4e70..a81103ce13 100644 --- a/addons/explosives/functions/fnc_canDetonate.sqf +++ b/addons/explosives/functions/fnc_canDetonate.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Garth 'L-H' de Wet * Whether the unit is able to detonate explosives @@ -13,7 +14,6 @@ * * Public: Yes */ -#include "script_component.hpp" params ["_unit"]; diff --git a/addons/explosives/functions/fnc_cancelPlacement.sqf b/addons/explosives/functions/fnc_cancelPlacement.sqf index e6bd60f637..eaefcfcc07 100644 --- a/addons/explosives/functions/fnc_cancelPlacement.sqf +++ b/addons/explosives/functions/fnc_cancelPlacement.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Garth 'L-H' de Wet * Cancels explosives placement. @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_unit", "_key"]; diff --git a/addons/explosives/functions/fnc_connectExplosive.sqf b/addons/explosives/functions/fnc_connectExplosive.sqf index aab7ca2c4d..964966f224 100644 --- a/addons/explosives/functions/fnc_connectExplosive.sqf +++ b/addons/explosives/functions/fnc_connectExplosive.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: VKing * Add preplaced explosives to a unit's detonator. @@ -15,7 +16,6 @@ * * Public: Yes */ -#include "script_component.hpp" params ["_unit", "_object", "_detonator"]; TRACE_3("Params",_unit,_object,_detonator); diff --git a/addons/explosives/functions/fnc_defuseExplosive.sqf b/addons/explosives/functions/fnc_defuseExplosive.sqf index a6d0e82a6b..24f74a580e 100644 --- a/addons/explosives/functions/fnc_defuseExplosive.sqf +++ b/addons/explosives/functions/fnc_defuseExplosive.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Garth 'L-H' de Wet * Causes the unit to defuse the passed explosive. @@ -14,7 +15,6 @@ * * Public: Yes */ -#include "script_component.hpp" params ["_unit", "_explosive"]; TRACE_2("params",_unit,_explosive); diff --git a/addons/explosives/functions/fnc_detonateExplosive.sqf b/addons/explosives/functions/fnc_detonateExplosive.sqf index 3e0f3bdf6f..8edc83f0ff 100644 --- a/addons/explosives/functions/fnc_detonateExplosive.sqf +++ b/addons/explosives/functions/fnc_detonateExplosive.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Garth 'L-H' de Wet * Causes the unit to detonate the passed explosive. @@ -19,7 +20,6 @@ * * Public: Yes */ -#include "script_component.hpp" params ["_unit", "_range", "_item", ["_triggerClassname", "#unknown", [""]]]; TRACE_4("detonateExplosive",_unit,_range,_item,_triggerClassname); diff --git a/addons/explosives/functions/fnc_detonateExplosiveAll.sqf b/addons/explosives/functions/fnc_detonateExplosiveAll.sqf index 468183a003..ec1f1e661a 100644 --- a/addons/explosives/functions/fnc_detonateExplosiveAll.sqf +++ b/addons/explosives/functions/fnc_detonateExplosiveAll.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: VKing * Causes the unit to detonate all passed explosives. @@ -18,7 +19,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_unit", "_range", "_explosivesList", "_triggerClassname"]; TRACE_4("Params",_unit,_range,_explosivesList,_triggerClassname); diff --git a/addons/explosives/functions/fnc_dialPhone.sqf b/addons/explosives/functions/fnc_dialPhone.sqf index f4bdd68279..c7b5848e52 100644 --- a/addons/explosives/functions/fnc_dialPhone.sqf +++ b/addons/explosives/functions/fnc_dialPhone.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Garth 'L-H' de Wet * Dials the number passed and detonates the explosive. @@ -14,7 +15,6 @@ * * Public: Yes */ -#include "script_component.hpp" params ["_unit", "_code"]; TRACE_2("params",_unit,_code); diff --git a/addons/explosives/functions/fnc_dialingPhone.sqf b/addons/explosives/functions/fnc_dialingPhone.sqf index 9cafa01a5e..9fd1184150 100644 --- a/addons/explosives/functions/fnc_dialingPhone.sqf +++ b/addons/explosives/functions/fnc_dialingPhone.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Garth 'L-H' de Wet * Performs the dial tones and detonation of explosive. @@ -16,7 +17,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_args", "_pfID"]; _args params ["_unit", "_i", "_arr", "_code"]; diff --git a/addons/explosives/functions/fnc_getDetonators.sqf b/addons/explosives/functions/fnc_getDetonators.sqf index 279613cf1e..3c4d3085ce 100644 --- a/addons/explosives/functions/fnc_getDetonators.sqf +++ b/addons/explosives/functions/fnc_getDetonators.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Garth 'L-H' de Wet, mharis001 * Returns all detonators the given unit has. @@ -13,7 +14,6 @@ * * Public: Yes */ -#include "script_component.hpp" params ["_unit"]; TRACE_1("Getting detonators",_unit); diff --git a/addons/explosives/functions/fnc_getPlacedExplosives.sqf b/addons/explosives/functions/fnc_getPlacedExplosives.sqf index beb24d559d..8b1135717d 100644 --- a/addons/explosives/functions/fnc_getPlacedExplosives.sqf +++ b/addons/explosives/functions/fnc_getPlacedExplosives.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Garth 'L-H' de Wet * Gets all placed explosives by unit, optionally filtered by specific trigger type. @@ -15,7 +16,6 @@ * * Public: Yes */ -#include "script_component.hpp" // IGNORE_PRIVATE_WARNING(_allExplosives,_deadmanExplosives); params ["_unit"]; diff --git a/addons/explosives/functions/fnc_getSpeedDialExplosive.sqf b/addons/explosives/functions/fnc_getSpeedDialExplosive.sqf index 1c98ca853d..84e2ab6ad8 100644 --- a/addons/explosives/functions/fnc_getSpeedDialExplosive.sqf +++ b/addons/explosives/functions/fnc_getSpeedDialExplosive.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Garth 'L-H' de Wet * Gets the explosive from the speed dial entry. @@ -13,7 +14,6 @@ * * Public: Yes */ -#include "script_component.hpp" params ["_code"]; TRACE_1("params",_code); diff --git a/addons/explosives/functions/fnc_handleScrollWheel.sqf b/addons/explosives/functions/fnc_handleScrollWheel.sqf index 36530afb08..674769a496 100644 --- a/addons/explosives/functions/fnc_handleScrollWheel.sqf +++ b/addons/explosives/functions/fnc_handleScrollWheel.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Garth 'L-H' de Wet * Handles rotating of Explosives @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" if (!GVAR(pfeh_running)) exitWith {false}; diff --git a/addons/explosives/functions/fnc_hasExplosives.sqf b/addons/explosives/functions/fnc_hasExplosives.sqf index f86c928ca3..9c9f3a9bd0 100644 --- a/addons/explosives/functions/fnc_hasExplosives.sqf +++ b/addons/explosives/functions/fnc_hasExplosives.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Garth 'L-H' de Wet * Whether the passed unit has any explosives on them. @@ -13,7 +14,6 @@ * * Public: Yes */ -#include "script_component.hpp" params ["_unit"]; TRACE_1("params",_unit); diff --git a/addons/explosives/functions/fnc_hasPlacedExplosives.sqf b/addons/explosives/functions/fnc_hasPlacedExplosives.sqf index 174bc07fbc..3bb3f03340 100644 --- a/addons/explosives/functions/fnc_hasPlacedExplosives.sqf +++ b/addons/explosives/functions/fnc_hasPlacedExplosives.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Garth 'L-H' de Wet * Whether the passed unit has placed any explosives or has a clacker that was used when explosives were placed. @@ -13,7 +14,6 @@ * * Public: Yes */ -#include "script_component.hpp" // IGNORE_PRIVATE_WARNING(_hasPlacedExplosives); (count (_this call FUNC(getPlacedExplosives)) > 0) diff --git a/addons/explosives/functions/fnc_interactEH.sqf b/addons/explosives/functions/fnc_interactEH.sqf index f391e4fa62..8525b84499 100644 --- a/addons/explosives/functions/fnc_interactEH.sqf +++ b/addons/explosives/functions/fnc_interactEH.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: PabstMirror, mharis001 * Dynamically adds "Defuse" actions to nearby mines when interact_menu is opened. @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_interactionType"]; TRACE_1("Explosives interactEH",_interactionType); diff --git a/addons/explosives/functions/fnc_module.sqf b/addons/explosives/functions/fnc_module.sqf index f6a486591a..6fa61b401a 100644 --- a/addons/explosives/functions/fnc_module.sqf +++ b/addons/explosives/functions/fnc_module.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Garth 'L-H' de Wet * Initialises the explosives module @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_logic"]; diff --git a/addons/explosives/functions/fnc_onIncapacitated.sqf b/addons/explosives/functions/fnc_onIncapacitated.sqf index 2ae23629d5..74d99d2faa 100644 --- a/addons/explosives/functions/fnc_onIncapacitated.sqf +++ b/addons/explosives/functions/fnc_onIncapacitated.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Garth 'L-H' de Wet * Detonates all attached deadman's switched triggered explosives. @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" //NOTE: Extended_Killed_EventHandlers runs only where _unit is local params ["_unit"]; diff --git a/addons/explosives/functions/fnc_onInventoryChanged.sqf b/addons/explosives/functions/fnc_onInventoryChanged.sqf index 185fdef6c3..874ae3394f 100644 --- a/addons/explosives/functions/fnc_onInventoryChanged.sqf +++ b/addons/explosives/functions/fnc_onInventoryChanged.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Garth 'L-H' de Wet * When a take/put event handler fires and a detonator is changed hands. @@ -16,7 +17,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_receiver", "_giver", "_item"]; TRACE_3("params",_receiver,_giver,_item); diff --git a/addons/explosives/functions/fnc_openTimerUI.sqf b/addons/explosives/functions/fnc_openTimerUI.sqf index 2fddc33e28..05d340e8dd 100644 --- a/addons/explosives/functions/fnc_openTimerUI.sqf +++ b/addons/explosives/functions/fnc_openTimerUI.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: mharis001 * Opens the Explosive Timer UI for given explosive. @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_explosive"]; TRACE_1("Opening timer UI",_explosive); diff --git a/addons/explosives/functions/fnc_placeExplosive.sqf b/addons/explosives/functions/fnc_placeExplosive.sqf index d0d93df4c1..df8f3ab89c 100644 --- a/addons/explosives/functions/fnc_placeExplosive.sqf +++ b/addons/explosives/functions/fnc_placeExplosive.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Garth 'L-H' de Wet * Places an explosive at the requested position. @@ -19,7 +20,6 @@ * * Public: Yes */ -#include "script_component.hpp" params ["_unit", "_pos", "_dir", "_magazineClass", "_triggerConfig", "_triggerSpecificVars", ["_setupPlaceholderObject", objNull]]; TRACE_7("params",_unit,_pos,_dir,_magazineClass,_triggerConfig,_triggerSpecificVars,_setupPlaceholderObject); diff --git a/addons/explosives/functions/fnc_removeFromSpeedDial.sqf b/addons/explosives/functions/fnc_removeFromSpeedDial.sqf index d15b1b34c7..998bc492d0 100644 --- a/addons/explosives/functions/fnc_removeFromSpeedDial.sqf +++ b/addons/explosives/functions/fnc_removeFromSpeedDial.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Garth 'L-H' de Wet * Removes the specified speed dial from unit's speed dial. @@ -13,7 +14,6 @@ * * Public: Yes */ -#include "script_component.hpp" private _speedDial = ace_player getVariable [QGVAR(SpeedDial), []]; if (count _speedDial == 0) exitWith {}; diff --git a/addons/explosives/functions/fnc_scriptedExplosive.sqf b/addons/explosives/functions/fnc_scriptedExplosive.sqf index 5c27e35e60..6b4aedd6a3 100644 --- a/addons/explosives/functions/fnc_scriptedExplosive.sqf +++ b/addons/explosives/functions/fnc_scriptedExplosive.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: VKing * Detonate explosives via script, for use in triggers or mission scripts to detonate editor-placed explosives. @@ -16,7 +17,6 @@ * * Public: Yes */ -#include "script_component.hpp" params [["_explosiveArr", [], [[], objNull]], ["_fuzeTime", 0, [0]], ["_triggerClassname", "#scripted", [""]]]; diff --git a/addons/explosives/functions/fnc_selectTrigger.sqf b/addons/explosives/functions/fnc_selectTrigger.sqf index 77018ea587..549754aab2 100644 --- a/addons/explosives/functions/fnc_selectTrigger.sqf +++ b/addons/explosives/functions/fnc_selectTrigger.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Garth 'L-H' de Wet * Selects a trigger for an explosive. @@ -15,7 +16,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_explosive", "_magazine", "_trigger"]; TRACE_3("params",_explosive,_magazine,_trigger); diff --git a/addons/explosives/functions/fnc_setPosition.sqf b/addons/explosives/functions/fnc_setPosition.sqf index b19e63ff5a..7d4235b8d2 100644 --- a/addons/explosives/functions/fnc_setPosition.sqf +++ b/addons/explosives/functions/fnc_setPosition.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Garth 'L-H' de Wet * Sets the Dir and pitch of passed object @@ -15,7 +16,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_explosive", "_direction", "_pitch"]; TRACE_3("params",_explosive,_direction,_pitch); diff --git a/addons/explosives/functions/fnc_setSpeedDial.sqf b/addons/explosives/functions/fnc_setSpeedDial.sqf index 1876a50103..7d836015a4 100644 --- a/addons/explosives/functions/fnc_setSpeedDial.sqf +++ b/addons/explosives/functions/fnc_setSpeedDial.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Garth 'L-H' de Wet * Sets the speed dial for the UI. @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" private _speedDial = ace_player getVariable [QGVAR(SpeedDial), []]; if (_speedDial isEqualTo []) exitWith {}; diff --git a/addons/explosives/functions/fnc_setupExplosive.sqf b/addons/explosives/functions/fnc_setupExplosive.sqf index b69f7eb40b..8bc4343430 100644 --- a/addons/explosives/functions/fnc_setupExplosive.sqf +++ b/addons/explosives/functions/fnc_setupExplosive.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Garth 'L-H' de Wet * Starts the setup process for the passed explosive. Player only. @@ -15,8 +16,6 @@ * * Public: Yes */ -// #define ENABLE_PERFORMANCE_COUNTERS -#include "script_component.hpp" #define PLACE_RANGE_MAX 1 #define PLACE_RANGE_MIN 0.025 diff --git a/addons/explosives/functions/fnc_spawnFlare.sqf b/addons/explosives/functions/fnc_spawnFlare.sqf index 79f105b67b..5531d11340 100644 --- a/addons/explosives/functions/fnc_spawnFlare.sqf +++ b/addons/explosives/functions/fnc_spawnFlare.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: VKing * Spawns a flare on the ground for tripflare trigger @@ -13,7 +14,6 @@ * * Public: no */ -#include "script_component.hpp" params ["_posX","_posY","_posZ"]; TRACE_3("Params",_posX,_posY,_posZ); diff --git a/addons/explosives/functions/fnc_startDefuse.sqf b/addons/explosives/functions/fnc_startDefuse.sqf index ebc290f4ab..96b3b3eac2 100644 --- a/addons/explosives/functions/fnc_startDefuse.sqf +++ b/addons/explosives/functions/fnc_startDefuse.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Garth 'L-H' de Wet * Starts defusing an explosive @@ -14,7 +15,6 @@ * * Public: Yes */ -#include "script_component.hpp" params ["_unit", "_target"]; TRACE_2("params",_unit,_target); diff --git a/addons/explosives/functions/fnc_startTimer.sqf b/addons/explosives/functions/fnc_startTimer.sqf index 10faae3707..484171ec6e 100644 --- a/addons/explosives/functions/fnc_startTimer.sqf +++ b/addons/explosives/functions/fnc_startTimer.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Garth 'L-H' de Wet * Starts a timer for an explosive. @@ -15,7 +16,6 @@ * * Public: Yes */ -#include "script_component.hpp" params ["_explosive", "_delay", ["_trigger", "#timer", [""]]]; TRACE_3("Starting timer",_explosive,_delay,_trigger); diff --git a/addons/explosives/functions/fnc_triggerType.sqf b/addons/explosives/functions/fnc_triggerType.sqf index b704e56466..6bcbf775d3 100644 --- a/addons/explosives/functions/fnc_triggerType.sqf +++ b/addons/explosives/functions/fnc_triggerType.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Garth 'L-H' de Wet * Gets the types of triggers associated with the explosive @@ -13,7 +14,6 @@ * * Public: Yes */ -#include "script_component.hpp" params ["_magazineClassname"]; TRACE_1("params",_magazineClassname); diff --git a/addons/fastroping/functions/fnc_canCloseRamp.sqf b/addons/fastroping/functions/fnc_canCloseRamp.sqf index 253cb241b5..969d719796 100644 --- a/addons/fastroping/functions/fnc_canCloseRamp.sqf +++ b/addons/fastroping/functions/fnc_canCloseRamp.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: BaerMitUmlaut * Checks if the player can close the ramp of the given helo. @@ -15,8 +16,6 @@ * * Public: No */ - -#include "script_component.hpp" params ["_vehicle", "_door", "_turretPaths"]; (_vehicle doorPhase _door > 0.5) && diff --git a/addons/fastroping/functions/fnc_canCutRopes.sqf b/addons/fastroping/functions/fnc_canCutRopes.sqf index 84239db671..8107b8066b 100644 --- a/addons/fastroping/functions/fnc_canCutRopes.sqf +++ b/addons/fastroping/functions/fnc_canCutRopes.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: BaerMitUmlaut * Checks if the unit can cut deployed ropes. @@ -13,8 +14,6 @@ * * Public: No */ - -#include "script_component.hpp" params ["_vehicle"]; private _deployedRopes = _vehicle getVariable [QGVAR(deployedRopes), []]; diff --git a/addons/fastroping/functions/fnc_canDeployRopes.sqf b/addons/fastroping/functions/fnc_canDeployRopes.sqf index cfc2aecc8a..5bc770c01d 100644 --- a/addons/fastroping/functions/fnc_canDeployRopes.sqf +++ b/addons/fastroping/functions/fnc_canDeployRopes.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: BaerMitUmlaut * Checks if the unit can deploy ropes from the helicopter. @@ -14,8 +15,6 @@ * * Public: No */ - -#include "script_component.hpp" params ["_unit", "_vehicle"]; private _config = configFile >> "CfgVehicles" >> typeOf _vehicle; diff --git a/addons/fastroping/functions/fnc_canFastRope.sqf b/addons/fastroping/functions/fnc_canFastRope.sqf index 4fe38cca93..b4f5e20474 100644 --- a/addons/fastroping/functions/fnc_canFastRope.sqf +++ b/addons/fastroping/functions/fnc_canFastRope.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: BaerMitUmlaut * Checks if the unit can fast rope from the helicopter. @@ -14,8 +15,6 @@ * * Public: No */ - -#include "script_component.hpp" params ["_unit", "_vehicle"]; private _deployedRopes = _vehicle getVariable [QGVAR(deployedRopes), []]; diff --git a/addons/fastroping/functions/fnc_canPrepareFRIES.sqf b/addons/fastroping/functions/fnc_canPrepareFRIES.sqf index 67e2165c3f..881996b5a1 100644 --- a/addons/fastroping/functions/fnc_canPrepareFRIES.sqf +++ b/addons/fastroping/functions/fnc_canPrepareFRIES.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: BaerMitUmlaut * Checks if the unit can prepare the helicopters FRIES. @@ -13,8 +14,6 @@ * * Public: No */ - -#include "script_component.hpp" params ["_vehicle"]; private _config = configFile >> "CfgVehicles" >> typeOf _vehicle; diff --git a/addons/fastroping/functions/fnc_canStowFRIES.sqf b/addons/fastroping/functions/fnc_canStowFRIES.sqf index 655d5776b8..6f26fc1ed5 100644 --- a/addons/fastroping/functions/fnc_canStowFRIES.sqf +++ b/addons/fastroping/functions/fnc_canStowFRIES.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: BaerMitUmlaut * Checks if the unit can stow the helicopters FRIES. @@ -13,8 +14,6 @@ * * Public: No */ - -#include "script_component.hpp" params ["_vehicle"]; private _config = configFile >> "CfgVehicles" >> typeOf _vehicle; diff --git a/addons/fastroping/functions/fnc_checkVehicleThread.sqf b/addons/fastroping/functions/fnc_checkVehicleThread.sqf index 38a2cad8c6..7889cdb268 100644 --- a/addons/fastroping/functions/fnc_checkVehicleThread.sqf +++ b/addons/fastroping/functions/fnc_checkVehicleThread.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: BaerMitUmlaut * Checks if the given helicopter still exits, and if not, destroys the FRIES. @@ -14,8 +15,6 @@ * * Public: No */ - -#include "script_component.hpp" params ["_vehicle", "_fries"]; if (isNull _vehicle) then { diff --git a/addons/fastroping/functions/fnc_cutRopes.sqf b/addons/fastroping/functions/fnc_cutRopes.sqf index 2b3aaa8a8d..25b880e41c 100644 --- a/addons/fastroping/functions/fnc_cutRopes.sqf +++ b/addons/fastroping/functions/fnc_cutRopes.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: BaerMitUmlaut * Cut deployed ropes. @@ -13,8 +14,6 @@ * * Public: No */ - -#include "script_component.hpp" params ["_vehicle"]; private _deployedRopes = _vehicle getVariable [QGVAR(deployedRopes), []]; diff --git a/addons/fastroping/functions/fnc_deployAI.sqf b/addons/fastroping/functions/fnc_deployAI.sqf index d88e07929e..f6f3915181 100644 --- a/addons/fastroping/functions/fnc_deployAI.sqf +++ b/addons/fastroping/functions/fnc_deployAI.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: BaerMitUmlaut * Auomatically deploy a helicopter filled with AI units. @@ -15,8 +16,6 @@ * * Public: Yes */ - -#include "script_component.hpp" params [["_vehicle", objNull, [objNull]], ["_deploySpecial", false, [true]], ["_createDeploymentGroup", true, [true]]]; if (isNull _vehicle || {!(_vehicle isKindOf "Helicopter")}) exitWith { diff --git a/addons/fastroping/functions/fnc_deployAIWaypoint.sqf b/addons/fastroping/functions/fnc_deployAIWaypoint.sqf index 4df221c80e..20e3f704f6 100644 --- a/addons/fastroping/functions/fnc_deployAIWaypoint.sqf +++ b/addons/fastroping/functions/fnc_deployAIWaypoint.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: BaerMitUmlaut * Waypoint function for the fast rope waypoint. @@ -14,8 +15,6 @@ * * Public: No */ - -#include "script_component.hpp" params [["_group", grpNull, [grpNull]], ["_position", [0, 0, 0], [[]], 3]]; private _vehicle = vehicle leader _group; diff --git a/addons/fastroping/functions/fnc_deployRopes.sqf b/addons/fastroping/functions/fnc_deployRopes.sqf index c6ed9dc9b6..bd286fb08d 100644 --- a/addons/fastroping/functions/fnc_deployRopes.sqf +++ b/addons/fastroping/functions/fnc_deployRopes.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: BaerMitUmlaut * Deploy ropes from the helicopter. @@ -13,8 +14,6 @@ * * Public: No */ - -#include "script_component.hpp" params ["_vehicle"]; private _config = configFile >> "CfgVehicles" >> typeOf _vehicle; diff --git a/addons/fastroping/functions/fnc_equipFRIES.sqf b/addons/fastroping/functions/fnc_equipFRIES.sqf index 1cc3202619..a6dc469749 100644 --- a/addons/fastroping/functions/fnc_equipFRIES.sqf +++ b/addons/fastroping/functions/fnc_equipFRIES.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: BaerMitUmlaut * Equips the given helicopter with a FRIES. @@ -13,8 +14,6 @@ * * Public: No */ - -#include "script_component.hpp" params ["_vehicle"]; private _config = configFile >> "CfgVehicles" >> typeOf _vehicle; diff --git a/addons/fastroping/functions/fnc_fastRope.sqf b/addons/fastroping/functions/fnc_fastRope.sqf index a4ce39e7ad..9deb95b1a6 100644 --- a/addons/fastroping/functions/fnc_fastRope.sqf +++ b/addons/fastroping/functions/fnc_fastRope.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: BaerMitUmlaut * Lets the unit fast rope. @@ -14,8 +15,6 @@ * * Public: No */ - -#include "script_component.hpp" params ["_unit", "_vehicle"]; //Select unoccupied rope diff --git a/addons/fastroping/functions/fnc_fastRopeLocalPFH.sqf b/addons/fastroping/functions/fnc_fastRopeLocalPFH.sqf index d7d49dd11f..c46e919bc5 100644 --- a/addons/fastroping/functions/fnc_fastRopeLocalPFH.sqf +++ b/addons/fastroping/functions/fnc_fastRopeLocalPFH.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: BaerMitUmlaut * Local PerFrameHandler during fast roping. @@ -14,8 +15,6 @@ * * Public: No */ - -#include "script_component.hpp" params ["_arguments", "_pfhHandle"]; _arguments params ["_unit", "", "_rope", "", "_timeToPlayRopeSound"]; _rope params ["", "", "", "_dummy", "_hook"]; diff --git a/addons/fastroping/functions/fnc_fastRopeServerPFH.sqf b/addons/fastroping/functions/fnc_fastRopeServerPFH.sqf index c8be61fb6f..ed9cad2255 100644 --- a/addons/fastroping/functions/fnc_fastRopeServerPFH.sqf +++ b/addons/fastroping/functions/fnc_fastRopeServerPFH.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: BaerMitUmlaut * Server PerFrameHandler during fast roping. @@ -14,8 +15,6 @@ * * Public: No */ - -#include "script_component.hpp" params ["_arguments", "_pfhHandle"]; _arguments params ["_unit", "_vehicle", "_rope", "_ropeIndex", "_hasBeenAttached"]; _rope params ["_attachmentPoint", "_ropeTop", "_ropeBottom", "_dummy", "_hook"]; diff --git a/addons/fastroping/functions/fnc_moduleEquipFRIES.sqf b/addons/fastroping/functions/fnc_moduleEquipFRIES.sqf index 9bde56debe..33975168a6 100644 --- a/addons/fastroping/functions/fnc_moduleEquipFRIES.sqf +++ b/addons/fastroping/functions/fnc_moduleEquipFRIES.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: BaerMitUmlaut * Equips synched helicopters with a FRIES. @@ -13,8 +14,6 @@ * * Public: No */ - -#include "script_component.hpp" params ["_module"]; private _synchedUnits = synchronizedObjects _module; diff --git a/addons/fastroping/functions/fnc_onCutCommon.sqf b/addons/fastroping/functions/fnc_onCutCommon.sqf index 1c074a1e01..1a32739eaa 100644 --- a/addons/fastroping/functions/fnc_onCutCommon.sqf +++ b/addons/fastroping/functions/fnc_onCutCommon.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: BaerMitUmlaut * Function for closing doors and retracting the hook for most vanilla and older Arma helos. @@ -13,8 +14,6 @@ * * Public: No */ - -#include "script_component.hpp" params ["_vehicle"]; private _fries = _vehicle getVariable [QGVAR(FRIES), objNull]; diff --git a/addons/fastroping/functions/fnc_onPrepareCommon.sqf b/addons/fastroping/functions/fnc_onPrepareCommon.sqf index 40603a6527..76665dea71 100644 --- a/addons/fastroping/functions/fnc_onPrepareCommon.sqf +++ b/addons/fastroping/functions/fnc_onPrepareCommon.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: BaerMitUmlaut * Function for opening doors and extending the hook for most vanilla and older Arma helos. @@ -13,8 +14,6 @@ * * Public: No */ - -#include "script_component.hpp" params ["_vehicle"]; private _waitTime = 2; diff --git a/addons/fastroping/functions/fnc_onRopeBreak.sqf b/addons/fastroping/functions/fnc_onRopeBreak.sqf index 29937217cf..023e53f762 100644 --- a/addons/fastroping/functions/fnc_onRopeBreak.sqf +++ b/addons/fastroping/functions/fnc_onRopeBreak.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: BaerMitUmlaut * Handles ropes breaking when deployed. @@ -14,8 +15,6 @@ * * Public: No */ - -#include "script_component.hpp" params ["_ehArgs", "_part"]; _ehArgs params ["_rope", "_helper1", "_helper2"]; diff --git a/addons/fastroping/functions/fnc_prepareFRIES.sqf b/addons/fastroping/functions/fnc_prepareFRIES.sqf index 7b98b5ff63..c5bac4deb1 100644 --- a/addons/fastroping/functions/fnc_prepareFRIES.sqf +++ b/addons/fastroping/functions/fnc_prepareFRIES.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: BaerMitUmlaut * Prepares the helicopters FRIES. @@ -13,8 +14,6 @@ * * Public: No */ - -#include "script_component.hpp" params ["_vehicle"]; //Stage indicator: 0 - travel mode; 1 - preparing/stowing FRIES; 2 - FRIES ready; 3 - ropes deployed diff --git a/addons/fastroping/functions/fnc_stowFRIES.sqf b/addons/fastroping/functions/fnc_stowFRIES.sqf index 18813295d8..3b18a6dbe1 100644 --- a/addons/fastroping/functions/fnc_stowFRIES.sqf +++ b/addons/fastroping/functions/fnc_stowFRIES.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: BaerMitUmlaut * Stows the helicopters FRIES. @@ -13,8 +14,6 @@ * * Public: No */ - -#include "script_component.hpp" params ["_vehicle"]; //Stage indicator: 0 - travel mode; 1 - preparing/stowing FRIES; 2 - FRIES ready; 3 - ropes deployed diff --git a/addons/fcs/functions/fnc_adjustRange.sqf b/addons/fcs/functions/fnc_adjustRange.sqf index 0f400a50fb..cb0e00c9c1 100644 --- a/addons/fcs/functions/fnc_adjustRange.sqf +++ b/addons/fcs/functions/fnc_adjustRange.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: KoffeinFlummi * Adjusts the currently zeroed distance. @@ -15,7 +16,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_vehicle", "_turret", "_delta"]; diff --git a/addons/fcs/functions/fnc_calculateSolution.sqf b/addons/fcs/functions/fnc_calculateSolution.sqf index f28a1c7048..8ceb0c62cf 100644 --- a/addons/fcs/functions/fnc_calculateSolution.sqf +++ b/addons/fcs/functions/fnc_calculateSolution.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: VKing * Calculate FCS solution @@ -16,7 +17,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_vehicle","_turret","_distance","_angleTarget"]; TRACE_4("params",_vehicle,_turret,_distance,_angleTarget); diff --git a/addons/fcs/functions/fnc_canResetFCS.sqf b/addons/fcs/functions/fnc_canResetFCS.sqf index 8713357f3d..21811d9fd3 100644 --- a/addons/fcs/functions/fnc_canResetFCS.sqf +++ b/addons/fcs/functions/fnc_canResetFCS.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: KoffeinFlummi * Called from config. Can player reset FCS? @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_unit"]; diff --git a/addons/fcs/functions/fnc_canUseFCS.sqf b/addons/fcs/functions/fnc_canUseFCS.sqf index de4af99d7a..a246d51f0c 100644 --- a/addons/fcs/functions/fnc_canUseFCS.sqf +++ b/addons/fcs/functions/fnc_canUseFCS.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Called from config. Returns true if the player is a gunner and the players current vehicle has a FCS. @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" getNumber ([configFile >> "CfgVehicles" >> typeOf vehicle ACE_player, [ACE_player] call EFUNC(common,getTurretIndex)] call EFUNC(common,getTurretConfigPath) >> QGVAR(Enabled)) == 1 && {cameraView == "GUNNER"} diff --git a/addons/fcs/functions/fnc_canUseRangefinder.sqf b/addons/fcs/functions/fnc_canUseRangefinder.sqf index a8b8239097..b558240363 100644 --- a/addons/fcs/functions/fnc_canUseRangefinder.sqf +++ b/addons/fcs/functions/fnc_canUseRangefinder.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Returns true if the laser distance measurement can be read from the engine. @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" !isNull ((uiNamespace getVariable ["ACE_dlgRangefinder", displayNull]) displayCtrl 1713151) && {cameraView == "GUNNER"} // return diff --git a/addons/fcs/functions/fnc_firedEH.sqf b/addons/fcs/functions/fnc_firedEH.sqf index 097722c958..0959708bb0 100644 --- a/addons/fcs/functions/fnc_firedEH.sqf +++ b/addons/fcs/functions/fnc_firedEH.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: KoffeinFlummi * Adjusts the direction of a shell. Called from the unified fired EH only if the gunner is a player. @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" //IGNORE_PRIVATE_WARNING ["_unit", "_weapon", "_muzzle", "_mode", "_ammo", "_magazine", "_projectile", "_vehicle", "_gunner", "_turret"]; TRACE_10("firedEH:",_unit, _weapon, _muzzle, _mode, _ammo, _magazine, _projectile, _vehicle, _gunner, _turret); diff --git a/addons/fcs/functions/fnc_getAngle.sqf b/addons/fcs/functions/fnc_getAngle.sqf index d9e14a343b..05add960fb 100644 --- a/addons/fcs/functions/fnc_getAngle.sqf +++ b/addons/fcs/functions/fnc_getAngle.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: KoffeinFlummi * Calculates the angle offset necessary to hit the current target. @@ -19,7 +20,6 @@ * * Public: No */ -#include "script_component.hpp" #define PRECISION 0.1 diff --git a/addons/fcs/functions/fnc_getRange.sqf b/addons/fcs/functions/fnc_getRange.sqf index 829e4c9072..0512359d1e 100644 --- a/addons/fcs/functions/fnc_getRange.sqf +++ b/addons/fcs/functions/fnc_getRange.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Read laser distance measurement from engine. @@ -16,7 +17,6 @@ * * Public: No */ -#include "script_component.hpp" params [["_accuracy",1], ["_maxDistance",5000], ["_minDistance",0], ["_blank",false]]; diff --git a/addons/fcs/functions/fnc_handleAirBurstAmmunitionPFH.sqf b/addons/fcs/functions/fnc_handleAirBurstAmmunitionPFH.sqf index 4c1c210994..a2fe8a2b7f 100644 --- a/addons/fcs/functions/fnc_handleAirBurstAmmunitionPFH.sqf +++ b/addons/fcs/functions/fnc_handleAirBurstAmmunitionPFH.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Handle Air burst ammunition. Called from per frame handler. @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" (_this select 0) params ["_vehicle", "_projectile", "_zeroing"]; diff --git a/addons/fcs/functions/fnc_keyDown.sqf b/addons/fcs/functions/fnc_keyDown.sqf index 01795ce280..0e141c0968 100644 --- a/addons/fcs/functions/fnc_keyDown.sqf +++ b/addons/fcs/functions/fnc_keyDown.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: KoffeinFlummi * Starts watching the target for sideways correction. @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_vehicle", "_turret"]; diff --git a/addons/fcs/functions/fnc_keyUp.sqf b/addons/fcs/functions/fnc_keyUp.sqf index d35174a198..fb3ce99974 100644 --- a/addons/fcs/functions/fnc_keyUp.sqf +++ b/addons/fcs/functions/fnc_keyUp.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: KoffeinFlummi * Calculates the offsets for all weapons needed to hit the current target. @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_vehicle", "_turret", "_distance", ["_showHint", false], ["_playSound", true]]; TRACE_5("params",_vehicle,_turret,_distance,_showHint,_playSound); diff --git a/addons/fcs/functions/fnc_onForceUpdate.sqf b/addons/fcs/functions/fnc_onForceUpdate.sqf index 1bbaee5b58..ddf426d293 100644 --- a/addons/fcs/functions/fnc_onForceUpdate.sqf +++ b/addons/fcs/functions/fnc_onForceUpdate.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: ACE-Team * @@ -14,8 +15,6 @@ * Public: No */ -#include "script_component.hpp" - params ["_unit"]; private _vehicle = vehicle _unit; diff --git a/addons/fcs/functions/fnc_reset.sqf b/addons/fcs/functions/fnc_reset.sqf index 9d4a5f65a0..4cbc4ee7b2 100644 --- a/addons/fcs/functions/fnc_reset.sqf +++ b/addons/fcs/functions/fnc_reset.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: KoffeinFlummi * Resets the FCS to default. @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_vehicle", "_turret"]; diff --git a/addons/fcs/functions/fnc_updateRangeHUD.sqf b/addons/fcs/functions/fnc_updateRangeHUD.sqf index 2e415b3f49..a00de5fc67 100644 --- a/addons/fcs/functions/fnc_updateRangeHUD.sqf +++ b/addons/fcs/functions/fnc_updateRangeHUD.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Update compatible info elements. @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" disableSerialization; private _dlgRangefinder = uiNamespace getVariable ["ACE_dlgRangefinder", displayNull]; diff --git a/addons/fcs/functions/fnc_vehicleInit.sqf b/addons/fcs/functions/fnc_vehicleInit.sqf index 8a60f31e2e..7117a12112 100644 --- a/addons/fcs/functions/fnc_vehicleInit.sqf +++ b/addons/fcs/functions/fnc_vehicleInit.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: KoffeinFlummi, commy2 * Checks if a vehicle is equipped with an FCS and if so, adds the fired event handler. Execute on server. @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_vehicle"]; diff --git a/addons/finger/functions/fnc_incomingFinger.sqf b/addons/finger/functions/fnc_incomingFinger.sqf index 5a970aa372..4706798f40 100644 --- a/addons/finger/functions/fnc_incomingFinger.sqf +++ b/addons/finger/functions/fnc_incomingFinger.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: TheDrill, PabstMirror * Recieve an finger event, adds to the array (or updates if already present) and starts PFEH if not already running @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_sourceUnit", "_fingerPosPrecise", "_distance"]; diff --git a/addons/finger/functions/fnc_keyPress.sqf b/addons/finger/functions/fnc_keyPress.sqf index 44ee8b6474..5308c44e6c 100644 --- a/addons/finger/functions/fnc_keyPress.sqf +++ b/addons/finger/functions/fnc_keyPress.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: TheDrill, PabstMirror * On keypress, point and send position to nearby players @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" if (!alive ACE_player) exitWith {false}; diff --git a/addons/finger/functions/fnc_moduleSettings.sqf b/addons/finger/functions/fnc_moduleSettings.sqf index 678b51ac5f..7dd93ee7ae 100644 --- a/addons/finger/functions/fnc_moduleSettings.sqf +++ b/addons/finger/functions/fnc_moduleSettings.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: PabstMirror * Module for fingering settings @@ -14,8 +15,6 @@ * Public: No */ -#include "script_component.hpp" - params ["_logic"]; [_logic, QGVAR(enabled), "enabled"] call EFUNC(common,readSettingFromModule); diff --git a/addons/finger/functions/fnc_perFrameEH.sqf b/addons/finger/functions/fnc_perFrameEH.sqf index 3c0d4a586f..bfb9995720 100644 --- a/addons/finger/functions/fnc_perFrameEH.sqf +++ b/addons/finger/functions/fnc_perFrameEH.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: TheDrill, PabstMirror * The perFrameEventHandler to draw the icons @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" if (!alive ACE_player) then {GVAR(fingersHash) = [] call CBA_fnc_hashCreate;}; // Conditions: canInteract diff --git a/addons/frag/functions/fnc_addBlackList.sqf b/addons/frag/functions/fnc_addBlackList.sqf index cfa96c9784..71452b9814 100644 --- a/addons/frag/functions/fnc_addBlackList.sqf +++ b/addons/frag/functions/fnc_addBlackList.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Jaynus, NouberNou * Adds a round to the blacklist (will be ignored). @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_round"]; TRACE_1("addBlackList",_round); diff --git a/addons/frag/functions/fnc_addPfhRound.sqf b/addons/frag/functions/fnc_addPfhRound.sqf index f97d868b9d..35b927e687 100644 --- a/addons/frag/functions/fnc_addPfhRound.sqf +++ b/addons/frag/functions/fnc_addPfhRound.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Jaynus, NouberNou * Starts tracking a round that will frag. @@ -16,8 +17,6 @@ * * Public: No */ -//#define DEBUG_MODE_FULL -#include "script_component.hpp" params ["_gun", "_type", "_round"]; TRACE_3("addPfhRound",_gun,_type,_round); diff --git a/addons/frag/functions/fnc_dev_addTrack.sqf b/addons/frag/functions/fnc_dev_addTrack.sqf index fd180eacfe..ce459008f6 100644 --- a/addons/frag/functions/fnc_dev_addTrack.sqf +++ b/addons/frag/functions/fnc_dev_addTrack.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: ACE-Team * @@ -14,8 +15,6 @@ * Public: No */ -#include "script_component.hpp" - params ["_origin", "_obj", ["_color", [1, 0, 0, 1]]]; private _positions = []; diff --git a/addons/frag/functions/fnc_dev_debugAmmo.sqf b/addons/frag/functions/fnc_dev_debugAmmo.sqf index 8eec5f04f5..42debf3d61 100644 --- a/addons/frag/functions/fnc_dev_debugAmmo.sqf +++ b/addons/frag/functions/fnc_dev_debugAmmo.sqf @@ -1,3 +1,5 @@ +#define DEBUG_MODE_FULL +#include "script_component.hpp" /* * Author: ACE-Team * @@ -14,9 +16,6 @@ * Public: No */ -#define DEBUG_MODE_FULL -#include "script_component.hpp" - params [ ["_debugMissing", true, [false]], ["_debugForce", false, [false]], diff --git a/addons/frag/functions/fnc_dev_drawTraces.sqf b/addons/frag/functions/fnc_dev_drawTraces.sqf index f7d36b4f02..76e729ed7f 100644 --- a/addons/frag/functions/fnc_dev_drawTraces.sqf +++ b/addons/frag/functions/fnc_dev_drawTraces.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: ACE-Team * @@ -14,8 +15,6 @@ * Public: No */ -#include "script_component.hpp" - { _x params ["", "", "", "", "_positions", "_color"]; private _index = 0; diff --git a/addons/frag/functions/fnc_dev_startTracing.sqf b/addons/frag/functions/fnc_dev_startTracing.sqf index e58445ec83..d709255a73 100644 --- a/addons/frag/functions/fnc_dev_startTracing.sqf +++ b/addons/frag/functions/fnc_dev_startTracing.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: ACE-Team * @@ -14,8 +15,6 @@ * Public: No */ -#include "script_component.hpp" - if (GVAR(tracesStarted)) exitWith {}; INFO("Starting Trace Drawing"); diff --git a/addons/frag/functions/fnc_dev_stopTracing.sqf b/addons/frag/functions/fnc_dev_stopTracing.sqf index f3b8fa234b..75cf38b6d9 100644 --- a/addons/frag/functions/fnc_dev_stopTracing.sqf +++ b/addons/frag/functions/fnc_dev_stopTracing.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: ACE-Team * Dev things @@ -13,8 +14,6 @@ * Public: No */ -#include "script_component.hpp" - if (!GVAR(tracesStarted)) exitWith {}; INFO("Ending Trace Drawing"); diff --git a/addons/frag/functions/fnc_dev_trackTrace.sqf b/addons/frag/functions/fnc_dev_trackTrace.sqf index b71f1982ff..6481b89310 100644 --- a/addons/frag/functions/fnc_dev_trackTrace.sqf +++ b/addons/frag/functions/fnc_dev_trackTrace.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: ACE-Team * Dev things @@ -14,8 +15,6 @@ * Public: No */ -#include "script_component.hpp" - params ["_args", "_pfhID"]; _args params ["_tracerObj", "_index"]; diff --git a/addons/frag/functions/fnc_doExplosions.sqf b/addons/frag/functions/fnc_doExplosions.sqf index 25302cca7c..1f5c37597a 100644 --- a/addons/frag/functions/fnc_doExplosions.sqf +++ b/addons/frag/functions/fnc_doExplosions.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: ACE-Team * @@ -14,9 +15,6 @@ * Public: No */ -//fnc_doExplosions.sqf -#include "script_component.hpp" - params ["_args", "_pfhID"]; _args params ["_explosions", "_index"]; diff --git a/addons/frag/functions/fnc_doReflections.sqf b/addons/frag/functions/fnc_doReflections.sqf index 622c4c57f4..7b16385d75 100644 --- a/addons/frag/functions/fnc_doReflections.sqf +++ b/addons/frag/functions/fnc_doReflections.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: ACE-Team * Dev things @@ -14,9 +15,6 @@ * Public: No */ -//fnc_doReflections.sqf -#include "script_component.hpp" - params ["_pos", "_ammo", ["_depth", 1]]; // TEST_ICONS pushBack [_pos, format ["EXP!", _hit, _range, _hitFactor]]; diff --git a/addons/frag/functions/fnc_doSpall.sqf b/addons/frag/functions/fnc_doSpall.sqf index 03a2df121b..eb97875570 100644 --- a/addons/frag/functions/fnc_doSpall.sqf +++ b/addons/frag/functions/fnc_doSpall.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: ACE-Team * Dev things @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" #define WEIGHTED_SIZE [QGVAR(spall_small), 4, QGVAR(spall_medium), 3, QGVAR(spall_large), 2, QGVAR(spall_huge), 1] diff --git a/addons/frag/functions/fnc_findReflections.sqf b/addons/frag/functions/fnc_findReflections.sqf index 774e1764ea..8b4a5922a5 100644 --- a/addons/frag/functions/fnc_findReflections.sqf +++ b/addons/frag/functions/fnc_findReflections.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: ACE-Team * @@ -14,9 +15,6 @@ * Public: No */ -//fnc_findReflections.sqf -#include "script_component.hpp" - BEGIN_COUNTER(fnc_findReflections); params ["_args", "_pfhID"]; _args params ["_pos", "_explosiveInfo", "_los", "_nlos", "_zIndex", "_depth", "_rand"]; diff --git a/addons/frag/functions/fnc_fired.sqf b/addons/frag/functions/fnc_fired.sqf index 8dc9be4307..a61a2d14c7 100644 --- a/addons/frag/functions/fnc_fired.sqf +++ b/addons/frag/functions/fnc_fired.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: nou, jaynus, PabstMirror * Called from the unified fired EH for all. @@ -14,8 +15,6 @@ * * Public: No */ -// #define DEBUG_ENABLED_FRAG -#include "script_component.hpp" //IGNORE_PRIVATE_WARNING ["_unit", "_weapon", "_muzzle", "_mode", "_ammo", "_magazine", "_projectile", "_vehicle", "_gunner", "_turret"]; TRACE_10("firedEH:",_unit, _weapon, _muzzle, _mode, _ammo, _magazine, _projectile, _vehicle, _gunner, _turret); diff --git a/addons/frag/functions/fnc_frago.sqf b/addons/frag/functions/fnc_frago.sqf index a21e92d4b3..8c90445411 100644 --- a/addons/frag/functions/fnc_frago.sqf +++ b/addons/frag/functions/fnc_frago.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Jaynus, NouberNou * Server func to create the fragmentation for a round. @@ -15,8 +16,6 @@ * * Public: No */ -//#define DEBUG_MODE_FULL -#include "script_component.hpp" #define FRAG_VEC_VAR 0.004 #define MAX_FRAG_COUNT 50 diff --git a/addons/frag/functions/fnc_masterPFH.sqf b/addons/frag/functions/fnc_masterPFH.sqf index 638a91ee63..06baaad17f 100644 --- a/addons/frag/functions/fnc_masterPFH.sqf +++ b/addons/frag/functions/fnc_masterPFH.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: jaynus * Master single PFH abstraction for all rounds being tracked by frag/spall. @@ -14,9 +15,6 @@ * Public: No */ -//#define DEBUG_MODE_FULL -#include "script_component.hpp" - BEGIN_COUNTER(PFH); // Fast exit if nothing to do diff --git a/addons/frag/functions/fnc_pfhRound.sqf b/addons/frag/functions/fnc_pfhRound.sqf index 9d63df3f2a..4d5e9b2e99 100644 --- a/addons/frag/functions/fnc_pfhRound.sqf +++ b/addons/frag/functions/fnc_pfhRound.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: ACE-Team * @@ -14,8 +15,6 @@ * Public: No */ -#include "script_component.hpp" - params ["_round", "_lastPos", "_lastVel", "_shellType", "_firedFrame", "_gun", "_doSpall", "_spallTrack", "_foundObjectHPIds", "_skip", "_explosive", "_indirectRange", "_force", "_fragPower"]; if (_round in GVAR(blackList)) exitWith { diff --git a/addons/frag/functions/fnc_spallHP.sqf b/addons/frag/functions/fnc_spallHP.sqf index bc38c5c0fa..9a1e144f44 100644 --- a/addons/frag/functions/fnc_spallHP.sqf +++ b/addons/frag/functions/fnc_spallHP.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: ACE-Team * Handles the HitPart event @@ -14,8 +15,6 @@ * Public: No */ -#include "script_component.hpp" - //player sideChat format ["f: %1 c: %2", (_this select 0), (count GVAR(spallHPData))]; params ["_index", "_hitPartData"]; diff --git a/addons/frag/functions/fnc_spallTrack.sqf b/addons/frag/functions/fnc_spallTrack.sqf index ef1d7f77a8..8e1bf2f804 100644 --- a/addons/frag/functions/fnc_spallTrack.sqf +++ b/addons/frag/functions/fnc_spallTrack.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: ACE-Team * Add HitPart EventHandler to objects in the projectile's path @@ -14,9 +15,6 @@ * Public: No */ -//fnc_spallTrack.sqf -#include "script_component.hpp" - params ["_round", "_multiplier", "_foundObjects", "_foundObjectHPIds"]; private _delta = (1 / diag_fps) * _multiplier; diff --git a/addons/gestures/functions/fnc_playSignal.sqf b/addons/gestures/functions/fnc_playSignal.sqf index 68a3c1c044..3dcae0d2e3 100644 --- a/addons/gestures/functions/fnc_playSignal.sqf +++ b/addons/gestures/functions/fnc_playSignal.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: joko // Jonas, Emperias, Zigomarvin * Detect if the player and play the Gesture Animation @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" TRACE_1("params",_this); diff --git a/addons/gforces/functions/fnc_addPFEH.sqf b/addons/gforces/functions/fnc_addPFEH.sqf index 2464575fdc..55dd8dcd12 100644 --- a/addons/gforces/functions/fnc_addPFEH.sqf +++ b/addons/gforces/functions/fnc_addPFEH.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: KoffeinFlummi and esteldunedain * Adds the PFEH @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" //Reset forces array GVAR(GForces) = []; diff --git a/addons/gforces/functions/fnc_pfhUpdateGForces.sqf b/addons/gforces/functions/fnc_pfhUpdateGForces.sqf index 98e633f500..a5aee2d18e 100644 --- a/addons/gforces/functions/fnc_pfhUpdateGForces.sqf +++ b/addons/gforces/functions/fnc_pfhUpdateGForces.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: KoffeinFlummi and esteldunedain * Calculates average g-forces and triggers g-effects @@ -14,7 +15,6 @@ * * Public: No */ - #include "script_component.hpp" // Update the g-forces at constant mission time intervals (taking accTime into account) if ((CBA_missionTime - GVAR(lastUpdateTime)) < INTERVAL) exitWith {}; diff --git a/addons/goggles/functions/fnc_applyDirtEffect.sqf b/addons/goggles/functions/fnc_applyDirtEffect.sqf index 2c50595e86..df73bd5bec 100644 --- a/addons/goggles/functions/fnc_applyDirtEffect.sqf +++ b/addons/goggles/functions/fnc_applyDirtEffect.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Garth 'L-H' de Wet * Adds dirt effect to the glasses. @@ -13,7 +14,6 @@ * * Public: Yes */ -#include "script_component.hpp" if (call FUNC(externalCamera)) exitWith {false}; diff --git a/addons/goggles/functions/fnc_applyDustEffect.sqf b/addons/goggles/functions/fnc_applyDustEffect.sqf index 3568137a1f..d8c6e1c07a 100644 --- a/addons/goggles/functions/fnc_applyDustEffect.sqf +++ b/addons/goggles/functions/fnc_applyDustEffect.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Garth 'L-H' de Wet * Applies dust to screen. @@ -13,7 +14,6 @@ * * Public: Yes */ -#include "script_component.hpp" if (call FUNC(ExternalCamera)) exitWith {}; diff --git a/addons/goggles/functions/fnc_applyGlassesEffect.sqf b/addons/goggles/functions/fnc_applyGlassesEffect.sqf index ccefe45541..096673ea3a 100644 --- a/addons/goggles/functions/fnc_applyGlassesEffect.sqf +++ b/addons/goggles/functions/fnc_applyGlassesEffect.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Garth 'L-H' de Wet * Sets screen tint for glasses. @@ -16,7 +17,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_player", "_glasses"]; TRACE_2("applyGlassesEffect",_player,_glasses); diff --git a/addons/goggles/functions/fnc_applyRainEffect.sqf b/addons/goggles/functions/fnc_applyRainEffect.sqf index 183335740f..845490f95f 100644 --- a/addons/goggles/functions/fnc_applyRainEffect.sqf +++ b/addons/goggles/functions/fnc_applyRainEffect.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Garth 'L-H' de Wet * Handles rain effects being created on glasses. @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" private _unit = ACE_player; diff --git a/addons/goggles/functions/fnc_applyRotorWashEffect.sqf b/addons/goggles/functions/fnc_applyRotorWashEffect.sqf index ffe75f808e..ab71f01d51 100644 --- a/addons/goggles/functions/fnc_applyRotorWashEffect.sqf +++ b/addons/goggles/functions/fnc_applyRotorWashEffect.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Garth 'L-H' de Wet, commy2 * Handles the rotor wash effects. @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" private _unit = ACE_player; diff --git a/addons/goggles/functions/fnc_clearGlasses.sqf b/addons/goggles/functions/fnc_clearGlasses.sqf index c75d94ae1c..5efc547c10 100644 --- a/addons/goggles/functions/fnc_clearGlasses.sqf +++ b/addons/goggles/functions/fnc_clearGlasses.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Garth 'L-H' de Wet * Clears all dirt, rain, dust from glasses. @@ -14,7 +15,6 @@ * * Public: Yes */ -#include "script_component.hpp" private _unit = ACE_player; diff --git a/addons/goggles/functions/fnc_externalCamera.sqf b/addons/goggles/functions/fnc_externalCamera.sqf index 9e7eed3efe..c251ef1f49 100644 --- a/addons/goggles/functions/fnc_externalCamera.sqf +++ b/addons/goggles/functions/fnc_externalCamera.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Garth 'L-H' de Wet * Returns if the camera is external or not. @@ -13,7 +14,6 @@ * * Public: Yes */ -#include "script_component.hpp" // Handle the ThreeDen Editor Camera if (is3DEN) exitWith {true}; diff --git a/addons/goggles/functions/fnc_getExplosionIndex.sqf b/addons/goggles/functions/fnc_getExplosionIndex.sqf index 9d7c4004c7..33f0668bef 100644 --- a/addons/goggles/functions/fnc_getExplosionIndex.sqf +++ b/addons/goggles/functions/fnc_getExplosionIndex.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Garth 'L-H' de Wet, commy2 * Turns 0-1 damage of explosion Event into a rating system of 0-3 @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_damage"]; diff --git a/addons/goggles/functions/fnc_handleExplosion.sqf b/addons/goggles/functions/fnc_handleExplosion.sqf index 129cd6fc36..db38e9ab20 100644 --- a/addons/goggles/functions/fnc_handleExplosion.sqf +++ b/addons/goggles/functions/fnc_handleExplosion.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Garth 'L-H' de Wet, commy2 * Handles explosions. @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_unit"]; diff --git a/addons/goggles/functions/fnc_handleFired.sqf b/addons/goggles/functions/fnc_handleFired.sqf index 95a22d0a03..434a61ee5f 100644 --- a/addons/goggles/functions/fnc_handleFired.sqf +++ b/addons/goggles/functions/fnc_handleFired.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Garth 'L-H' de Wet, commy2 * Determines whether to place dust on the goggles, based on calibre of weapon fired and other requirements. Called from the unified fired EH only for the local player. @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" //IGNORE_PRIVATE_WARNING ["_unit", "_weapon", "_muzzle", "_mode", "_ammo", "_magazine", "_projectile", "_vehicle", "_gunner", "_turret"]; TRACE_10("firedEH:",_unit, _weapon, _muzzle, _mode, _ammo, _magazine, _projectile, _vehicle, _gunner, _turret); diff --git a/addons/goggles/functions/fnc_handleKilled.sqf b/addons/goggles/functions/fnc_handleKilled.sqf index 001a4041b8..db7364492d 100644 --- a/addons/goggles/functions/fnc_handleKilled.sqf +++ b/addons/goggles/functions/fnc_handleKilled.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Garth 'L-H' de Wet, commy2 * Handles the player dying. @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_unit"]; diff --git a/addons/goggles/functions/fnc_isDivingGoggles.sqf b/addons/goggles/functions/fnc_isDivingGoggles.sqf index ac86a09d2b..cc173f6dc3 100644 --- a/addons/goggles/functions/fnc_isDivingGoggles.sqf +++ b/addons/goggles/functions/fnc_isDivingGoggles.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Determines whether passed goggles is diving goggles or a variant of them. @@ -13,7 +14,6 @@ * * Public: Yes */ -#include "script_component.hpp" params ["_glasses"]; diff --git a/addons/goggles/functions/fnc_isGogglesVisible.sqf b/addons/goggles/functions/fnc_isGogglesVisible.sqf index f1205b5df6..3ad5085a57 100644 --- a/addons/goggles/functions/fnc_isGogglesVisible.sqf +++ b/addons/goggles/functions/fnc_isGogglesVisible.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Garth 'L-H' de Wet * Determines if goggles are visible on passed unit. @@ -13,7 +14,6 @@ * * Public: Yes */ -#include "script_component.hpp" params ["_unit"]; diff --git a/addons/goggles/functions/fnc_isInRotorWash.sqf b/addons/goggles/functions/fnc_isInRotorWash.sqf index 80e1bdd8e8..d978cde0ce 100644 --- a/addons/goggles/functions/fnc_isInRotorWash.sqf +++ b/addons/goggles/functions/fnc_isInRotorWash.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Garth 'L-H' de Wet, commy2 * Checks for nearby running helicopters (within 15m) @@ -17,7 +18,6 @@ * * Public: Yes */ -#include "script_component.hpp" params ["_unit", ["_radius", 15]]; diff --git a/addons/goggles/functions/fnc_removeDirtEffect.sqf b/addons/goggles/functions/fnc_removeDirtEffect.sqf index a6d5a232cc..732cbb5c23 100644 --- a/addons/goggles/functions/fnc_removeDirtEffect.sqf +++ b/addons/goggles/functions/fnc_removeDirtEffect.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Garth 'L-H' de Wet * Removes dirt from the glasses. @@ -13,7 +14,6 @@ * * Public: Yes */ -#include "script_component.hpp" if (!isNull (GETUVAR(GVAR(DisplayEffects),displayNull))) then { (GETUVAR(GVAR(DisplayEffects),displayNull) displayCtrl 10660) ctrlSetText ""; diff --git a/addons/goggles/functions/fnc_removeDustEffect.sqf b/addons/goggles/functions/fnc_removeDustEffect.sqf index a04121e8ba..00031084b2 100644 --- a/addons/goggles/functions/fnc_removeDustEffect.sqf +++ b/addons/goggles/functions/fnc_removeDustEffect.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Garth 'L-H' de Wet * Removes dust from the glasses. @@ -13,7 +14,6 @@ * * Public: Yes */ -#include "script_component.hpp" if (!isNull (GETUVAR(GVAR(DisplayEffects),displayNull))) then { (GETUVAR(GVAR(DisplayEffects),displayNull) displayCtrl 10662) ctrlSetText ""; diff --git a/addons/goggles/functions/fnc_removeGlassesEffect.sqf b/addons/goggles/functions/fnc_removeGlassesEffect.sqf index c27d8684e8..ab19570594 100644 --- a/addons/goggles/functions/fnc_removeGlassesEffect.sqf +++ b/addons/goggles/functions/fnc_removeGlassesEffect.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Garth 'L-H' de Wet * Removes the glasses effect from the screen, removes dirt effect, removes rain effect, removes dust effect. Does not reset array (glasses will still be broken, dirty, ect.) @@ -13,7 +14,6 @@ * * Public: Yes */ -#include "script_component.hpp" GVAR(EffectsActive) = false; GVAR(PostProcess) ppEffectEnable false; diff --git a/addons/goggles/functions/fnc_removeRainEffect.sqf b/addons/goggles/functions/fnc_removeRainEffect.sqf index fb7f3e5e2e..53de0721b1 100644 --- a/addons/goggles/functions/fnc_removeRainEffect.sqf +++ b/addons/goggles/functions/fnc_removeRainEffect.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Garth 'L-H' de Wet * Removes rain effects from the screen. @@ -13,7 +14,6 @@ * * Public: Yes */ -#include "script_component.hpp" if (!isNull GVAR(RainDrops)) then { deleteVehicle GVAR(RainDrops); diff --git a/addons/grenades/functions/fnc_flare.sqf b/addons/grenades/functions/fnc_flare.sqf index a0e8e1ff40..9ad3348f6b 100644 --- a/addons/grenades/functions/fnc_flare.sqf +++ b/addons/grenades/functions/fnc_flare.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Makes flare shine. @@ -16,7 +17,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_projectile", "_color", "_intensity", "_timeToLive"]; diff --git a/addons/grenades/functions/fnc_flashbangExplosionEH.sqf b/addons/grenades/functions/fnc_flashbangExplosionEH.sqf index 0d0779ccef..37e9a10845 100644 --- a/addons/grenades/functions/fnc_flashbangExplosionEH.sqf +++ b/addons/grenades/functions/fnc_flashbangExplosionEH.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: KoffeinFlummi * Creates the flashbang effect and knock out AI units. @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_grenadePosASL"]; TRACE_1("params",_grenadePosASL); diff --git a/addons/grenades/functions/fnc_flashbangThrownFuze.sqf b/addons/grenades/functions/fnc_flashbangThrownFuze.sqf index 5c05abc9a3..46ff41171d 100644 --- a/addons/grenades/functions/fnc_flashbangThrownFuze.sqf +++ b/addons/grenades/functions/fnc_flashbangThrownFuze.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Waits for the flashbang grenade fuze to trigger and 'explode' @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_projectile"]; TRACE_1("params",_projectile); diff --git a/addons/grenades/functions/fnc_incendiary.sqf b/addons/grenades/functions/fnc_incendiary.sqf index 5b0384da3b..b07ed48fb3 100644 --- a/addons/grenades/functions/fnc_incendiary.sqf +++ b/addons/grenades/functions/fnc_incendiary.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Makes incendiary burn. @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" #define ALERT_NEAR_ENEMY_RANGE 60 diff --git a/addons/grenades/functions/fnc_nextMode.sqf b/addons/grenades/functions/fnc_nextMode.sqf index 99149f5185..839fbd5786 100644 --- a/addons/grenades/functions/fnc_nextMode.sqf +++ b/addons/grenades/functions/fnc_nextMode.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Select the next throwing mode and display message. @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" private _mode = missionNamespace getVariable [QGVAR(currentThrowMode), 0]; diff --git a/addons/grenades/functions/fnc_throwGrenade.sqf b/addons/grenades/functions/fnc_throwGrenade.sqf index 92c2639826..0fe0c483d9 100644 --- a/addons/grenades/functions/fnc_throwGrenade.sqf +++ b/addons/grenades/functions/fnc_throwGrenade.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Adjust the grenades throwing direction and speed to the selected throwing mode. Called from the unified fired EH only for CAManBase @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" //IGNORE_PRIVATE_WARNING ["_unit", "_weapon", "_muzzle", "_mode", "_ammo", "_magazine", "_projectile", "_vehicle", "_gunner", "_turret"]; TRACE_10("firedEH:",_unit, _weapon, _muzzle, _mode, _ammo, _magazine, _projectile, _vehicle, _gunner, _turret); diff --git a/addons/gunbag/functions/fnc_calculateMass.sqf b/addons/gunbag/functions/fnc_calculateMass.sqf index d55ac3a8ee..8f845dc4ee 100644 --- a/addons/gunbag/functions/fnc_calculateMass.sqf +++ b/addons/gunbag/functions/fnc_calculateMass.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Ir0n1E * Calculate mass of weapon an items. @@ -15,7 +16,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_weapon", "_items", "_magazines"]; diff --git a/addons/gunbag/functions/fnc_canInteract.sqf b/addons/gunbag/functions/fnc_canInteract.sqf index 556ea1f700..46451b50d5 100644 --- a/addons/gunbag/functions/fnc_canInteract.sqf +++ b/addons/gunbag/functions/fnc_canInteract.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Ir0n1E * Check if client able to interact with gunbag. @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_unit", "_target"]; diff --git a/addons/gunbag/functions/fnc_hasGunbag.sqf b/addons/gunbag/functions/fnc_hasGunbag.sqf index 8c8fdd6147..5fa90c7b9c 100644 --- a/addons/gunbag/functions/fnc_hasGunbag.sqf +++ b/addons/gunbag/functions/fnc_hasGunbag.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Ir0n1E * Switches gunbag full/empty for mass calculation. @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_unit"]; diff --git a/addons/gunbag/functions/fnc_isMachineGun.sqf b/addons/gunbag/functions/fnc_isMachineGun.sqf index a6191c1cca..76cf64d443 100644 --- a/addons/gunbag/functions/fnc_isMachineGun.sqf +++ b/addons/gunbag/functions/fnc_isMachineGun.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Reports true if a weapon is a machine gun. @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_weapon"]; diff --git a/addons/gunbag/functions/fnc_offGunbag.sqf b/addons/gunbag/functions/fnc_offGunbag.sqf index a46d49675d..751402fa0f 100644 --- a/addons/gunbag/functions/fnc_offGunbag.sqf +++ b/addons/gunbag/functions/fnc_offGunbag.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Ir0n1E * Get weapon out of gunbag. @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_unit", "_target"]; diff --git a/addons/gunbag/functions/fnc_offGunbagCallback.sqf b/addons/gunbag/functions/fnc_offGunbagCallback.sqf index 580103b021..794ea2e709 100644 --- a/addons/gunbag/functions/fnc_offGunbagCallback.sqf +++ b/addons/gunbag/functions/fnc_offGunbagCallback.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Ir0n1E * Get weapon out of gunbag. @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_unit", "_target"]; diff --git a/addons/gunbag/functions/fnc_status.sqf b/addons/gunbag/functions/fnc_status.sqf index 33c30ec0e1..730e992dcb 100644 --- a/addons/gunbag/functions/fnc_status.sqf +++ b/addons/gunbag/functions/fnc_status.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Ir0n1E * Check gunbag status full/empty. @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_unit"]; diff --git a/addons/gunbag/functions/fnc_toGunbag.sqf b/addons/gunbag/functions/fnc_toGunbag.sqf index 8851e5610b..1f52eb6baf 100644 --- a/addons/gunbag/functions/fnc_toGunbag.sqf +++ b/addons/gunbag/functions/fnc_toGunbag.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Ir0n1E * Put weapon into gunbag. @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_unit", "_target"]; diff --git a/addons/gunbag/functions/fnc_toGunbagCallback.sqf b/addons/gunbag/functions/fnc_toGunbagCallback.sqf index 3587c9e6b8..e47c817979 100644 --- a/addons/gunbag/functions/fnc_toGunbagCallback.sqf +++ b/addons/gunbag/functions/fnc_toGunbagCallback.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Ir0n1E * Put weapon into gunbag. @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_unit", "_target"]; diff --git a/addons/hearing/functions/fnc_addEarPlugs.sqf b/addons/hearing/functions/fnc_addEarPlugs.sqf index 9e6bd0cab2..2fcfdab75d 100644 --- a/addons/hearing/functions/fnc_addEarPlugs.sqf +++ b/addons/hearing/functions/fnc_addEarPlugs.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Called on unit initialization. Adds earplugs if the unit is equipped with either a really loud primary weapon or a rocket launcher. @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_unit"]; TRACE_2("params",_unit,typeOf _unit); diff --git a/addons/hearing/functions/fnc_earRinging.sqf b/addons/hearing/functions/fnc_earRinging.sqf index 273fad8107..ae830e09a2 100644 --- a/addons/hearing/functions/fnc_earRinging.sqf +++ b/addons/hearing/functions/fnc_earRinging.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: KoffeinFlummi, commy2, Rocko, Rommel, Ruthberg * Handle new sound souce near ace_player and apply hearing damage @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_strength"]; if (_strength < 0.05) exitWith {}; diff --git a/addons/hearing/functions/fnc_explosionNear.sqf b/addons/hearing/functions/fnc_explosionNear.sqf index 4917ac009b..799002b3f7 100644 --- a/addons/hearing/functions/fnc_explosionNear.sqf +++ b/addons/hearing/functions/fnc_explosionNear.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: KoffeinFlummi, commy2, Ruthberg * Handles deafness due to explosions going off near the player. @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_unit", "_damage"]; diff --git a/addons/hearing/functions/fnc_firedNear.sqf b/addons/hearing/functions/fnc_firedNear.sqf index 9a5e65b774..4dd8c759a3 100644 --- a/addons/hearing/functions/fnc_firedNear.sqf +++ b/addons/hearing/functions/fnc_firedNear.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: KoffeinFlummi, commy2 * Handles deafness due to large-caliber weapons going off near the player. @@ -20,7 +21,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_object", "_firer", "_distance", "_weapon", "", "", "_ammo"]; diff --git a/addons/hearing/functions/fnc_handleRespawn.sqf b/addons/hearing/functions/fnc_handleRespawn.sqf index 58500f1c3d..74dee65b04 100644 --- a/addons/hearing/functions/fnc_handleRespawn.sqf +++ b/addons/hearing/functions/fnc_handleRespawn.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: PabstMirror * Reset earplugs on respawn, and then re-add if appropriate @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_unit"]; TRACE_2("params",_unit,typeOf _unit); diff --git a/addons/hearing/functions/fnc_hasEarPlugsIn.sqf b/addons/hearing/functions/fnc_hasEarPlugsIn.sqf index ce697ab295..f24b17737e 100644 --- a/addons/hearing/functions/fnc_hasEarPlugsIn.sqf +++ b/addons/hearing/functions/fnc_hasEarPlugsIn.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Check if the unit has earplugs put in. @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_unit"]; _unit getVariable ["ACE_hasEarPlugsin", false] diff --git a/addons/hearing/functions/fnc_moduleHearing.sqf b/addons/hearing/functions/fnc_moduleHearing.sqf index 8c04d9b8a4..d36579c4c0 100644 --- a/addons/hearing/functions/fnc_moduleHearing.sqf +++ b/addons/hearing/functions/fnc_moduleHearing.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: esteldunedain * Initializes the Hearing module. @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_logic"]; diff --git a/addons/hearing/functions/fnc_putInEarplugs.sqf b/addons/hearing/functions/fnc_putInEarplugs.sqf index 4471ec1aba..7292c86f85 100644 --- a/addons/hearing/functions/fnc_putInEarplugs.sqf +++ b/addons/hearing/functions/fnc_putInEarplugs.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Hope Johnson and commy2 * Puts in earplugs. @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_player"]; diff --git a/addons/hearing/functions/fnc_removeEarplugs.sqf b/addons/hearing/functions/fnc_removeEarplugs.sqf index a46febefb2..9af41f6d8b 100644 --- a/addons/hearing/functions/fnc_removeEarplugs.sqf +++ b/addons/hearing/functions/fnc_removeEarplugs.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Hope Johnson and commy2 * Takes out earplugs. @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_player"]; diff --git a/addons/hearing/functions/fnc_updateHearingProtection.sqf b/addons/hearing/functions/fnc_updateHearingProtection.sqf index fe0ca867ff..e010165f8a 100644 --- a/addons/hearing/functions/fnc_updateHearingProtection.sqf +++ b/addons/hearing/functions/fnc_updateHearingProtection.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: PabstMirror * Updates the hearing protection and volume attenuation for player on earbuds/helmet change @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" TRACE_1("params",_this); diff --git a/addons/hearing/functions/fnc_updatePlayerVehAttenuation.sqf b/addons/hearing/functions/fnc_updatePlayerVehAttenuation.sqf index b077487c79..8d42ca1c0c 100644 --- a/addons/hearing/functions/fnc_updatePlayerVehAttenuation.sqf +++ b/addons/hearing/functions/fnc_updatePlayerVehAttenuation.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: PabstMirror * Gets the sound attenuation of a player to the outside. @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" private _vehicle = vehicle ACE_player; diff --git a/addons/hearing/functions/fnc_updateVolume.sqf b/addons/hearing/functions/fnc_updateVolume.sqf index 7d0f875414..4cf1a6b117 100644 --- a/addons/hearing/functions/fnc_updateVolume.sqf +++ b/addons/hearing/functions/fnc_updateVolume.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 and esteldunedain and Ruthberg * Updates and applies the current deafness. Called every 1 sec from a PFEH. @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" if (!alive ACE_player) exitWith { if (missionNameSpace getVariable [QGVAR(disableVolumeUpdate), false]) exitWith {}; diff --git a/addons/hellfire/functions/fnc_attackProfile.sqf b/addons/hellfire/functions/fnc_attackProfile.sqf index 84f1c39f0a..8904d57978 100644 --- a/addons/hellfire/functions/fnc_attackProfile.sqf +++ b/addons/hellfire/functions/fnc_attackProfile.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: PabstMirror * Hellfire attack profile. Handles all 4 modes LOBL, LOAL-DIR, LOAL-HI, LOAL-LO @@ -15,8 +16,6 @@ * * Public: No */ -// #define DEBUG_MODE_FULL -#include "script_component.hpp" params ["_seekerTargetPos", "_args", "_attackProfileStateParams"]; _args params ["_firedEH", "_launchParams"]; diff --git a/addons/hellfire/functions/fnc_getAttackProfileSettings.sqf b/addons/hellfire/functions/fnc_getAttackProfileSettings.sqf index a4854faa55..066d280d65 100644 --- a/addons/hellfire/functions/fnc_getAttackProfileSettings.sqf +++ b/addons/hellfire/functions/fnc_getAttackProfileSettings.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: PabstMirror * Gets attack profile parameters for first run of hellfire attack profile function @@ -15,8 +16,6 @@ * * Public: No */ -// #define DEBUG_MODE_FULL -#include "script_component.hpp" params ["_seekerTargetPos", "_args", "_attackProfileStateParams"]; _args params ["_firedEH", "_launchParams"]; diff --git a/addons/hellfire/functions/fnc_setupVehicle.sqf b/addons/hellfire/functions/fnc_setupVehicle.sqf index 36b724d8a6..e824542021 100644 --- a/addons/hellfire/functions/fnc_setupVehicle.sqf +++ b/addons/hellfire/functions/fnc_setupVehicle.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: PabstMirror * Adds interaction menu actions to switch the firemode to a vehicle. @@ -14,8 +15,6 @@ * * Public: No */ -// #define DEBUG_MODE_FULL -#include "script_component.hpp" params ["_player"]; diff --git a/addons/hitreactions/functions/fnc_fallDown.sqf b/addons/hitreactions/functions/fnc_fallDown.sqf index c67f3fd0f8..08c7282ab7 100644 --- a/addons/hitreactions/functions/fnc_fallDown.sqf +++ b/addons/hitreactions/functions/fnc_fallDown.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Adds reactions to a unit that was hit. EH only runs where to unit is local. Adds screams, falling down, falling from ladders, ejecting from static weapons and camshake for players @@ -15,7 +16,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_unit", "_firer", "_damage"]; diff --git a/addons/hitreactions/functions/fnc_getRandomAnimation.sqf b/addons/hitreactions/functions/fnc_getRandomAnimation.sqf index 10b64b5eae..bfdfd9646f 100644 --- a/addons/hitreactions/functions/fnc_getRandomAnimation.sqf +++ b/addons/hitreactions/functions/fnc_getRandomAnimation.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Get a random fall animation for the unit. @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_unit"]; diff --git a/addons/huntir/functions/fnc_cam.sqf b/addons/huntir/functions/fnc_cam.sqf index 867420f8e1..ca027b23ab 100644 --- a/addons/huntir/functions/fnc_cam.sqf +++ b/addons/huntir/functions/fnc_cam.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Norrin, Rocko, Ruthberg * @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" if (!hasInterface) exitWith {}; params ["_huntIR"]; diff --git a/addons/huntir/functions/fnc_handleFired.sqf b/addons/huntir/functions/fnc_handleFired.sqf index 85e228f958..42c6bf3c84 100644 --- a/addons/huntir/functions/fnc_handleFired.sqf +++ b/addons/huntir/functions/fnc_handleFired.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Norrin, Rocko, Ruthberg * @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" //IGNORE_PRIVATE_WARNING ["_unit", "_weapon", "_muzzle", "_mode", "_ammo", "_magazine", "_projectile", "_vehicle", "_gunner", "_turret"]; TRACE_10("firedEH:",_unit, _weapon, _muzzle, _mode, _ammo, _magazine, _projectile, _vehicle, _gunner, _turret); diff --git a/addons/huntir/functions/fnc_huntir.sqf b/addons/huntir/functions/fnc_huntir.sqf index 075e2a9e6a..221bc5ccec 100644 --- a/addons/huntir/functions/fnc_huntir.sqf +++ b/addons/huntir/functions/fnc_huntir.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Norrin, Rocko, Ruthberg * @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" #define __TYPE_WRITER_DELAY 0.05 diff --git a/addons/huntir/functions/fnc_huntirCompass.sqf b/addons/huntir/functions/fnc_huntirCompass.sqf index d6fc417353..9a7882f45c 100644 --- a/addons/huntir/functions/fnc_huntirCompass.sqf +++ b/addons/huntir/functions/fnc_huntirCompass.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Norrin, Rocko, Ruthberg * @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" disableSerialization; diff --git a/addons/huntir/functions/fnc_keyPressed.sqf b/addons/huntir/functions/fnc_keyPressed.sqf index 90f74415a3..edfa39c534 100644 --- a/addons/huntir/functions/fnc_keyPressed.sqf +++ b/addons/huntir/functions/fnc_keyPressed.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Norrin, Rocko * Handles the HuntIR monitor key interaction @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" private _ret = false; diff --git a/addons/interact_menu/functions/fnc_addActionToClass.sqf b/addons/interact_menu/functions/fnc_addActionToClass.sqf index 03838234ec..558c497667 100644 --- a/addons/interact_menu/functions/fnc_addActionToClass.sqf +++ b/addons/interact_menu/functions/fnc_addActionToClass.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: esteldunedain * Insert an ACE action to a class, under a certain path @@ -18,7 +19,6 @@ * * Public: Yes */ -#include "script_component.hpp" if (!params [["_objectType", "", [""]], ["_typeNum", 0, [0]], ["_parentPath", [], [[]]], ["_action", [], [[]], 11]]) exitWith { ERROR("Bad Params"); diff --git a/addons/interact_menu/functions/fnc_addActionToObject.sqf b/addons/interact_menu/functions/fnc_addActionToObject.sqf index 4b993f9971..3ee7c5c332 100644 --- a/addons/interact_menu/functions/fnc_addActionToObject.sqf +++ b/addons/interact_menu/functions/fnc_addActionToObject.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: esteldunedain * Insert an ACE action to an object, under a certain config path @@ -17,7 +18,6 @@ * * Public: Yes */ -#include "script_component.hpp" if (!params [["_object", objNull, [objNull]], ["_typeNum", 0, [0]], ["_parentPath", [], [[]]], ["_action", [], [[]], 11]]) exitWith { ERROR("Bad Params"); diff --git a/addons/interact_menu/functions/fnc_addActionToZeus.sqf b/addons/interact_menu/functions/fnc_addActionToZeus.sqf index 66c1f29d08..65ef178fb0 100644 --- a/addons/interact_menu/functions/fnc_addActionToZeus.sqf +++ b/addons/interact_menu/functions/fnc_addActionToZeus.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: PabstMirror * Insert an ACE action to zeus. @@ -15,7 +16,6 @@ * * Public: Yes */ -#include "script_component.hpp" if (!params [["_parentPath", [], [[]]], ["_action", [], [[]], 11]]) exitWith {ERROR("Bad Params"); []}; if ((_parentPath param [0, ""]) != "ACE_ZeusActions") exitWith {ERROR_1("Bad path %1 - should have ACE_ZeusActions as base", _parentPath); []}; diff --git a/addons/interact_menu/functions/fnc_addMainAction.sqf b/addons/interact_menu/functions/fnc_addMainAction.sqf index 43273ef967..d00cd2b60e 100644 --- a/addons/interact_menu/functions/fnc_addMainAction.sqf +++ b/addons/interact_menu/functions/fnc_addMainAction.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Jonpas, PabstMirror * Makes sure there is a ACE_MainActions on the object type @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_objectType", "_typeNum"]; diff --git a/addons/interact_menu/functions/fnc_collectActiveActionTree.sqf b/addons/interact_menu/functions/fnc_collectActiveActionTree.sqf index 08e1608990..e7fecfcac8 100644 --- a/addons/interact_menu/functions/fnc_collectActiveActionTree.sqf +++ b/addons/interact_menu/functions/fnc_collectActiveActionTree.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: esteldunedain * Collect a entire tree of active actions @@ -16,7 +17,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_object", "_origAction", "_parentPath", "_distanceToBasePoint"]; _origAction params ["_origActionData", "_origActionChildren"]; diff --git a/addons/interact_menu/functions/fnc_compileMenu.sqf b/addons/interact_menu/functions/fnc_compileMenu.sqf index 816d06ef72..94c63795ff 100644 --- a/addons/interact_menu/functions/fnc_compileMenu.sqf +++ b/addons/interact_menu/functions/fnc_compileMenu.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: NouberNou and esteldunedain * Compile the action menu from config for an object's class @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_target"]; diff --git a/addons/interact_menu/functions/fnc_compileMenuSelfAction.sqf b/addons/interact_menu/functions/fnc_compileMenuSelfAction.sqf index 54f5867e0d..8a79fe99e1 100644 --- a/addons/interact_menu/functions/fnc_compileMenuSelfAction.sqf +++ b/addons/interact_menu/functions/fnc_compileMenuSelfAction.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: NouberNou and esteldunedain * Compile the self action menu from config for an object's class @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_target"]; diff --git a/addons/interact_menu/functions/fnc_compileMenuZeus.sqf b/addons/interact_menu/functions/fnc_compileMenuZeus.sqf index b2a95c510e..af28bf2284 100644 --- a/addons/interact_menu/functions/fnc_compileMenuZeus.sqf +++ b/addons/interact_menu/functions/fnc_compileMenuZeus.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: SilentSpike * Compile the zeus action menu (only to be done once) @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" // Exit if the action menu is already compiled for zeus if !(isNil {missionNamespace getVariable [QGVAR(ZeusActions), nil]}) exitWith {}; diff --git a/addons/interact_menu/functions/fnc_createAction.sqf b/addons/interact_menu/functions/fnc_createAction.sqf index 5129482771..f8c61c3842 100644 --- a/addons/interact_menu/functions/fnc_createAction.sqf +++ b/addons/interact_menu/functions/fnc_createAction.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: esteldunedain * Creates an isolated ACE action @@ -24,7 +25,6 @@ * * Public: Yes */ -#include "script_component.hpp" // IGNORE_PRIVATE_WARNING(_actionName,_displayName,_icon,_statement,_condition,_insertChildren,_customParams,_position,_distance,_params,_modifierFunction); diff --git a/addons/interact_menu/functions/fnc_createVehiclesActions.sqf b/addons/interact_menu/functions/fnc_createVehiclesActions.sqf index 4f29b9e65b..8218242aab 100644 --- a/addons/interact_menu/functions/fnc_createVehiclesActions.sqf +++ b/addons/interact_menu/functions/fnc_createVehiclesActions.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Dystopian * Creates child actions for vehicle list. @@ -16,7 +17,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_vehicles", "_statement", "_target"]; diff --git a/addons/interact_menu/functions/fnc_ctrlSetParsedTextCached.sqf b/addons/interact_menu/functions/fnc_ctrlSetParsedTextCached.sqf index 98408f58f9..deed10e293 100644 --- a/addons/interact_menu/functions/fnc_ctrlSetParsedTextCached.sqf +++ b/addons/interact_menu/functions/fnc_ctrlSetParsedTextCached.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Sets the controls structured text if it isn't already set. @@ -15,7 +16,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_ctrl", "_index", "_text"]; diff --git a/addons/interact_menu/functions/fnc_findActionNode.sqf b/addons/interact_menu/functions/fnc_findActionNode.sqf index c328e03f39..c2807a3e9c 100644 --- a/addons/interact_menu/functions/fnc_findActionNode.sqf +++ b/addons/interact_menu/functions/fnc_findActionNode.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: esteldunedain * Return action point from path @@ -15,7 +16,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_actionTreeList", "_parentPath"]; diff --git a/addons/interact_menu/functions/fnc_handleEscapeMenu.sqf b/addons/interact_menu/functions/fnc_handleEscapeMenu.sqf index d390d23d94..d915f57999 100644 --- a/addons/interact_menu/functions/fnc_handleEscapeMenu.sqf +++ b/addons/interact_menu/functions/fnc_handleEscapeMenu.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: PabstMirror * Handle the escape key being pressed. @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" if (GVAR(openedMenuType) < 0) exitWith {}; diff --git a/addons/interact_menu/functions/fnc_isSubPath.sqf b/addons/interact_menu/functions/fnc_isSubPath.sqf index 2c8244b081..72857f3070 100644 --- a/addons/interact_menu/functions/fnc_isSubPath.sqf +++ b/addons/interact_menu/functions/fnc_isSubPath.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: esteldunedain * Check if the first path is a subpath of the other @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_longPath", "_shortPath"]; diff --git a/addons/interact_menu/functions/fnc_keyDown.sqf b/addons/interact_menu/functions/fnc_keyDown.sqf index 5d19434c79..54a9f070ce 100644 --- a/addons/interact_menu/functions/fnc_keyDown.sqf +++ b/addons/interact_menu/functions/fnc_keyDown.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: NouberNou and esteldunedain * Handle interactions key down @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_menuType"]; diff --git a/addons/interact_menu/functions/fnc_keyUp.sqf b/addons/interact_menu/functions/fnc_keyUp.sqf index dc1fcf3fe6..be98452177 100644 --- a/addons/interact_menu/functions/fnc_keyUp.sqf +++ b/addons/interact_menu/functions/fnc_keyUp.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: NouberNou and esteldunedain * Handle interactions key up @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_menuType", "_calledByClicking"]; diff --git a/addons/interact_menu/functions/fnc_removeActionFromClass.sqf b/addons/interact_menu/functions/fnc_removeActionFromClass.sqf index f3db5fc8c3..92de6b872a 100644 --- a/addons/interact_menu/functions/fnc_removeActionFromClass.sqf +++ b/addons/interact_menu/functions/fnc_removeActionFromClass.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: esteldunedain * Removes an action from a class @@ -15,7 +16,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_objectType", "_typeNum", "_fullPath"]; diff --git a/addons/interact_menu/functions/fnc_removeActionFromObject.sqf b/addons/interact_menu/functions/fnc_removeActionFromObject.sqf index fd59e0eb4a..64c96ec949 100644 --- a/addons/interact_menu/functions/fnc_removeActionFromObject.sqf +++ b/addons/interact_menu/functions/fnc_removeActionFromObject.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2, NouberNou and esteldunedain * Removes an action from an object @@ -15,7 +16,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_object", "_typeNum", "_fullPath"]; diff --git a/addons/interact_menu/functions/fnc_render.sqf b/addons/interact_menu/functions/fnc_render.sqf index 47ddcf938d..687498e7cd 100644 --- a/addons/interact_menu/functions/fnc_render.sqf +++ b/addons/interact_menu/functions/fnc_render.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: NouberNou and esteldunedain * Render all available nearby interactions @@ -13,8 +14,6 @@ * * Public: No */ -// #define ENABLE_PERFORMANCE_COUNTERS -#include "script_component.hpp" BEGIN_COUNTER(fnc_render); diff --git a/addons/interact_menu/functions/fnc_renderActionPoints.sqf b/addons/interact_menu/functions/fnc_renderActionPoints.sqf index 8d0e2de397..f4aa8927f6 100644 --- a/addons/interact_menu/functions/fnc_renderActionPoints.sqf +++ b/addons/interact_menu/functions/fnc_renderActionPoints.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: NouberNou and esteldunedain * Render all action points @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" GVAR(currentOptions) = []; diff --git a/addons/interact_menu/functions/fnc_renderBaseMenu.sqf b/addons/interact_menu/functions/fnc_renderBaseMenu.sqf index fefab99721..45c30696f3 100644 --- a/addons/interact_menu/functions/fnc_renderBaseMenu.sqf +++ b/addons/interact_menu/functions/fnc_renderBaseMenu.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: NouberNou and esteldunedain * Render the interaction menu for a base action @@ -15,7 +16,6 @@ * * Public: No */ -#include "script_component.hpp" BEGIN_COUNTER(fnc_renderBaseMenu) diff --git a/addons/interact_menu/functions/fnc_renderIcon.sqf b/addons/interact_menu/functions/fnc_renderIcon.sqf index 6c97f96693..21f1962180 100644 --- a/addons/interact_menu/functions/fnc_renderIcon.sqf +++ b/addons/interact_menu/functions/fnc_renderIcon.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: NouberNou, esteldunedain, mharis001 * Render a single interaction icon. @@ -16,7 +17,6 @@ * * Public: No */ -#include "script_component.hpp" #define DEFAULT_ICON QUOTE(\z\ace\addons\interaction\ui\dot_ca.paa) params ["_text", "_icon", "_sPos", "_textSettings"]; diff --git a/addons/interact_menu/functions/fnc_renderMenu.sqf b/addons/interact_menu/functions/fnc_renderMenu.sqf index 70bf02fe9a..5801f4602f 100644 --- a/addons/interact_menu/functions/fnc_renderMenu.sqf +++ b/addons/interact_menu/functions/fnc_renderMenu.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: NouberNou and esteldunedain * Render an interaction menu and it's children recursively @@ -16,7 +17,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_parentPath", "_action", "_sPos", "_angles"]; _action params ["_actionData", "_activeChildren", "_actionObject"]; diff --git a/addons/interact_menu/functions/fnc_renderSelector.sqf b/addons/interact_menu/functions/fnc_renderSelector.sqf index 2acc66c8eb..0449f9c922 100644 --- a/addons/interact_menu/functions/fnc_renderSelector.sqf +++ b/addons/interact_menu/functions/fnc_renderSelector.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: esteldunedain * Render a single interaction icon @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_sPos", "_icon"]; diff --git a/addons/interact_menu/functions/fnc_setupTextColors.sqf b/addons/interact_menu/functions/fnc_setupTextColors.sqf index e51d39e533..3d0a369c60 100644 --- a/addons/interact_menu/functions/fnc_setupTextColors.sqf +++ b/addons/interact_menu/functions/fnc_setupTextColors.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: PabstMirror * Builds color strings needed for displaying interaction text @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" //Mixes 2 colors (number arrays) and makes a color string "#AARRGGBB" for structured text private _mixColor = { diff --git a/addons/interact_menu/functions/fnc_splitPath.sqf b/addons/interact_menu/functions/fnc_splitPath.sqf index 93dea35d7c..bd59a39d33 100644 --- a/addons/interact_menu/functions/fnc_splitPath.sqf +++ b/addons/interact_menu/functions/fnc_splitPath.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: esteldunedain * Take full path and split it between parent path and action name @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" private _parentPath = []; for [{private _i = 0},{_i < (count _this) - 1},{_i = _i + 1}] do { diff --git a/addons/interact_menu/functions/fnc_userActions_addHouseActions.sqf b/addons/interact_menu/functions/fnc_userActions_addHouseActions.sqf index 7fa9ffdac5..2497021e00 100644 --- a/addons/interact_menu/functions/fnc_userActions_addHouseActions.sqf +++ b/addons/interact_menu/functions/fnc_userActions_addHouseActions.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: PabstMirror * Scans for nearby "Static" objects (buildings) and adds the UserActions to them. @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_interactionType"]; diff --git a/addons/interact_menu/functions/fnc_userActions_getHouseActions.sqf b/addons/interact_menu/functions/fnc_userActions_getHouseActions.sqf index 99eafc0392..46667857f5 100644 --- a/addons/interact_menu/functions/fnc_userActions_getHouseActions.sqf +++ b/addons/interact_menu/functions/fnc_userActions_getHouseActions.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: PabstMirror * Scans the buidling type for UserActions and Ladder mount points. @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_typeOfBuilding"]; diff --git a/addons/interaction/functions/fnc_addPassengerActions.sqf b/addons/interaction/functions/fnc_addPassengerActions.sqf index ca87542172..673fb3ad00 100644 --- a/addons/interaction/functions/fnc_addPassengerActions.sqf +++ b/addons/interaction/functions/fnc_addPassengerActions.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: esteldunedain * Mount unit actions inside passenger submenu. @@ -15,7 +16,6 @@ * * Public: No */ -#include "script_component.hpp" params ["", "", "_parameters"]; _parameters params ["_unit"]; diff --git a/addons/interaction/functions/fnc_addPassengersActions.sqf b/addons/interaction/functions/fnc_addPassengersActions.sqf index 65fecebbdc..05e5ebfd55 100644 --- a/addons/interaction/functions/fnc_addPassengersActions.sqf +++ b/addons/interaction/functions/fnc_addPassengersActions.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: esteldunedain * Create one action per passenger. @@ -15,7 +16,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_vehicle", "_player"]; diff --git a/addons/interaction/functions/fnc_canBecomeLeader.sqf b/addons/interaction/functions/fnc_canBecomeLeader.sqf index 3978306fec..af50c081a0 100644 --- a/addons/interaction/functions/fnc_canBecomeLeader.sqf +++ b/addons/interaction/functions/fnc_canBecomeLeader.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: PabstMirror * Test if can Become Leader of group. @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_unit"]; diff --git a/addons/interaction/functions/fnc_canFlip.sqf b/addons/interaction/functions/fnc_canFlip.sqf index 70c004920c..b00164415c 100644 --- a/addons/interaction/functions/fnc_canFlip.sqf +++ b/addons/interaction/functions/fnc_canFlip.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Dystopian * Checks if vehicle can be flipped. @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_vehicle"]; diff --git a/addons/interaction/functions/fnc_canInteractWithCivilian.sqf b/addons/interaction/functions/fnc_canInteractWithCivilian.sqf index add66740e5..7b98ba4972 100644 --- a/addons/interaction/functions/fnc_canInteractWithCivilian.sqf +++ b/addons/interaction/functions/fnc_canInteractWithCivilian.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Checks if the unit can interact with civilian @@ -15,7 +16,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_unit", "_target", ["_isCivilian", true]]; alive _target && [side _target != side _unit, side group _target == civilian] select _isCivilian // return diff --git a/addons/interaction/functions/fnc_canJoinGroup.sqf b/addons/interaction/functions/fnc_canJoinGroup.sqf index 6a3220181d..bc21e9d162 100644 --- a/addons/interaction/functions/fnc_canJoinGroup.sqf +++ b/addons/interaction/functions/fnc_canJoinGroup.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Checks if the unit can join a group @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_unit", "_target"]; diff --git a/addons/interaction/functions/fnc_canJoinTeam.sqf b/addons/interaction/functions/fnc_canJoinTeam.sqf index ee99723d77..424b3be982 100644 --- a/addons/interaction/functions/fnc_canJoinTeam.sqf +++ b/addons/interaction/functions/fnc_canJoinTeam.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Checks if the player can join a team @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_unit", "_target"]; diff --git a/addons/interaction/functions/fnc_canPardon.sqf b/addons/interaction/functions/fnc_canPardon.sqf index 892647640e..81319afb3b 100644 --- a/addons/interaction/functions/fnc_canPardon.sqf +++ b/addons/interaction/functions/fnc_canPardon.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Checks if the unit can pardon the target. @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_unit", "_target"]; diff --git a/addons/interaction/functions/fnc_canPassMagazine.sqf b/addons/interaction/functions/fnc_canPassMagazine.sqf index 66c560c271..f25e5da164 100644 --- a/addons/interaction/functions/fnc_canPassMagazine.sqf +++ b/addons/interaction/functions/fnc_canPassMagazine.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: BaerMitUmlaut * Checks if unit has a spare magazine for the specified weapon. @@ -15,8 +16,6 @@ * * Public: No */ - -#include "script_component.hpp" params ["_player", "_target", "_weapon"]; if (!GVAR(enableMagazinePassing)) exitWith {false}; diff --git a/addons/interaction/functions/fnc_canPullOutBody.sqf b/addons/interaction/functions/fnc_canPullOutBody.sqf index f0f8f32db9..bb61cb2545 100644 --- a/addons/interaction/functions/fnc_canPullOutBody.sqf +++ b/addons/interaction/functions/fnc_canPullOutBody.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Dystopian * Checks if unit can pull target body out of vehicle. @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_body", "_unit"]; diff --git a/addons/interaction/functions/fnc_canPush.sqf b/addons/interaction/functions/fnc_canPush.sqf index 478c89ca45..0032296a50 100644 --- a/addons/interaction/functions/fnc_canPush.sqf +++ b/addons/interaction/functions/fnc_canPush.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Jonpas * Checks if the boat can be pushed. @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_target"]; diff --git a/addons/interaction/functions/fnc_canTapShoulder.sqf b/addons/interaction/functions/fnc_canTapShoulder.sqf index 514ac0301b..0c3551051d 100644 --- a/addons/interaction/functions/fnc_canTapShoulder.sqf +++ b/addons/interaction/functions/fnc_canTapShoulder.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Checks if the player can tap a shoulder. @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_unit", "_target"]; diff --git a/addons/interaction/functions/fnc_doBecomeLeader.sqf b/addons/interaction/functions/fnc_doBecomeLeader.sqf index cc96de5611..8bf1b23e30 100644 --- a/addons/interaction/functions/fnc_doBecomeLeader.sqf +++ b/addons/interaction/functions/fnc_doBecomeLeader.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: PabstMirror * Become Leader of group. @@ -14,8 +15,6 @@ * Public: No */ -#include "script_component.hpp" - params ["_unit"]; [QEGVAR(common,selectLeader), [group _unit, _unit], units group _unit] call CBA_fnc_targetEvent; diff --git a/addons/interaction/functions/fnc_getDoor.sqf b/addons/interaction/functions/fnc_getDoor.sqf index 8570d2a7c8..6503d1e9e9 100644 --- a/addons/interaction/functions/fnc_getDoor.sqf +++ b/addons/interaction/functions/fnc_getDoor.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2, Phyma * Find door. @@ -15,7 +16,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_distance"]; diff --git a/addons/interaction/functions/fnc_getDoorAnimations.sqf b/addons/interaction/functions/fnc_getDoorAnimations.sqf index 0d40d066be..003cce7664 100644 --- a/addons/interaction/functions/fnc_getDoorAnimations.sqf +++ b/addons/interaction/functions/fnc_getDoorAnimations.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2, Phyma * Get door animations. @@ -16,7 +17,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_house", "_door"]; diff --git a/addons/interaction/functions/fnc_getDown.sqf b/addons/interaction/functions/fnc_getDown.sqf index 125af18e09..4291a00f0d 100644 --- a/addons/interaction/functions/fnc_getDown.sqf +++ b/addons/interaction/functions/fnc_getDown.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: KoffeinFlummi, commy2 * Forces a civilian to the ground with a chance of failure. @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" #define SEND_RADIUS 10 diff --git a/addons/interaction/functions/fnc_getGlassDoor.sqf b/addons/interaction/functions/fnc_getGlassDoor.sqf index 2731f82888..5febe67067 100644 --- a/addons/interaction/functions/fnc_getGlassDoor.sqf +++ b/addons/interaction/functions/fnc_getGlassDoor.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Phyma * Find glass door. @@ -15,7 +16,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_distance", "_house", "_door"]; diff --git a/addons/interaction/functions/fnc_getInteractionDistance.sqf b/addons/interaction/functions/fnc_getInteractionDistance.sqf index c731c6e7d1..fa15577ed2 100644 --- a/addons/interaction/functions/fnc_getInteractionDistance.sqf +++ b/addons/interaction/functions/fnc_getInteractionDistance.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: PabstMirror * Gets effective interaction distance (handles very large vehicles) @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_unit", "_target"]; TRACE_3("getInteractionDistance",_unit,_target,typeOf _target); diff --git a/addons/interaction/functions/fnc_getVehiclePos.sqf b/addons/interaction/functions/fnc_getVehiclePos.sqf index 6d32519bd5..2da5a31820 100644 --- a/addons/interaction/functions/fnc_getVehiclePos.sqf +++ b/addons/interaction/functions/fnc_getVehiclePos.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: esteldunedain * Return a suitable position for the action point for the given target vehicle @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" // IGNORE_PRIVATE_WARNING(_target); private _bb = boundingBoxReal _target; diff --git a/addons/interaction/functions/fnc_getVehiclePosComplex.sqf b/addons/interaction/functions/fnc_getVehiclePosComplex.sqf index be22134ffa..186d424956 100644 --- a/addons/interaction/functions/fnc_getVehiclePosComplex.sqf +++ b/addons/interaction/functions/fnc_getVehiclePosComplex.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: esteldunedain, PabstMirror * Return a suitable position for the action point for the given target vehicle @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_target", "_cameraPosASL"]; TRACE_2("params",_target,_cameraPosASL); diff --git a/addons/interaction/functions/fnc_getWeaponPos.sqf b/addons/interaction/functions/fnc_getWeaponPos.sqf index 8f2d63713a..9cd526c12c 100644 --- a/addons/interaction/functions/fnc_getWeaponPos.sqf +++ b/addons/interaction/functions/fnc_getWeaponPos.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: esteldunedain * Return a suitable position for the action point for the current weapon @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" // IGNORE_PRIVATE_WARNING(_target); private _weaponDir = _target weaponDirection currentWeapon _target; diff --git a/addons/interaction/functions/fnc_handleScrollWheel.sqf b/addons/interaction/functions/fnc_handleScrollWheel.sqf index 48716a05c3..769995d0a6 100644 --- a/addons/interaction/functions/fnc_handleScrollWheel.sqf +++ b/addons/interaction/functions/fnc_handleScrollWheel.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Handles incremental door opening @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_scroll"]; diff --git a/addons/interaction/functions/fnc_hideMouseHint.sqf b/addons/interaction/functions/fnc_hideMouseHint.sqf index bb9fc9440a..155f732eab 100644 --- a/addons/interaction/functions/fnc_hideMouseHint.sqf +++ b/addons/interaction/functions/fnc_hideMouseHint.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Garth de Wet (LH) * Hides the interaction helper text with the mouse buttons at the bottom middle of the screen @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" if (isNull (uiNamespace getVariable ["ACE_Helper_Display", objNull])) exitWith {}; diff --git a/addons/interaction/functions/fnc_joinTeam.sqf b/addons/interaction/functions/fnc_joinTeam.sqf index 311c45b1a5..92e06b4217 100644 --- a/addons/interaction/functions/fnc_joinTeam.sqf +++ b/addons/interaction/functions/fnc_joinTeam.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Unit joins a fire team. @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_unit", "_team"]; diff --git a/addons/interaction/functions/fnc_modifyJoinGroupAction.sqf b/addons/interaction/functions/fnc_modifyJoinGroupAction.sqf index 3ac493aa54..480cdaea40 100644 --- a/addons/interaction/functions/fnc_modifyJoinGroupAction.sqf +++ b/addons/interaction/functions/fnc_modifyJoinGroupAction.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: PabstMirror * Modifies the ACE_JoinGroup action to show group name. @@ -16,7 +17,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_target", "_player", "", "_actionData"]; diff --git a/addons/interaction/functions/fnc_moduleInteraction.sqf b/addons/interaction/functions/fnc_moduleInteraction.sqf index e4f5418fda..7dd5baa464 100644 --- a/addons/interaction/functions/fnc_moduleInteraction.sqf +++ b/addons/interaction/functions/fnc_moduleInteraction.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: bux578 * Initializes the Interaction module. @@ -15,7 +16,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_logic", "", "_activated"]; diff --git a/addons/interaction/functions/fnc_openDoor.sqf b/addons/interaction/functions/fnc_openDoor.sqf index 2457bc1f39..d27ac52f44 100644 --- a/addons/interaction/functions/fnc_openDoor.sqf +++ b/addons/interaction/functions/fnc_openDoor.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Open door. @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" private _info = [MACRO_DOOR_REACH_DISTANCE] call FUNC(getDoor); diff --git a/addons/interaction/functions/fnc_pardon.sqf b/addons/interaction/functions/fnc_pardon.sqf index 7b6085bcf4..4a64771e81 100644 --- a/addons/interaction/functions/fnc_pardon.sqf +++ b/addons/interaction/functions/fnc_pardon.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Unit pardons target unit. @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params ["", "_target"]; diff --git a/addons/interaction/functions/fnc_passMagazine.sqf b/addons/interaction/functions/fnc_passMagazine.sqf index 231d26b217..c52e40e88f 100644 --- a/addons/interaction/functions/fnc_passMagazine.sqf +++ b/addons/interaction/functions/fnc_passMagazine.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: BaerMitUmlaut * Pass spare magazine for the specified weapon. @@ -15,8 +16,6 @@ * * Public: No */ - -#include "script_component.hpp" params ["_player", "_target", "_weapon"]; private _compatibleMags = getArray (configfile >> "CfgWeapons" >> _weapon >> "magazines"); diff --git a/addons/interaction/functions/fnc_pullOutBody.sqf b/addons/interaction/functions/fnc_pullOutBody.sqf index bab54a0805..6f754eae67 100644 --- a/addons/interaction/functions/fnc_pullOutBody.sqf +++ b/addons/interaction/functions/fnc_pullOutBody.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Dystopian * Makes unit pull target body out of vehicle. @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_body", "_unit"]; diff --git a/addons/interaction/functions/fnc_push.sqf b/addons/interaction/functions/fnc_push.sqf index 97534e2c68..abed6be396 100644 --- a/addons/interaction/functions/fnc_push.sqf +++ b/addons/interaction/functions/fnc_push.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: KoffeinFlummi * Pushes a boat away from the player @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_boat", "_unit"]; diff --git a/addons/interaction/functions/fnc_sendAway.sqf b/addons/interaction/functions/fnc_sendAway.sqf index 6bc70b7445..4831fb7e3f 100644 --- a/addons/interaction/functions/fnc_sendAway.sqf +++ b/addons/interaction/functions/fnc_sendAway.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: KoffeinFlummi, commy2 * Sends a near civilian crowd away with a chance of failure. @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" #define SEND_DISTANCE 50 #define SEND_RADIUS 10 diff --git a/addons/interaction/functions/fnc_showMouseHint.sqf b/addons/interaction/functions/fnc_showMouseHint.sqf index 815aa09f41..7e9cb6110f 100644 --- a/addons/interaction/functions/fnc_showMouseHint.sqf +++ b/addons/interaction/functions/fnc_showMouseHint.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Garth de Wet (LH) * Shows the interaction helper text with the mouse buttons at the bottom middle of the screen. @@ -16,7 +17,6 @@ * * Public: No */ -#include "script_component.hpp" #define GUI_GRID_W (0.025) #define GUI_GRID_H (0.04) diff --git a/addons/interaction/functions/fnc_tapShoulder.sqf b/addons/interaction/functions/fnc_tapShoulder.sqf index 483498329d..c55f3b65d4 100644 --- a/addons/interaction/functions/fnc_tapShoulder.sqf +++ b/addons/interaction/functions/fnc_tapShoulder.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Taps a shoulder @@ -15,7 +16,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_unit", "_target", "_shoulderNum"]; diff --git a/addons/inventory/functions/fnc_addCustomFilter.sqf b/addons/inventory/functions/fnc_addCustomFilter.sqf index 0dd80c2e74..6d7ab4796f 100644 --- a/addons/inventory/functions/fnc_addCustomFilter.sqf +++ b/addons/inventory/functions/fnc_addCustomFilter.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Adds a custom filter list to the inventory display. @@ -15,7 +16,6 @@ * * Public: No */ -#include "script_component.hpp" params [["_filterName", "ERROR: No Name", [""]], ["_fncName", "", [""]]]; diff --git a/addons/inventory/functions/fnc_currentItemListBox.sqf b/addons/inventory/functions/fnc_currentItemListBox.sqf index 670efeb044..3a0889865c 100644 --- a/addons/inventory/functions/fnc_currentItemListBox.sqf +++ b/addons/inventory/functions/fnc_currentItemListBox.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Returns the current item list box of given inventory display. @@ -15,7 +16,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_display"]; diff --git a/addons/inventory/functions/fnc_filterBackpacks.sqf b/addons/inventory/functions/fnc_filterBackpacks.sqf index 082dbd6501..66f33ec105 100644 --- a/addons/inventory/functions/fnc_filterBackpacks.sqf +++ b/addons/inventory/functions/fnc_filterBackpacks.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Filter condition for the Backpacks filter list @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_config"]; diff --git a/addons/inventory/functions/fnc_filterGrenades.sqf b/addons/inventory/functions/fnc_filterGrenades.sqf index 6a869849fc..777f8c01cb 100644 --- a/addons/inventory/functions/fnc_filterGrenades.sqf +++ b/addons/inventory/functions/fnc_filterGrenades.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Filter condition for the Grenades filter list @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_config"]; diff --git a/addons/inventory/functions/fnc_filterHeadgear.sqf b/addons/inventory/functions/fnc_filterHeadgear.sqf index ac787fc35a..e75898849e 100644 --- a/addons/inventory/functions/fnc_filterHeadgear.sqf +++ b/addons/inventory/functions/fnc_filterHeadgear.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Filter condition for the Headgear filter list @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_config"]; diff --git a/addons/inventory/functions/fnc_filterItems.sqf b/addons/inventory/functions/fnc_filterItems.sqf index 1aaba46497..78343127af 100644 --- a/addons/inventory/functions/fnc_filterItems.sqf +++ b/addons/inventory/functions/fnc_filterItems.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Remove uniforms, vests and backpacks from Items filter. @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_config"]; diff --git a/addons/inventory/functions/fnc_filterMagazines.sqf b/addons/inventory/functions/fnc_filterMagazines.sqf index e0d67e3c7e..0e23872d73 100644 --- a/addons/inventory/functions/fnc_filterMagazines.sqf +++ b/addons/inventory/functions/fnc_filterMagazines.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Remove backpacks and grenades from Magazines filter. @@ -13,6 +14,5 @@ * * Public: No */ -#include "script_component.hpp" !(_this call FUNC(filterBackpacks)) && {!(_this call FUNC(filterGrenades))} diff --git a/addons/inventory/functions/fnc_filterMedical.sqf b/addons/inventory/functions/fnc_filterMedical.sqf index 567aa528a3..6e04ddc3de 100644 --- a/addons/inventory/functions/fnc_filterMedical.sqf +++ b/addons/inventory/functions/fnc_filterMedical.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Filter condition for the Medical filter list @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_config"]; diff --git a/addons/inventory/functions/fnc_filterUniforms.sqf b/addons/inventory/functions/fnc_filterUniforms.sqf index 74773c3ad0..39529121a5 100644 --- a/addons/inventory/functions/fnc_filterUniforms.sqf +++ b/addons/inventory/functions/fnc_filterUniforms.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Filter condition for the Uniforms filter list @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_config"]; diff --git a/addons/inventory/functions/fnc_filterVests.sqf b/addons/inventory/functions/fnc_filterVests.sqf index a0ce281bda..99115ac84f 100644 --- a/addons/inventory/functions/fnc_filterVests.sqf +++ b/addons/inventory/functions/fnc_filterVests.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Filter condition for the Vests filter list @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_config"]; diff --git a/addons/inventory/functions/fnc_filterWeapons.sqf b/addons/inventory/functions/fnc_filterWeapons.sqf index 65b3d7cdea..60065069bb 100644 --- a/addons/inventory/functions/fnc_filterWeapons.sqf +++ b/addons/inventory/functions/fnc_filterWeapons.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Remove backpacks from Weapons filter. @@ -13,6 +14,5 @@ * * Public: No */ -#include "script_component.hpp" !(_this call FUNC(filterBackpacks)) diff --git a/addons/inventory/functions/fnc_forceItemListUpdate.sqf b/addons/inventory/functions/fnc_forceItemListUpdate.sqf index 03bf667504..e162aeee6c 100644 --- a/addons/inventory/functions/fnc_forceItemListUpdate.sqf +++ b/addons/inventory/functions/fnc_forceItemListUpdate.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Updates item list and removes every entry that does not fit in the currently selected filter list. @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" disableSerialization; params ["_display"]; diff --git a/addons/inventory/functions/fnc_inventoryDisplayLoad.sqf b/addons/inventory/functions/fnc_inventoryDisplayLoad.sqf index 09d2b6fb9b..8657d212cd 100644 --- a/addons/inventory/functions/fnc_inventoryDisplayLoad.sqf +++ b/addons/inventory/functions/fnc_inventoryDisplayLoad.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Executed every time an inventory display is opened. @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" disableSerialization; params ["_display"]; diff --git a/addons/inventory/functions/fnc_onLBSelChanged.sqf b/addons/inventory/functions/fnc_onLBSelChanged.sqf index 86ecfa0087..7f20e48fdf 100644 --- a/addons/inventory/functions/fnc_onLBSelChanged.sqf +++ b/addons/inventory/functions/fnc_onLBSelChanged.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Executed when the filter list box is changed. @@ -15,7 +16,6 @@ * * Public: No */ -#include "script_component.hpp" disableSerialization; params ["_filter", "_index"]; diff --git a/addons/javelin/functions/fnc_getTarget.sqf b/addons/javelin/functions/fnc_getTarget.sqf index 49748e2883..7230aae64a 100644 --- a/addons/javelin/functions/fnc_getTarget.sqf +++ b/addons/javelin/functions/fnc_getTarget.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: PabstMirror * Find a target within the optic range @@ -14,8 +15,6 @@ * * Public: No */ -// #define DEBUG_MODE_FULL -#include "script_component.hpp" params ["_lastTarget", "_maxRange"]; diff --git a/addons/javelin/functions/fnc_mapHelperDraw.sqf b/addons/javelin/functions/fnc_mapHelperDraw.sqf index 20ec3ab349..1b81fc7dd5 100644 --- a/addons/javelin/functions/fnc_mapHelperDraw.sqf +++ b/addons/javelin/functions/fnc_mapHelperDraw.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: PabstMirror * Handles the map helper's draw event @@ -15,8 +16,6 @@ * * Public: No */ -// #define DEBUG_MODE_FULL -#include "script_component.hpp" if (isNil QGVAR(arguments)) then { TRACE_1("Starting optic draw", _this); diff --git a/addons/javelin/functions/fnc_onOpticDraw.sqf b/addons/javelin/functions/fnc_onOpticDraw.sqf index 8a473669f9..ab47556d4c 100644 --- a/addons/javelin/functions/fnc_onOpticDraw.sqf +++ b/addons/javelin/functions/fnc_onOpticDraw.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: jaynus, PabstMirror * Main loop, handles scaning for targets and drawing the javelin optic @@ -17,8 +18,6 @@ * * Public: No */ -// #define DEBUG_MODE_FULL -#include "script_component.hpp" // TRACE_1("onOpticDraw",diag_frameno); diff --git a/addons/javelin/functions/fnc_showFireMode.sqf b/addons/javelin/functions/fnc_showFireMode.sqf index 525289d031..e7a8f80ade 100644 --- a/addons/javelin/functions/fnc_showFireMode.sqf +++ b/addons/javelin/functions/fnc_showFireMode.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: jaynus * Updates fire mode on javelin display (top/dir) @@ -13,8 +14,6 @@ * * Public: No */ -//#define DEBUG_MODE_FULL -#include "script_component.hpp" private _currentShooter = if (ACE_player call CBA_fnc_canUseWeapon) then {ACE_player} else {vehicle ACE_player}; private _currentFireMode = _currentShooter getVariable ["ace_missileguidance_attackProfile", "JAV_TOP"]; diff --git a/addons/kestrel4500/functions/fnc_buttonPressed.sqf b/addons/kestrel4500/functions/fnc_buttonPressed.sqf index 788b7d72e0..2edd9d17b8 100644 --- a/addons/kestrel4500/functions/fnc_buttonPressed.sqf +++ b/addons/kestrel4500/functions/fnc_buttonPressed.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Ruthberg * Handles the Kestrel 4500 dialog button actions @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" switch (_this) do { case 0: { // Enter diff --git a/addons/kestrel4500/functions/fnc_canShow.sqf b/addons/kestrel4500/functions/fnc_canShow.sqf index f563138f5c..d577cfd4d1 100644 --- a/addons/kestrel4500/functions/fnc_canShow.sqf +++ b/addons/kestrel4500/functions/fnc_canShow.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Authors: Ruthberg * Tests if the Kestrel 4500 can be shown @@ -13,6 +14,5 @@ * * Public: No */ -#include "script_component.hpp" ("ACE_Kestrel4500" in (uniformItems ACE_player)) || ("ACE_Kestrel4500" in (vestItems ACE_player)) diff --git a/addons/kestrel4500/functions/fnc_collectData.sqf b/addons/kestrel4500/functions/fnc_collectData.sqf index 703c07797e..a05aac2667 100644 --- a/addons/kestrel4500/functions/fnc_collectData.sqf +++ b/addons/kestrel4500/functions/fnc_collectData.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Ruthberg * Gathers the weather data for the Kestrel 4500 @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" private _playerDir = getDir ACE_player; private _playerAltitude = (getPosASL ACE_player) select 2; diff --git a/addons/kestrel4500/functions/fnc_createKestrelDialog.sqf b/addons/kestrel4500/functions/fnc_createKestrelDialog.sqf index a11982968c..445c6cc789 100644 --- a/addons/kestrel4500/functions/fnc_createKestrelDialog.sqf +++ b/addons/kestrel4500/functions/fnc_createKestrelDialog.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Ruthberg * Opens the Kestrel 4500 dialog @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" if (GVAR(Kestrel4500)) exitWith { false }; if (underwater ACE_player) exitWith { false }; diff --git a/addons/kestrel4500/functions/fnc_dayOfWeek.sqf b/addons/kestrel4500/functions/fnc_dayOfWeek.sqf index 356b10da63..932f0a72aa 100644 --- a/addons/kestrel4500/functions/fnc_dayOfWeek.sqf +++ b/addons/kestrel4500/functions/fnc_dayOfWeek.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Ruthberg * Calculate Current Day in the Week @@ -15,7 +16,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_year", "_month", "_day"]; private _table = [0, 3, 2, 5, 0, 3, 5, 1, 4, 6, 2, 4]; diff --git a/addons/kestrel4500/functions/fnc_displayKestrel.sqf b/addons/kestrel4500/functions/fnc_displayKestrel.sqf index 0cf3234d1e..c93de715ed 100644 --- a/addons/kestrel4500/functions/fnc_displayKestrel.sqf +++ b/addons/kestrel4500/functions/fnc_displayKestrel.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Ruthberg * Shows the Kestrel 4500 as rsc title @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" #define __dsp (uiNamespace getVariable "RscKestrel4500") #define __ctrlKestrel4500 (__dsp displayCtrl 75000) diff --git a/addons/kestrel4500/functions/fnc_generateOutputData.sqf b/addons/kestrel4500/functions/fnc_generateOutputData.sqf index 240862b4f2..9a9d0551fe 100644 --- a/addons/kestrel4500/functions/fnc_generateOutputData.sqf +++ b/addons/kestrel4500/functions/fnc_generateOutputData.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Ruthberg * Generates the Kestrel 4500 output text. @@ -29,7 +30,6 @@ * * Public: No */ -#include "script_component.hpp" if (diag_tickTime - GVAR(headingSetDisplayTimer) < 0.8) exitWith {["", "", " Heading Set", "", "", "", "", "", "", "", "", "", "", "", "", "", "", ""]}; diff --git a/addons/kestrel4500/functions/fnc_measureWindSpeed.sqf b/addons/kestrel4500/functions/fnc_measureWindSpeed.sqf index c023d8ec8d..5dcbf681d2 100644 --- a/addons/kestrel4500/functions/fnc_measureWindSpeed.sqf +++ b/addons/kestrel4500/functions/fnc_measureWindSpeed.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Ruthberg * Measures the wind speed, stores the information in GVAR(MeasuredWindSpeed) and updates GVAR(ImpellerState) @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" private _playerDir = getDir ACE_player; private _windSpeed = vectorMagnitude wind; diff --git a/addons/kestrel4500/functions/fnc_onCloseDialog.sqf b/addons/kestrel4500/functions/fnc_onCloseDialog.sqf index f8531f0e39..8b8a88f46b 100644 --- a/addons/kestrel4500/functions/fnc_onCloseDialog.sqf +++ b/addons/kestrel4500/functions/fnc_onCloseDialog.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Ruthberg * Called if Kestrel Dialog is closed @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" uiNamespace setVariable ['Kestrel4500_Display', nil]; GVAR(Kestrel4500) = false; diff --git a/addons/kestrel4500/functions/fnc_onCloseDisplay.sqf b/addons/kestrel4500/functions/fnc_onCloseDisplay.sqf index 549c22e275..09e5941a77 100644 --- a/addons/kestrel4500/functions/fnc_onCloseDisplay.sqf +++ b/addons/kestrel4500/functions/fnc_onCloseDisplay.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Ruthberg * Called if Kestrel Display is closed @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" uiNamespace setVariable ['RscKestrel4500', nil]; GVAR(Overlay) = false; diff --git a/addons/kestrel4500/functions/fnc_restoreUserData.sqf b/addons/kestrel4500/functions/fnc_restoreUserData.sqf index c1d9c0ebb3..ca90f8bbcc 100644 --- a/addons/kestrel4500/functions/fnc_restoreUserData.sqf +++ b/addons/kestrel4500/functions/fnc_restoreUserData.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Ruthberg * Reads user data from profileNamespace @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" GVAR(Menu) = 0 max (profileNamespace getVariable ["ACE_Kestrel4500_menu", 0]) min ((count GVAR(Menus)) - 1); GVAR(RefHeading) = 0 max (profileNamespace getVariable ["ACE_Kestrel4500_RefHeading", 0]) min 359; diff --git a/addons/kestrel4500/functions/fnc_storeUserData.sqf b/addons/kestrel4500/functions/fnc_storeUserData.sqf index 80fa219a3c..71338984ff 100644 --- a/addons/kestrel4500/functions/fnc_storeUserData.sqf +++ b/addons/kestrel4500/functions/fnc_storeUserData.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Ruthberg * Saves user data into profileNamespace @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" profileNamespace setVariable ["ACE_Kestrel4500_menu", GVAR(menu)]; profileNamespace setVariable ["ACE_Kestrel4500_RefHeading", GVAR(RefHeading)]; diff --git a/addons/kestrel4500/functions/fnc_updateDisplay.sqf b/addons/kestrel4500/functions/fnc_updateDisplay.sqf index a307e9fcd1..94255115db 100644 --- a/addons/kestrel4500/functions/fnc_updateDisplay.sqf +++ b/addons/kestrel4500/functions/fnc_updateDisplay.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Ruthberg * Updates the Kestrel 4500 dialog text boxes. @@ -12,7 +13,6 @@ * * Public: No */ -#include "script_component.hpp" #define __dsp (uiNamespace getVariable "Kestrel4500_Display") #define __ctrlCenterLine3 (__dsp displayCtrl 74602) diff --git a/addons/kestrel4500/functions/fnc_updateImpellerState.sqf b/addons/kestrel4500/functions/fnc_updateImpellerState.sqf index a746a98835..5692f0d276 100644 --- a/addons/kestrel4500/functions/fnc_updateImpellerState.sqf +++ b/addons/kestrel4500/functions/fnc_updateImpellerState.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Ruthberg * Updates the Kestrel 4500 Impeller state @@ -12,7 +13,6 @@ * * Public: No */ -#include "script_component.hpp" private _windSpeed = call FUNC(measureWindSpeed); diff --git a/addons/kestrel4500/functions/fnc_updateMemory.sqf b/addons/kestrel4500/functions/fnc_updateMemory.sqf index c393aee14f..2eff1c5a9a 100644 --- a/addons/kestrel4500/functions/fnc_updateMemory.sqf +++ b/addons/kestrel4500/functions/fnc_updateMemory.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Ruthberg * Update Memory of Kestrel @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_slot", "_value"]; GVAR(MIN) set [_slot, (GVAR(MIN) select _slot) min _value]; GVAR(MAX) set [_slot, _value max (GVAR(MAX) select _slot)]; diff --git a/addons/laser/functions/fnc_addLaserTarget.sqf b/addons/laser/functions/fnc_addLaserTarget.sqf index 9addb8ed93..48a98353e9 100644 --- a/addons/laser/functions/fnc_addLaserTarget.sqf +++ b/addons/laser/functions/fnc_addLaserTarget.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: esteldunedain * Adds a vanilla laser target to the tracker PFH and globaly turns it on @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_targetObject", "_vehicle"]; TRACE_2("params",_targetObject,_vehicle); diff --git a/addons/laser/functions/fnc_dev_drawVisibleLaserTargets.sqf b/addons/laser/functions/fnc_dev_drawVisibleLaserTargets.sqf index 42931db29d..4613f510ef 100644 --- a/addons/laser/functions/fnc_dev_drawVisibleLaserTargets.sqf +++ b/addons/laser/functions/fnc_dev_drawVisibleLaserTargets.sqf @@ -1,3 +1,5 @@ +#include "script_component.hpp" + /* * Author: ACE-Team * @@ -23,8 +25,6 @@ // Green - Rays // Blue - Seeker Locks -#include "script_component.hpp" - // Try searching for lasers from a given vehicle position [BLUE]: private _seekerVehicle = vehicle ace_player; private _testSeekerPosASL = AGLtoASL (_seekerVehicle modelToWorldVisual [0,0,1]); diff --git a/addons/laser/functions/fnc_findLaserSource.sqf b/addons/laser/functions/fnc_findLaserSource.sqf index 585faf3023..dcb137fb69 100644 --- a/addons/laser/functions/fnc_findLaserSource.sqf +++ b/addons/laser/functions/fnc_findLaserSource.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: esteldunedain * Handler function for finding position and direction of a vanilla laser. @@ -15,7 +16,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_vehicle", "", "", "", "", "", "_methodArgs"]; _methodArgs params ["_ownerSelection"]; diff --git a/addons/laser/functions/fnc_handleLaserTargetCreation.sqf b/addons/laser/functions/fnc_handleLaserTargetCreation.sqf index c4ac9d3967..c619024ed4 100644 --- a/addons/laser/functions/fnc_handleLaserTargetCreation.sqf +++ b/addons/laser/functions/fnc_handleLaserTargetCreation.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: esteldunedain * Associates a newly created laser target to it's owner @@ -13,8 +14,6 @@ * * Public: No */ -// #define DEBUG_MODE_FULL -#include "script_component.hpp" TRACE_1("params",_this); [{ diff --git a/addons/laser/functions/fnc_keyLaserCodeChange.sqf b/addons/laser/functions/fnc_keyLaserCodeChange.sqf index 14c6ab70b6..32d9151083 100644 --- a/addons/laser/functions/fnc_keyLaserCodeChange.sqf +++ b/addons/laser/functions/fnc_keyLaserCodeChange.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: PabstMirror * Change the laser key code (both seeker and transmitter) @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" params [["_codeChange", 0, [0]]]; diff --git a/addons/laser/functions/fnc_laserOff.sqf b/addons/laser/functions/fnc_laserOff.sqf index 64188a62f1..bb207f2781 100644 --- a/addons/laser/functions/fnc_laserOff.sqf +++ b/addons/laser/functions/fnc_laserOff.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Nou * Turn a laser designator off. @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_uuid"]; diff --git a/addons/laser/functions/fnc_laserOn.sqf b/addons/laser/functions/fnc_laserOn.sqf index baa7e9c1c3..4038e065ef 100644 --- a/addons/laser/functions/fnc_laserOn.sqf +++ b/addons/laser/functions/fnc_laserOn.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Nou * Turn a laser designator on. @@ -21,8 +22,6 @@ * Public: No */ -#include "script_component.hpp" - // params [["_emitter", objNull, [objNull]],["_owner", objNull, [objNull]],["_method", "", ["", {}, []]],["_wavelength", 0, [0]],["_code", 0, [0]],["_beamSpread", 0, [0]],"_methodArgs"]; private _uuid = format["%1%2%3", floor diag_tickTime, floor random 1000, floor random 10000]; diff --git a/addons/laser/functions/fnc_laserTargetPFH.sqf b/addons/laser/functions/fnc_laserTargetPFH.sqf index 8ee3396d94..c833aa5254 100644 --- a/addons/laser/functions/fnc_laserTargetPFH.sqf +++ b/addons/laser/functions/fnc_laserTargetPFH.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: esteldunedain * Maintains the tracked lasers, deleting any laser that is turned off @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" params ["", "_pfhuid"]; diff --git a/addons/laser/functions/fnc_onLaserDesignatorDraw.sqf b/addons/laser/functions/fnc_onLaserDesignatorDraw.sqf index 1b5a3e36ca..e7a4994ce2 100644 --- a/addons/laser/functions/fnc_onLaserDesignatorDraw.sqf +++ b/addons/laser/functions/fnc_onLaserDesignatorDraw.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Nou * Update distance when rangefinder laser is on @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" private _laserCode = ACE_player getVariable[QGVAR(code), ACE_DEFAULT_LASER_CODE]; if (!isNil "_laserCode") then { diff --git a/addons/laser/functions/fnc_rotateVectLine.sqf b/addons/laser/functions/fnc_rotateVectLine.sqf index 17b771debe..990234c62c 100644 --- a/addons/laser/functions/fnc_rotateVectLine.sqf +++ b/addons/laser/functions/fnc_rotateVectLine.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: ACE-Team * @@ -14,8 +15,6 @@ * Public: No */ -#include "script_component.hpp" - params ["_map", "_theta"]; _map params ["_p", "_p1", "_p2", "_q1", "_q2", "_u", "_d"]; _q1 = +_q1; diff --git a/addons/laser/functions/fnc_rotateVectLineGetMap.sqf b/addons/laser/functions/fnc_rotateVectLineGetMap.sqf index 8d7f0a7f2e..f87aa21376 100644 --- a/addons/laser/functions/fnc_rotateVectLineGetMap.sqf +++ b/addons/laser/functions/fnc_rotateVectLineGetMap.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: ACE-Team * @@ -14,8 +15,6 @@ * Public: No */ -#include "script_component.hpp" - params ["_p", "_p1", "_p2"]; private _q2 = []; diff --git a/addons/laser/functions/fnc_seekerFindLaserSpot.sqf b/addons/laser/functions/fnc_seekerFindLaserSpot.sqf index 200e00acae..7fa64665ab 100644 --- a/addons/laser/functions/fnc_seekerFindLaserSpot.sqf +++ b/addons/laser/functions/fnc_seekerFindLaserSpot.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Nou * Searches for a laser spot given a seekers params. @@ -20,8 +21,6 @@ * * Public: No */ -// #define DEBUG_MODE_FULL -#include "script_component.hpp" BEGIN_COUNTER(seekerFindLaserSpot); diff --git a/addons/laser/functions/fnc_shootCone.sqf b/addons/laser/functions/fnc_shootCone.sqf index 9cde6f2139..b9d64a42fa 100644 --- a/addons/laser/functions/fnc_shootCone.sqf +++ b/addons/laser/functions/fnc_shootCone.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Nou * Shoots multiple rays in a dispersion pattern. @@ -17,8 +18,6 @@ * * Public: No */ -//#define DEBUG_MODE_FULL -#include "script_component.hpp" BEGIN_COUNTER(shootCone); diff --git a/addons/laser/functions/fnc_shootRay.sqf b/addons/laser/functions/fnc_shootRay.sqf index 12a3cf64bf..ecd16fc0d4 100644 --- a/addons/laser/functions/fnc_shootRay.sqf +++ b/addons/laser/functions/fnc_shootRay.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Nou, PabstMirror * Shoots a ray from a source to a direction and finds first intersction and distance. @@ -16,7 +17,6 @@ * * Public: No */ -#include "script_component.hpp" BEGIN_COUNTER(shootRay); diff --git a/addons/laser/functions/fnc_showVehicleHud.sqf b/addons/laser/functions/fnc_showVehicleHud.sqf index b4a5bcb519..3b9f0adc2f 100644 --- a/addons/laser/functions/fnc_showVehicleHud.sqf +++ b/addons/laser/functions/fnc_showVehicleHud.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: PabstMirror * Shows the laser hud when vehicle is equiped with the weapon. @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_player"]; TRACE_1("showHud",_player); diff --git a/addons/laserpointer/functions/fnc_drawLaserpoint.sqf b/addons/laserpointer/functions/fnc_drawLaserpoint.sqf index f5320d2c63..ab7724fda5 100644 --- a/addons/laserpointer/functions/fnc_drawLaserpoint.sqf +++ b/addons/laserpointer/functions/fnc_drawLaserpoint.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 and esteldunedain * Draw a Laser Point @@ -16,7 +17,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_target", "_range", "_isGreen", "_brightness"]; diff --git a/addons/laserpointer/functions/fnc_getNearUnits.sqf b/addons/laserpointer/functions/fnc_getNearUnits.sqf index baeb07c86e..38b1a32ed9 100644 --- a/addons/laserpointer/functions/fnc_getNearUnits.sqf +++ b/addons/laserpointer/functions/fnc_getNearUnits.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Reports near units. @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" private _camPosAGL = positionCameraToWorld [0, 0, 0]; diff --git a/addons/laserpointer/functions/fnc_onDraw.sqf b/addons/laserpointer/functions/fnc_onDraw.sqf index 4c614064e7..bfee8a7ea6 100644 --- a/addons/laserpointer/functions/fnc_onDraw.sqf +++ b/addons/laserpointer/functions/fnc_onDraw.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Draw the visible laser beams of all cached units. @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" if (count GVAR(redLaserUnits) + count GVAR(greenLaserUnits) > 0 && {!GVAR(isTI)}) then { private _brightness = 2 - call EFUNC(common,ambientBrightness); diff --git a/addons/logistics_uavbattery/functions/fnc_canRefuelUAV.sqf b/addons/logistics_uavbattery/functions/fnc_canRefuelUAV.sqf index 7d000fdfaa..d4e62afa15 100644 --- a/addons/logistics_uavbattery/functions/fnc_canRefuelUAV.sqf +++ b/addons/logistics_uavbattery/functions/fnc_canRefuelUAV.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: marc_book * Tests if unit can refuel the target UAV @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_caller", "_target"]; diff --git a/addons/logistics_uavbattery/functions/fnc_refuelUAV.sqf b/addons/logistics_uavbattery/functions/fnc_refuelUAV.sqf index 2e83043d00..c29be7636a 100644 --- a/addons/logistics_uavbattery/functions/fnc_refuelUAV.sqf +++ b/addons/logistics_uavbattery/functions/fnc_refuelUAV.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: marc_book * Starts refueling/recharging the 'Dartar' UAVs @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_caller", "_target"]; if (!(_this call FUNC(canRefuelUAV))) exitWith {}; diff --git a/addons/logistics_wirecutter/functions/fnc_cutDownFence.sqf b/addons/logistics_wirecutter/functions/fnc_cutDownFence.sqf index 3f31a7e841..79da93cf79 100644 --- a/addons/logistics_wirecutter/functions/fnc_cutDownFence.sqf +++ b/addons/logistics_wirecutter/functions/fnc_cutDownFence.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: gpgpgpgp, commy2, PabstMirror, mharis001 * Starts cutting down a fence. Triggers global "ace_wireCuttingStarted" event. @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_unit", "_fence"]; TRACE_2("Fence cutting started",_unit,_fence); diff --git a/addons/logistics_wirecutter/functions/fnc_interactEH.sqf b/addons/logistics_wirecutter/functions/fnc_interactEH.sqf index 9e64f9edb4..87b2a84016 100644 --- a/addons/logistics_wirecutter/functions/fnc_interactEH.sqf +++ b/addons/logistics_wirecutter/functions/fnc_interactEH.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: PabstMirror, mharis001 * Dynamically adds "Cut Fence" actions to nearby fences when interact_menu is opened. @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_interactionType"]; diff --git a/addons/logistics_wirecutter/functions/fnc_isFence.sqf b/addons/logistics_wirecutter/functions/fnc_isFence.sqf index ab06fcd934..38610f30fb 100644 --- a/addons/logistics_wirecutter/functions/fnc_isFence.sqf +++ b/addons/logistics_wirecutter/functions/fnc_isFence.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: PabstMirror * Checks if object is a fence. Should work on any fence type, even when (typeOf == ""). @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_object"]; TRACE_1("Checking if fence",_object); diff --git a/addons/magazinerepack/functions/fnc_getMagazineChildren.sqf b/addons/magazinerepack/functions/fnc_getMagazineChildren.sqf index f8403d81e5..b1cdef9829 100644 --- a/addons/magazinerepack/functions/fnc_getMagazineChildren.sqf +++ b/addons/magazinerepack/functions/fnc_getMagazineChildren.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: PabstMirror, commy2, esteldunedain, Ruthberg * Gets magazine children for interaciton menu. @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_target", "_player"]; diff --git a/addons/magazinerepack/functions/fnc_magazineRepackFinish.sqf b/addons/magazinerepack/functions/fnc_magazineRepackFinish.sqf index 286db1389b..d70899ba56 100644 --- a/addons/magazinerepack/functions/fnc_magazineRepackFinish.sqf +++ b/addons/magazinerepack/functions/fnc_magazineRepackFinish.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: PabstMirror (based on repack from commy2, esteldunedain, Ruthberg) * Simulates repacking a set of magazines. @@ -17,7 +18,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_args", "_elapsedTime", "_totalTime", "_errorCode"]; _args params ["_magazineClassname", "_lastAmmoCount"]; diff --git a/addons/magazinerepack/functions/fnc_magazineRepackProgress.sqf b/addons/magazinerepack/functions/fnc_magazineRepackProgress.sqf index ddc7ca4fa8..f48d0029fa 100644 --- a/addons/magazinerepack/functions/fnc_magazineRepackProgress.sqf +++ b/addons/magazinerepack/functions/fnc_magazineRepackProgress.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: PabstMirror (based on repack from commy2, esteldunedain, Ruthberg) * Handles each frame durring the repack progressBar. @@ -16,7 +17,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_args", "_elapsedTime", "_totalTime"]; _args params ["_magazineClassname", "_lastAmmoCount", "_simEvents"]; diff --git a/addons/magazinerepack/functions/fnc_simulateRepackEvents.sqf b/addons/magazinerepack/functions/fnc_simulateRepackEvents.sqf index a96fa2dead..bd7d4dae2a 100644 --- a/addons/magazinerepack/functions/fnc_simulateRepackEvents.sqf +++ b/addons/magazinerepack/functions/fnc_simulateRepackEvents.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: PabstMirror * Simulates repacking a set of magazines. @@ -17,7 +18,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_fullMagazineCount", "_arrayOfAmmoCounts", "_isBelt"]; diff --git a/addons/magazinerepack/functions/fnc_startRepackingMagazine.sqf b/addons/magazinerepack/functions/fnc_startRepackingMagazine.sqf index e87fc5f221..cd9df9b2a9 100644 --- a/addons/magazinerepack/functions/fnc_startRepackingMagazine.sqf +++ b/addons/magazinerepack/functions/fnc_startRepackingMagazine.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: PabstMirror (based on repack from commy2, esteldunedain, Ruthberg) * Starts repacking a specific magazine classname. @@ -17,7 +18,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_target", "_player", "_magazineClassname"]; diff --git a/addons/map/functions/fnc_blueForceTrackingModule.sqf b/addons/map/functions/fnc_blueForceTrackingModule.sqf index f19fc84e57..6569fabc35 100644 --- a/addons/map/functions/fnc_blueForceTrackingModule.sqf +++ b/addons/map/functions/fnc_blueForceTrackingModule.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: KoffeinFlummi * Initializes the blue force tracking module. @@ -14,8 +15,6 @@ * Public: No */ -#include "script_component.hpp" - params ["_logic"]; [_logic, QGVAR(BFT_Enabled), "Enabled"] call EFUNC(common,readSettingFromModule); diff --git a/addons/map/functions/fnc_blueForceTrackingUpdate.sqf b/addons/map/functions/fnc_blueForceTrackingUpdate.sqf index 46e7833cc1..9b8e288ac4 100644 --- a/addons/map/functions/fnc_blueForceTrackingUpdate.sqf +++ b/addons/map/functions/fnc_blueForceTrackingUpdate.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: ACE-Team * Update the blue force tracking. @@ -14,9 +15,6 @@ * Public: No */ - -// #define ENABLE_PERFORMANCE_COUNTERS -#include "script_component.hpp" // BEGIN_COUNTER(blueForceTrackingUpdate); // Delete last set of markers (always) diff --git a/addons/map/functions/fnc_compileFlashlightMenu.sqf b/addons/map/functions/fnc_compileFlashlightMenu.sqf index f271cd723f..c6af389a0a 100644 --- a/addons/map/functions/fnc_compileFlashlightMenu.sqf +++ b/addons/map/functions/fnc_compileFlashlightMenu.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: voiper * Compile list of flashlight classnames and add to the "Flashlight" parent menu. @@ -16,8 +17,6 @@ * Public: No */ -#include "script_component.hpp" - params ["", "_player"]; private _actions = []; diff --git a/addons/map/functions/fnc_determineMapLight.sqf b/addons/map/functions/fnc_determineMapLight.sqf index 55ca51fbd8..d6a0f09a08 100644 --- a/addons/map/functions/fnc_determineMapLight.sqf +++ b/addons/map/functions/fnc_determineMapLight.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Rocko and esteldunedain * Calculates the current map illumination for a given unit @@ -15,8 +16,6 @@ * Public: No */ -#include "script_component.hpp" - params ["_unit"]; // Blend two colors diff --git a/addons/map/functions/fnc_determineZoom.sqf b/addons/map/functions/fnc_determineZoom.sqf index fd9cc24264..45a6faeaf2 100644 --- a/addons/map/functions/fnc_determineZoom.sqf +++ b/addons/map/functions/fnc_determineZoom.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Rocko * Calculate the maximum zoom level allowed for the current map @@ -14,8 +15,6 @@ * Public: No */ -#include "script_component.hpp" - private _grids = (configFile >> "CfgWorlds" >> worldName >> "Grid"); private _fourSize = -1; private _sixSize = -1; diff --git a/addons/map/functions/fnc_flashlightGlow.sqf b/addons/map/functions/fnc_flashlightGlow.sqf index 5d743193df..32615d014b 100644 --- a/addons/map/functions/fnc_flashlightGlow.sqf +++ b/addons/map/functions/fnc_flashlightGlow.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: voiper * Add or remove global flashlight glow for when player is looking at map. @@ -16,8 +17,6 @@ * Public: No */ -#include "script_component.hpp" - params ["_unit", "_flashlightType", ["_set", true]]; private _unitLight = _unit getVariable [QGVAR(flashlight), ["", objNull]]; diff --git a/addons/map/functions/fnc_getUnitFlashlights.sqf b/addons/map/functions/fnc_getUnitFlashlights.sqf index 9987d59b1d..0bbd8b7af9 100644 --- a/addons/map/functions/fnc_getUnitFlashlights.sqf +++ b/addons/map/functions/fnc_getUnitFlashlights.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: voiper * Check a unit for any flashlights that can be used on map. @@ -14,8 +15,6 @@ * Public: No */ -#include "script_component.hpp" - params ["_unit"]; private _flashlights = []; diff --git a/addons/map/functions/fnc_moduleMap.sqf b/addons/map/functions/fnc_moduleMap.sqf index 077106eabe..e5747d5955 100644 --- a/addons/map/functions/fnc_moduleMap.sqf +++ b/addons/map/functions/fnc_moduleMap.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: esteldunedain * Initializes the Map module. @@ -14,8 +15,6 @@ * Public: No */ -#include "script_component.hpp" - params ["_logic", "", "_activated"]; if !(_activated) exitWith {}; diff --git a/addons/map/functions/fnc_onDrawMap.sqf b/addons/map/functions/fnc_onDrawMap.sqf index dff79d694a..5ad3d42fe0 100644 --- a/addons/map/functions/fnc_onDrawMap.sqf +++ b/addons/map/functions/fnc_onDrawMap.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * @@ -14,8 +15,6 @@ * Public: No */ -#include "script_component.hpp" - ((_this select 0) displayCtrl 1016) ctrlShow GVAR(mapShowCursorCoordinates); // hide clock when no watch in inventory, or whatever never ever diff --git a/addons/map/functions/fnc_simulateMapLight.sqf b/addons/map/functions/fnc_simulateMapLight.sqf index 538b49a37a..236914820f 100644 --- a/addons/map/functions/fnc_simulateMapLight.sqf +++ b/addons/map/functions/fnc_simulateMapLight.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: voiper * Draw nearby lighting and sexy flashlight beams on main map. @@ -17,8 +18,6 @@ * Public: No */ -#include "script_component.hpp" - params ["_mapCtrl", "_mapScale", "_mapCentre", "_lightLevel"]; private _unitLight = ACE_player getVariable [QGVAR(flashlight), ["", objNull]]; diff --git a/addons/map/functions/fnc_switchFlashlight.sqf b/addons/map/functions/fnc_switchFlashlight.sqf index cda4380d08..4fc1c75356 100644 --- a/addons/map/functions/fnc_switchFlashlight.sqf +++ b/addons/map/functions/fnc_switchFlashlight.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: voioper * Switch flashlight on/off. @@ -15,8 +16,6 @@ * Public: No */ -#include "script_component.hpp" - params ["_unit", "_newFlashlight"]; private _unitLight = _unit getVariable [QGVAR(flashlight), ["", objNull]]; diff --git a/addons/map/functions/fnc_updateMapEffects.sqf b/addons/map/functions/fnc_updateMapEffects.sqf index 2c0f3c128c..4e8d65bee2 100644 --- a/addons/map/functions/fnc_updateMapEffects.sqf +++ b/addons/map/functions/fnc_updateMapEffects.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Rocko and esteldunedain * On map draw, updates the effects @@ -14,8 +15,6 @@ * Public: No */ -#include "script_component.hpp" - params ["_mapCtrl"]; private _mapScale = ctrlMapScale _mapCtrl; private _mapCentre = _mapCtrl ctrlMapScreenToWorld [0.5, 0.5]; diff --git a/addons/map_gestures/functions/fnc_addGroupColorMapping.sqf b/addons/map_gestures/functions/fnc_addGroupColorMapping.sqf index e02403b323..eaf319bc90 100644 --- a/addons/map_gestures/functions/fnc_addGroupColorMapping.sqf +++ b/addons/map_gestures/functions/fnc_addGroupColorMapping.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Dslyecxi, MikeMatrix, PabstMirror * Adds a group id color mapping. @@ -15,7 +16,6 @@ * * Public: Yes */ -#include "script_component.hpp" if (!params [["_group", "", [grpNull, ""]], ["_leadColor", [1,1,1,1], [[]], 4], ["_unitColor", [1,1,1,1], [[]], 4]]) exitWith { ERROR_1("Bad Params: %1",_this); diff --git a/addons/map_gestures/functions/fnc_drawMapGestures.sqf b/addons/map_gestures/functions/fnc_drawMapGestures.sqf index 237d0537f5..2aecd2388f 100644 --- a/addons/map_gestures/functions/fnc_drawMapGestures.sqf +++ b/addons/map_gestures/functions/fnc_drawMapGestures.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Dslyecxi, MikeMatrix * Receives and draws map gestures from nearby players. @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" BEGIN_COUNTER(draw); diff --git a/addons/map_gestures/functions/fnc_endTransmit.sqf b/addons/map_gestures/functions/fnc_endTransmit.sqf index fc3e0e81e1..e591cd39ba 100644 --- a/addons/map_gestures/functions/fnc_endTransmit.sqf +++ b/addons/map_gestures/functions/fnc_endTransmit.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Dslyecxi, MikeMatrix * Ensure that all variables used to indicate transmission are disabled. @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" if (!GVAR(enabled)) exitWith {}; diff --git a/addons/map_gestures/functions/fnc_getProximityPlayers.sqf b/addons/map_gestures/functions/fnc_getProximityPlayers.sqf index ea058f0f7e..9718095b01 100644 --- a/addons/map_gestures/functions/fnc_getProximityPlayers.sqf +++ b/addons/map_gestures/functions/fnc_getProximityPlayers.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Dslyecxi, MikeMatrix * Returns all players in a given range and in the units vehicle. @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_unit", "_range"]; diff --git a/addons/map_gestures/functions/fnc_initTransmit.sqf b/addons/map_gestures/functions/fnc_initTransmit.sqf index 604bf9e233..782b4c9666 100644 --- a/addons/map_gestures/functions/fnc_initTransmit.sqf +++ b/addons/map_gestures/functions/fnc_initTransmit.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Dslyecxi, MikeMatrix * Initializes transmitting map gestures. @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" if (!GVAR(enabled)) exitWith {}; diff --git a/addons/map_gestures/functions/fnc_isValidColorArray.sqf b/addons/map_gestures/functions/fnc_isValidColorArray.sqf index fdf89a46d6..8abaf4f375 100644 --- a/addons/map_gestures/functions/fnc_isValidColorArray.sqf +++ b/addons/map_gestures/functions/fnc_isValidColorArray.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: MikeMatrix * Validate if an array is in the propper color format. @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" scopeName "main"; diff --git a/addons/map_gestures/functions/fnc_moduleGroupSettings.sqf b/addons/map_gestures/functions/fnc_moduleGroupSettings.sqf index 8f44cf5732..fb87822a30 100644 --- a/addons/map_gestures/functions/fnc_moduleGroupSettings.sqf +++ b/addons/map_gestures/functions/fnc_moduleGroupSettings.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Dslyecxi, MikeMatrix * Initializes Settings for the groups modules and transcodes settings to a useable format. @@ -15,7 +16,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_logic", "_units", "_activated"]; TRACE_3("params",_logic,_units,_activated); diff --git a/addons/map_gestures/functions/fnc_moduleSettings.sqf b/addons/map_gestures/functions/fnc_moduleSettings.sqf index f49e1d4525..93525226ea 100644 --- a/addons/map_gestures/functions/fnc_moduleSettings.sqf +++ b/addons/map_gestures/functions/fnc_moduleSettings.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Dslyecxi, MikeMatrix * Initializes Settings for the module and transcodes settings to a useable format. @@ -15,7 +16,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_logic", "", "_activated"]; diff --git a/addons/map_gestures/functions/fnc_receiverInit.sqf b/addons/map_gestures/functions/fnc_receiverInit.sqf index 9386523340..0effb9a7d5 100644 --- a/addons/map_gestures/functions/fnc_receiverInit.sqf +++ b/addons/map_gestures/functions/fnc_receiverInit.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Dslyecxi, MikeMatrix * Initializes the receiver and hooks it to the Draw event of the map. @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" ACE_player setVariable [QGVAR(Transmit), false, true]; GVAR(EnableTransmit) = false; diff --git a/addons/map_gestures/functions/fnc_transmit.sqf b/addons/map_gestures/functions/fnc_transmit.sqf index 166b1cb375..1b1f462f01 100644 --- a/addons/map_gestures/functions/fnc_transmit.sqf +++ b/addons/map_gestures/functions/fnc_transmit.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Dslyecxi, MikeMatrix * Transmit PFH @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" BEGIN_COUNTER(transmit); diff --git a/addons/map_gestures/functions/fnc_transmitterInit.sqf b/addons/map_gestures/functions/fnc_transmitterInit.sqf index 6a031e419b..a081ef5b14 100644 --- a/addons/map_gestures/functions/fnc_transmitterInit.sqf +++ b/addons/map_gestures/functions/fnc_transmitterInit.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Dslyecxi, MikeMatrix * Initializes the transmitting event handlers. @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" disableSerialization; diff --git a/addons/maptools/functions/fnc_calculateMapScale.sqf b/addons/maptools/functions/fnc_calculateMapScale.sqf index d5148893d5..035946aea5 100644 --- a/addons/maptools/functions/fnc_calculateMapScale.sqf +++ b/addons/maptools/functions/fnc_calculateMapScale.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: esteldunedain * Returns the equivalent of 100m in screen coordinates @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" private _pos = ((findDisplay 12) displayCtrl 51) ctrlMapScreenToWorld [0.5, 0.5]; private _screenOffset = ((findDisplay 12) displayCtrl 51) posWorldToScreen [(_pos select 0) + 100, (_pos select 1)]; diff --git a/addons/maptools/functions/fnc_canUseMapGPS.sqf b/addons/maptools/functions/fnc_canUseMapGPS.sqf index 7333c1f9e0..80f2541cab 100644 --- a/addons/maptools/functions/fnc_canUseMapGPS.sqf +++ b/addons/maptools/functions/fnc_canUseMapGPS.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: esteldunedain * canUseMapGPS @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" visibleMap && {alive ACE_player} && diff --git a/addons/maptools/functions/fnc_canUseMapTools.sqf b/addons/maptools/functions/fnc_canUseMapTools.sqf index 8b87855d79..e09a450031 100644 --- a/addons/maptools/functions/fnc_canUseMapTools.sqf +++ b/addons/maptools/functions/fnc_canUseMapTools.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: esteldunedain * canUseMapTools @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" visibleMap && {alive ACE_player} && diff --git a/addons/maptools/functions/fnc_drawLinesOnRoamer.sqf b/addons/maptools/functions/fnc_drawLinesOnRoamer.sqf index ef354f0798..a2ec5bfe78 100644 --- a/addons/maptools/functions/fnc_drawLinesOnRoamer.sqf +++ b/addons/maptools/functions/fnc_drawLinesOnRoamer.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: PabstMirror * Prevents the cursor from entering the roamer when drawing lines and records the positions @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" if (!GVAR(drawStraightLines)) exitWith {}; diff --git a/addons/maptools/functions/fnc_handleMouseButton.sqf b/addons/maptools/functions/fnc_handleMouseButton.sqf index 143289447e..36639a02d7 100644 --- a/addons/maptools/functions/fnc_handleMouseButton.sqf +++ b/addons/maptools/functions/fnc_handleMouseButton.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: esteldunedain * Handle mouse buttons. @@ -15,8 +16,6 @@ * Public: No */ -#include "script_component.hpp" - params ["_dir", "_params"]; _params params ["_control", "_button", "_screenPosX", "_screenPosY", "_shiftKey", "_ctrlKey", "_altKey"]; TRACE_2("params",_dir,_params); diff --git a/addons/maptools/functions/fnc_handleMouseMove.sqf b/addons/maptools/functions/fnc_handleMouseMove.sqf index 8ff8fd1dc1..6ba8e1938c 100644 --- a/addons/maptools/functions/fnc_handleMouseMove.sqf +++ b/addons/maptools/functions/fnc_handleMouseMove.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: esteldunedain * Handle mouse movement over the map tool. @@ -15,8 +16,6 @@ * Public: No */ -#include "script_component.hpp" - params ["_control", "_mousePosX", "_mousePosY"]; TRACE_3("params",_control,_mousePosX,_mousePosY); diff --git a/addons/maptools/functions/fnc_isInsideMapTool.sqf b/addons/maptools/functions/fnc_isInsideMapTool.sqf index c54f831e8f..97eedf85f3 100644 --- a/addons/maptools/functions/fnc_isInsideMapTool.sqf +++ b/addons/maptools/functions/fnc_isInsideMapTool.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: esteldunedain * Return true if the position is inside the map marker (to allow dragging). @@ -15,8 +16,6 @@ * Public: No */ -#include "script_component.hpp" - if (GVAR(mapTool_Shown) == 0) exitWith {false}; private _textureWidth = [TEXTURE_WIDTH_IN_M, TEXTURE_WIDTH_IN_M / 2] select (GVAR(mapTool_Shown) - 1); diff --git a/addons/maptools/functions/fnc_openMapGps.sqf b/addons/maptools/functions/fnc_openMapGps.sqf index 7e8d923661..96be3f6bd2 100644 --- a/addons/maptools/functions/fnc_openMapGps.sqf +++ b/addons/maptools/functions/fnc_openMapGps.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: esteldunedain * Opens or closes the gps on the map screen, showing coordinates @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_shouldOpenGps"]; diff --git a/addons/maptools/functions/fnc_openMapGpsUpdate.sqf b/addons/maptools/functions/fnc_openMapGpsUpdate.sqf index 63ecae81ec..84cb3f17a4 100644 --- a/addons/maptools/functions/fnc_openMapGpsUpdate.sqf +++ b/addons/maptools/functions/fnc_openMapGpsUpdate.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: esteldunedain * update gps display @@ -14,8 +15,6 @@ * Public: No */ -#include "script_component.hpp" - if ((!("ItemGPS" in assigneditems ACE_player)) || {isNull (uiNamespace getVariable [QGVAR(ui_mapGpsDisplay), displayNull])}) exitWith { ("RscACE_MapGps" call BIS_fnc_rscLayer) cutText ["","PLAIN"]; // Close GPS RSC [(_this select 1)] call CBA_fnc_removePerFrameHandler; // Remove frameHandler diff --git a/addons/maptools/functions/fnc_updateMapToolMarkers.sqf b/addons/maptools/functions/fnc_updateMapToolMarkers.sqf index 98d47ce385..e9cb14d7ed 100644 --- a/addons/maptools/functions/fnc_updateMapToolMarkers.sqf +++ b/addons/maptools/functions/fnc_updateMapToolMarkers.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: esteldunedain * Update the map tool markers, position, size, rotation and visibility. @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_theMap"]; diff --git a/addons/markers/functions/fnc_canMove.sqf b/addons/markers/functions/fnc_canMove.sqf index c97aafe07a..7b19385d26 100644 --- a/addons/markers/functions/fnc_canMove.sqf +++ b/addons/markers/functions/fnc_canMove.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: chris579 * Checks whether the player can move markers. @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" switch (GVAR(moveRestriction)) do { case MOVE_RESTRICTION_NOBODY: {false}; diff --git a/addons/markers/functions/fnc_getEnabledChannels.sqf b/addons/markers/functions/fnc_getEnabledChannels.sqf index 8919de5eae..bc665cf69c 100644 --- a/addons/markers/functions/fnc_getEnabledChannels.sqf +++ b/addons/markers/functions/fnc_getEnabledChannels.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2, Timi007 * Return enabled channels. @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" params [["_localize", false, [false]]]; diff --git a/addons/markers/functions/fnc_initInsertMarker.sqf b/addons/markers/functions/fnc_initInsertMarker.sqf index 5263d2b73a..fa7cec19ee 100644 --- a/addons/markers/functions/fnc_initInsertMarker.sqf +++ b/addons/markers/functions/fnc_initInsertMarker.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: BIS, commy2, Timi007 * Sets up the marker placement @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" #define BORDER 0.005 diff --git a/addons/markers/functions/fnc_mapDisplayInitEH.sqf b/addons/markers/functions/fnc_mapDisplayInitEH.sqf index 4a740f0424..3ab874c445 100644 --- a/addons/markers/functions/fnc_mapDisplayInitEH.sqf +++ b/addons/markers/functions/fnc_mapDisplayInitEH.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: PabstMirror * Handles XEH DisplayLoad for the various map displays (RscDiary) @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_display"]; TRACE_1("params",_display); diff --git a/addons/markers/functions/fnc_mapDrawEH.sqf b/addons/markers/functions/fnc_mapDrawEH.sqf index 7197c90cc7..5f3c6aed15 100644 --- a/addons/markers/functions/fnc_mapDrawEH.sqf +++ b/addons/markers/functions/fnc_mapDrawEH.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: PabstMirror * Draws the current temp marker. Allows rotation. @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_theMap"]; // TRACE_1("params",_theMap); diff --git a/addons/markers/functions/fnc_movePFH.sqf b/addons/markers/functions/fnc_movePFH.sqf index 6167b820af..144fce6ff0 100644 --- a/addons/markers/functions/fnc_movePFH.sqf +++ b/addons/markers/functions/fnc_movePFH.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: chris579 * When the marker is being moved. @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" (_this select 0) params ["_marker", "_ctrlMap", "_originalPos", "_originalAlpha"]; diff --git a/addons/markers/functions/fnc_onLBSelChangedChannel.sqf b/addons/markers/functions/fnc_onLBSelChangedChannel.sqf index 8c7ac11046..954e90470c 100644 --- a/addons/markers/functions/fnc_onLBSelChangedChannel.sqf +++ b/addons/markers/functions/fnc_onLBSelChangedChannel.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * When the channel list box is changed. @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_ctrl", "_index"]; TRACE_2("params",_ctrl,_index); diff --git a/addons/markers/functions/fnc_onLBSelChangedColor.sqf b/addons/markers/functions/fnc_onLBSelChangedColor.sqf index dc186a6c61..a141f7e72d 100644 --- a/addons/markers/functions/fnc_onLBSelChangedColor.sqf +++ b/addons/markers/functions/fnc_onLBSelChangedColor.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * When the color list box is changed. @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_ctrl", "_index"]; TRACE_2("params",_ctrl,_index); diff --git a/addons/markers/functions/fnc_onLBSelChangedShape.sqf b/addons/markers/functions/fnc_onLBSelChangedShape.sqf index 6fd9aabd89..52a85e5c8d 100644 --- a/addons/markers/functions/fnc_onLBSelChangedShape.sqf +++ b/addons/markers/functions/fnc_onLBSelChangedShape.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * When the shape list box is changed. @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_ctrl", "_index"]; TRACE_2("params",_ctrl,_index); diff --git a/addons/markers/functions/fnc_onMouseButtonDown.sqf b/addons/markers/functions/fnc_onMouseButtonDown.sqf index dee5cab7ed..afdacfb521 100644 --- a/addons/markers/functions/fnc_onMouseButtonDown.sqf +++ b/addons/markers/functions/fnc_onMouseButtonDown.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: chris579 * Triggered when a mouse button is pressed on the map. @@ -19,7 +20,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_ctrlMap", "_button", "_x", "_y", "_shift", "_ctrl", "_alt"]; diff --git a/addons/markers/functions/fnc_onMouseButtonUp.sqf b/addons/markers/functions/fnc_onMouseButtonUp.sqf index 62b4cd5af7..ffe0ed000f 100644 --- a/addons/markers/functions/fnc_onMouseButtonUp.sqf +++ b/addons/markers/functions/fnc_onMouseButtonUp.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: chris579 * Triggered when a mouse button is released on the map. @@ -19,7 +20,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_ctrlMap", "_button", "_x", "_y", "_shift", "_ctrl", "_alt"]; diff --git a/addons/markers/functions/fnc_onSliderPosChangedAngle.sqf b/addons/markers/functions/fnc_onSliderPosChangedAngle.sqf index 030e2314ab..c334d0a8f0 100644 --- a/addons/markers/functions/fnc_onSliderPosChangedAngle.sqf +++ b/addons/markers/functions/fnc_onSliderPosChangedAngle.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Angle Slider Pos changed @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_ctrl", "_data"]; TRACE_2("params",_ctrl,_data); diff --git a/addons/markers/functions/fnc_placeMarker.sqf b/addons/markers/functions/fnc_placeMarker.sqf index 0eca5bf35e..af905d71f1 100644 --- a/addons/markers/functions/fnc_placeMarker.sqf +++ b/addons/markers/functions/fnc_placeMarker.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2, Timi007 * MarkerPlacement closed @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" disableserialization; params ["_display", "_closeNum"]; diff --git a/addons/markers/functions/fnc_sendMarkersJIP.sqf b/addons/markers/functions/fnc_sendMarkersJIP.sqf index 1eee39560c..08b36181b1 100644 --- a/addons/markers/functions/fnc_sendMarkersJIP.sqf +++ b/addons/markers/functions/fnc_sendMarkersJIP.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Server: Recives a dummy logic, sends marker data back to the owner. @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_owner"]; TRACE_1("params",_owner); diff --git a/addons/markers/functions/fnc_setMarkerJIP.sqf b/addons/markers/functions/fnc_setMarkerJIP.sqf index 1acd758556..ba7dc68a5b 100644 --- a/addons/markers/functions/fnc_setMarkerJIP.sqf +++ b/addons/markers/functions/fnc_setMarkerJIP.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Client: Recives a marker data from server. @@ -15,7 +16,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_allMapMarkers", "_allMapMarkersProperties"]; TRACE_3("params",_allMapMarkers,_allMapMarkersProperties); diff --git a/addons/markers/functions/fnc_setMarkerNetwork.sqf b/addons/markers/functions/fnc_setMarkerNetwork.sqf index 9d6d2d8ecf..b59338e7d2 100644 --- a/addons/markers/functions/fnc_setMarkerNetwork.sqf +++ b/addons/markers/functions/fnc_setMarkerNetwork.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Sets newly placed marker @@ -15,7 +16,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_marker", "_data"]; TRACE_2("params",_marker,_data); diff --git a/addons/medical/functions/fnc_actionCheckBloodPressure.sqf b/addons/medical/functions/fnc_actionCheckBloodPressure.sqf index 207e2bb90d..dfd930451f 100644 --- a/addons/medical/functions/fnc_actionCheckBloodPressure.sqf +++ b/addons/medical/functions/fnc_actionCheckBloodPressure.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Glowbal * Action for checking the blood pressure of the patient @@ -15,8 +16,6 @@ * Public: No */ -#include "script_component.hpp" - params ["_caller", "_target", "_selectionName"]; if (local _target) then { [QGVAR(actionCheckBloodPressureLocal), [_caller, _target, _selectionName]] call CBA_fnc_localEvent; diff --git a/addons/medical/functions/fnc_actionCheckBloodPressureLocal.sqf b/addons/medical/functions/fnc_actionCheckBloodPressureLocal.sqf index 0497b559b8..aa87f4889d 100644 --- a/addons/medical/functions/fnc_actionCheckBloodPressureLocal.sqf +++ b/addons/medical/functions/fnc_actionCheckBloodPressureLocal.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Glowbal * Local callback for checking the blood pressure of a patient @@ -15,8 +16,6 @@ * Public: No */ -#include "script_component.hpp" - params ["_caller", "_target", "_selectionName"]; private _bloodPressure = if (!alive _target) then { diff --git a/addons/medical/functions/fnc_actionCheckPulse.sqf b/addons/medical/functions/fnc_actionCheckPulse.sqf index 7654f24d78..da0711d280 100644 --- a/addons/medical/functions/fnc_actionCheckPulse.sqf +++ b/addons/medical/functions/fnc_actionCheckPulse.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Glowbal * Action for checking the pulse or heart rate of the patient @@ -15,8 +16,6 @@ * Public: No */ -#include "script_component.hpp" - params ["_caller","_target", "_selectionName"]; if (local _target) then { [QGVAR(actionCheckPulseLocal), [_caller, _target, _selectionName]] call CBA_fnc_localEvent; diff --git a/addons/medical/functions/fnc_actionCheckPulseLocal.sqf b/addons/medical/functions/fnc_actionCheckPulseLocal.sqf index 7f4fe176da..6e8989acc3 100644 --- a/addons/medical/functions/fnc_actionCheckPulseLocal.sqf +++ b/addons/medical/functions/fnc_actionCheckPulseLocal.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Glowbal * Local callback for checking the pulse of a patient @@ -15,8 +16,6 @@ * Public: No */ -#include "script_component.hpp" - params ["_caller", "_unit", "_selectionName"]; private _heartRate = _unit getVariable [QGVAR(heartRate), 80]; diff --git a/addons/medical/functions/fnc_actionCheckResponse.sqf b/addons/medical/functions/fnc_actionCheckResponse.sqf index a56c8191c6..58e8219be9 100644 --- a/addons/medical/functions/fnc_actionCheckResponse.sqf +++ b/addons/medical/functions/fnc_actionCheckResponse.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Glowbal * Action for checking the response status of the patient @@ -15,8 +16,6 @@ * Public: No */ -#include "script_component.hpp" - params ["_caller", "_target"]; private _output = [LSTRING(Check_Response_Unresponsive), LSTRING(Check_Response_Responsive)] select ([_target] call EFUNC(common,isAwake)); diff --git a/addons/medical/functions/fnc_actionDiagnose.sqf b/addons/medical/functions/fnc_actionDiagnose.sqf index 81e73699a8..bd51233ddd 100644 --- a/addons/medical/functions/fnc_actionDiagnose.sqf +++ b/addons/medical/functions/fnc_actionDiagnose.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Glowbal * Action for diagnosing in basic medical @@ -15,8 +16,6 @@ * Public: No */ -#include "script_component.hpp" - params ["_caller", "_target"]; private _genericMessages = [LSTRING(diagnoseMessage), [_target] call EFUNC(common,getName)]; diff --git a/addons/medical/functions/fnc_actionLoadUnit.sqf b/addons/medical/functions/fnc_actionLoadUnit.sqf index 264fb72a4b..95b7cbf8a3 100644 --- a/addons/medical/functions/fnc_actionLoadUnit.sqf +++ b/addons/medical/functions/fnc_actionLoadUnit.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Glowbal * Action for loading an unconscious or dead unit in the nearest vehicle, or _vehicle if given. @@ -16,8 +17,6 @@ * Public: No */ -#include "script_component.hpp" - params ["_caller", "_target", ["_vehicle", objNull]]; if ([_target] call EFUNC(common,isAwake)) exitWith { diff --git a/addons/medical/functions/fnc_actionPlaceInBodyBag.sqf b/addons/medical/functions/fnc_actionPlaceInBodyBag.sqf index 3f329d3dbb..b4f53370aa 100644 --- a/addons/medical/functions/fnc_actionPlaceInBodyBag.sqf +++ b/addons/medical/functions/fnc_actionPlaceInBodyBag.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Glowbal * Replace a (dead) body by a body bag @@ -15,8 +16,6 @@ * Public: Yes */ -#include "script_component.hpp" - params ["_caller", "_target"]; TRACE_2("params",_caller,_target); diff --git a/addons/medical/functions/fnc_actionRemoveTourniquet.sqf b/addons/medical/functions/fnc_actionRemoveTourniquet.sqf index e32fd09f69..0e7d668b3a 100644 --- a/addons/medical/functions/fnc_actionRemoveTourniquet.sqf +++ b/addons/medical/functions/fnc_actionRemoveTourniquet.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Glowbal * Action for removing the tourniquet on specified selection @@ -16,8 +17,6 @@ * Public: Yes */ -#include "script_component.hpp" - params ["_caller", "_target", "_selectionName"]; TRACE_3("params",_caller,_target,_selectionName); diff --git a/addons/medical/functions/fnc_actionUnloadUnit.sqf b/addons/medical/functions/fnc_actionUnloadUnit.sqf index 061355fdc8..e98c01fd2b 100644 --- a/addons/medical/functions/fnc_actionUnloadUnit.sqf +++ b/addons/medical/functions/fnc_actionUnloadUnit.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Glowbal * Action for unloading an unconscious or dead unit from a vechile @@ -16,8 +17,6 @@ * Public: No */ -#include "script_component.hpp" - params ["_caller", "_target", ["_drag", false]]; // cannot unload a unit not in a vehicle. diff --git a/addons/medical/functions/fnc_addDamageToUnit.sqf b/addons/medical/functions/fnc_addDamageToUnit.sqf index 1c3d06d215..609c636bfa 100644 --- a/addons/medical/functions/fnc_addDamageToUnit.sqf +++ b/addons/medical/functions/fnc_addDamageToUnit.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: PabstMirror * Manually Apply Damage to a unit (can cause lethal damage) @@ -18,9 +19,7 @@ * * Public: Yes */ -// #define DEBUG_MODE_FULL // #define DEBUG_TESTRESULTS -#include "script_component.hpp" params [["_unit", objNull, [objNull]], ["_damageToAdd", -1, [0]], ["_selection", "", [""]], ["_typeOfDamage", "", [""]]]; TRACE_4("params",_unit,_damageToAdd,_selection,_typeOfDamage); diff --git a/addons/medical/functions/fnc_addHeartRateAdjustment.sqf b/addons/medical/functions/fnc_addHeartRateAdjustment.sqf index de3d2c4204..6c932bb2ef 100644 --- a/addons/medical/functions/fnc_addHeartRateAdjustment.sqf +++ b/addons/medical/functions/fnc_addHeartRateAdjustment.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Glowbal, KoffeinFlummi * Increase the Heart Rate of a local unit by given number within given amount of seconds. @@ -17,8 +18,6 @@ * Public: Yes */ -#include "script_component.hpp" - params [["_unit", objNull, [objNull]], ["_value", 0, [0]], ["_time", 1, [0]], ["_callBack", {}, [{}]]]; private _adjustment = _unit getVariable [QGVAR(heartRateAdjustments), []]; diff --git a/addons/medical/functions/fnc_addLoadPatientActions.sqf b/addons/medical/functions/fnc_addLoadPatientActions.sqf index b00ff72472..0b0b64fb69 100644 --- a/addons/medical/functions/fnc_addLoadPatientActions.sqf +++ b/addons/medical/functions/fnc_addLoadPatientActions.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: 654wak654 * Adds child actions to the "load patient" action for near vehicles. @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_target"]; diff --git a/addons/medical/functions/fnc_addToLog.sqf b/addons/medical/functions/fnc_addToLog.sqf index 2a5e77fd1b..dadab94a2a 100644 --- a/addons/medical/functions/fnc_addToLog.sqf +++ b/addons/medical/functions/fnc_addToLog.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Glowbal * Add an entry to the specified log @@ -17,8 +18,6 @@ * Public: Yes */ -#include "script_component.hpp" - params ["_unit", "_type", "_message", "_arguments"]; if (!local _unit) exitWith { diff --git a/addons/medical/functions/fnc_addToTriageCard.sqf b/addons/medical/functions/fnc_addToTriageCard.sqf index 720a435d68..9b240846bc 100644 --- a/addons/medical/functions/fnc_addToTriageCard.sqf +++ b/addons/medical/functions/fnc_addToTriageCard.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Glowbal * Add an entry to the triage card @@ -15,8 +16,6 @@ * Public: Yes */ -#include "script_component.hpp" - params ["_unit", "_newItem"]; if (!local _unit) exitWith { diff --git a/addons/medical/functions/fnc_addUnconsciousCondition.sqf b/addons/medical/functions/fnc_addUnconsciousCondition.sqf index b3b7f7747b..f31e5045fd 100644 --- a/addons/medical/functions/fnc_addUnconsciousCondition.sqf +++ b/addons/medical/functions/fnc_addUnconsciousCondition.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Glowbal * Adds new condition for the unconscious state. Conditions are not actively checked for units unless unit is in unconscious state. @@ -13,7 +14,6 @@ * * Public: Yes */ -#include "script_component.hpp" if (isnil QGVAR(unconsciousConditions)) then { GVAR(unconsciousConditions) = []; diff --git a/addons/medical/functions/fnc_addUnloadPatientActions.sqf b/addons/medical/functions/fnc_addUnloadPatientActions.sqf index 20399c67c1..bb73dab4e8 100644 --- a/addons/medical/functions/fnc_addUnloadPatientActions.sqf +++ b/addons/medical/functions/fnc_addUnloadPatientActions.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: esteldunedain * Create one unload action per unconscious passenger @@ -15,7 +16,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_vehicle", "_player", "_parameters"]; private _actions = []; diff --git a/addons/medical/functions/fnc_addVitalLoop.sqf b/addons/medical/functions/fnc_addVitalLoop.sqf index 4045c188f5..a1a01a5a61 100644 --- a/addons/medical/functions/fnc_addVitalLoop.sqf +++ b/addons/medical/functions/fnc_addVitalLoop.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Glowbal * Enabled the vitals loop for a unit. @@ -14,8 +15,6 @@ * Public: Yes */ -#include "script_component.hpp" - params ["_unit", ["_force", false]]; if !([_unit] call FUNC(hasMedicalEnabled) || _force) exitWith {}; diff --git a/addons/medical/functions/fnc_adjustPainLevel.sqf b/addons/medical/functions/fnc_adjustPainLevel.sqf index b935041faf..97bc9389a0 100644 --- a/addons/medical/functions/fnc_adjustPainLevel.sqf +++ b/addons/medical/functions/fnc_adjustPainLevel.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: PabstMirror * Interface to allow external modules to safely adjust pain levels. @@ -14,7 +15,6 @@ * * Public: Yes */ -#include "script_component.hpp" params ["_unit", "_addedPain"]; //Only run on local units: diff --git a/addons/medical/functions/fnc_bodyCleanupLoop.sqf b/addons/medical/functions/fnc_bodyCleanupLoop.sqf index 9f59f32a25..31d1ef8b92 100644 --- a/addons/medical/functions/fnc_bodyCleanupLoop.sqf +++ b/addons/medical/functions/fnc_bodyCleanupLoop.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Glowbal, esteldunedain * Loop that cleans up litter @@ -14,8 +15,6 @@ * Public: No */ -#include "script_component.hpp" - { TRACE_2("body",_x,isPlayer _x); if ((!isNull _x) && {!isPlayer _x}) then {deleteVehicle _x}; diff --git a/addons/medical/functions/fnc_canAccessMedicalEquipment.sqf b/addons/medical/functions/fnc_canAccessMedicalEquipment.sqf index d31c03db1d..d73a70f657 100644 --- a/addons/medical/functions/fnc_canAccessMedicalEquipment.sqf +++ b/addons/medical/functions/fnc_canAccessMedicalEquipment.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Glowbal * Check if caller can access targets medical equipment, based upon accessLevel. @@ -15,8 +16,6 @@ * Public: Yes */ -#include "script_component.hpp" - params ["_caller", "_target"]; private _accessLevel = _target getVariable [QGVAR(allowSharedEquipmentAccess), -1]; diff --git a/addons/medical/functions/fnc_canTreat.sqf b/addons/medical/functions/fnc_canTreat.sqf index 765df301c7..913cc4c30e 100644 --- a/addons/medical/functions/fnc_canTreat.sqf +++ b/addons/medical/functions/fnc_canTreat.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Glowbal * Check if the treatment action can be performed. @@ -17,8 +18,6 @@ * Public: Yes */ -#include "script_component.hpp" - params ["_caller", "_target", "_selectionName", "_className"]; if !(_target isKindOf "CAManBase") exitWith { false }; diff --git a/addons/medical/functions/fnc_canTreatCached.sqf b/addons/medical/functions/fnc_canTreatCached.sqf index dd7711936f..35fc3ada22 100644 --- a/addons/medical/functions/fnc_canTreatCached.sqf +++ b/addons/medical/functions/fnc_canTreatCached.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Glowbal * Cached Check if the treatment action can be performed. @@ -17,8 +18,6 @@ * Public: No */ -#include "script_component.hpp" - #define MAX_DURATION_CACHE 2 params ["", "_target", "_selection", "_classname"]; diff --git a/addons/medical/functions/fnc_copyDeadBody.sqf b/addons/medical/functions/fnc_copyDeadBody.sqf index 7bed7f39ec..56687988e4 100644 --- a/addons/medical/functions/fnc_copyDeadBody.sqf +++ b/addons/medical/functions/fnc_copyDeadBody.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Glowbal * Makes a copy of a dead body. For handling dead bodies for actions such as load and carry. @@ -15,8 +16,6 @@ * Public: No */ -#include "script_component.hpp" - params ["_oldBody", "_caller"]; if (alive _oldBody) exitWith {_oldBody}; // we only want to do this for dead bodies diff --git a/addons/medical/functions/fnc_createLitter.sqf b/addons/medical/functions/fnc_createLitter.sqf index 85e852d927..349f6252d9 100644 --- a/addons/medical/functions/fnc_createLitter.sqf +++ b/addons/medical/functions/fnc_createLitter.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Glowbal * Spawns litter for the treatment action on the ground around the target @@ -20,8 +21,6 @@ * Public: No */ -#include "script_component.hpp" - #define MIN_ENTRIES_LITTER_CONFIG 3 params ["_caller", "_target", "_selectionName", "_className", "", "_usersOfItems", "_bloodLossOnSelection"]; diff --git a/addons/medical/functions/fnc_determineIfFatal.sqf b/addons/medical/functions/fnc_determineIfFatal.sqf index 9d1940a80a..1cf30acc75 100644 --- a/addons/medical/functions/fnc_determineIfFatal.sqf +++ b/addons/medical/functions/fnc_determineIfFatal.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Glowbal * Determine If Fatal @@ -15,7 +16,6 @@ * * Public: No */ -#include "script_component.hpp" #define INCREASE_CHANCE_HEAD 0.05 #define INCREASE_CHANCE_TORSO 0.03 diff --git a/addons/medical/functions/fnc_displayPatientInformation.sqf b/addons/medical/functions/fnc_displayPatientInformation.sqf index fdc87da8b5..3058dd82bf 100644 --- a/addons/medical/functions/fnc_displayPatientInformation.sqf +++ b/addons/medical/functions/fnc_displayPatientInformation.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Glowbal * Displays the patient information for given unit. @@ -15,8 +16,6 @@ * * Public: No */ - -#include "script_component.hpp" #define MAX_DISTANCE 10 // Exit for basic medical diff --git a/addons/medical/functions/fnc_displayTriageCard.sqf b/addons/medical/functions/fnc_displayTriageCard.sqf index c273b1d0f0..1a84b98e87 100644 --- a/addons/medical/functions/fnc_displayTriageCard.sqf +++ b/addons/medical/functions/fnc_displayTriageCard.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Glowbal * Display triage card for a unit @@ -15,8 +16,6 @@ * Public: Yes */ -#include "script_component.hpp" - params ["_target", ["_show", true]]; GVAR(TriageCardTarget) = if (_show) then {_target} else {ObjNull}; diff --git a/addons/medical/functions/fnc_dropDownTriageCard.sqf b/addons/medical/functions/fnc_dropDownTriageCard.sqf index 3e52d3efc5..c409e39ac0 100644 --- a/addons/medical/functions/fnc_dropDownTriageCard.sqf +++ b/addons/medical/functions/fnc_dropDownTriageCard.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Glowbal * Display triage card for a unit @@ -14,8 +15,6 @@ * Public: Yes */ -#include "script_component.hpp" - params ["_show"]; disableSerialization; diff --git a/addons/medical/functions/fnc_getBloodLoss.sqf b/addons/medical/functions/fnc_getBloodLoss.sqf index e584b4cd0d..1caff24527 100644 --- a/addons/medical/functions/fnc_getBloodLoss.sqf +++ b/addons/medical/functions/fnc_getBloodLoss.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Glowbal * Calculate the total blood loss of a unit. @@ -14,8 +15,6 @@ * Public: No */ -#include "script_component.hpp" - #define BLOODLOSSRATE_BASIC 0.2 // TODO Only use this calculation if medium or higher, otherwise use vanilla calculations (for basic medical). diff --git a/addons/medical/functions/fnc_getBloodPressure.sqf b/addons/medical/functions/fnc_getBloodPressure.sqf index 076d42c286..7a582df5e1 100644 --- a/addons/medical/functions/fnc_getBloodPressure.sqf +++ b/addons/medical/functions/fnc_getBloodPressure.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Glowbal * Calculates the blood volume change and decreases the IVs given to the unit. @@ -15,8 +16,6 @@ * Public: No */ -#include "script_component.hpp" - // Value is taken because with cardic output and resistance at default values, it will put blood pressure High at 120. #define MODIFIER_BP_HIGH 0.229 diff --git a/addons/medical/functions/fnc_getBloodVolumeChange.sqf b/addons/medical/functions/fnc_getBloodVolumeChange.sqf index fcabcd53cf..32bcfb23ed 100644 --- a/addons/medical/functions/fnc_getBloodVolumeChange.sqf +++ b/addons/medical/functions/fnc_getBloodVolumeChange.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Glowbal * Calculates the blood volume change and decreases the IVs given to the unit. @@ -15,8 +16,6 @@ * Public: No */ -#include "script_component.hpp" - /* IV Change per second calculation: 250ml should take 60 seconds to fill. 250/60 = 4.166. diff --git a/addons/medical/functions/fnc_getCardiacOutput.sqf b/addons/medical/functions/fnc_getCardiacOutput.sqf index ef6e75cde4..9fcaad8731 100644 --- a/addons/medical/functions/fnc_getCardiacOutput.sqf +++ b/addons/medical/functions/fnc_getCardiacOutput.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Glowbal * Get the cardiac output from the Heart, based on current Heart Rate and Blood Volume. @@ -14,8 +15,6 @@ * Public: No */ -#include "script_component.hpp" - /* Cardiac output (Q or or CO ) is the volume of blood being pumped by the heart, in particular by a left or right ventricle in the CBA_missionTime interval of one minute. CO may be measured in many ways, for example dm3/min (1 dm3 equals 1 litre). diff --git a/addons/medical/functions/fnc_getHeartRateChange.sqf b/addons/medical/functions/fnc_getHeartRateChange.sqf index ac659622b8..dcd35ed476 100644 --- a/addons/medical/functions/fnc_getHeartRateChange.sqf +++ b/addons/medical/functions/fnc_getHeartRateChange.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Glowbal * Get the change in the heart rate. Used for the vitals calculations. Calculated in one seconds. @@ -14,8 +15,6 @@ * Public: No */ -#include "script_component.hpp" - #define HEART_RATE_MODIFIER 0.02 params ["_unit"]; diff --git a/addons/medical/functions/fnc_getTriageStatus.sqf b/addons/medical/functions/fnc_getTriageStatus.sqf index ac1ad4aa9a..2b502b563b 100644 --- a/addons/medical/functions/fnc_getTriageStatus.sqf +++ b/addons/medical/functions/fnc_getTriageStatus.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Glowbal * Get the triage status and information from a unit @@ -16,8 +17,6 @@ * Public: Yes */ -#include "script_component.hpp" - params ["_unit"]; private _status = _unit getVariable [QGVAR(triageLevel), -1]; diff --git a/addons/medical/functions/fnc_getTypeOfDamage.sqf b/addons/medical/functions/fnc_getTypeOfDamage.sqf index b026f41ded..c65f5d78e7 100644 --- a/addons/medical/functions/fnc_getTypeOfDamage.sqf +++ b/addons/medical/functions/fnc_getTypeOfDamage.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Glowbal * Get the type of damage based upon the projectile. @@ -14,8 +15,6 @@ * Public: No */ -#include "script_component.hpp" - params ["_typeOfProjectile"]; diff --git a/addons/medical/functions/fnc_getUnconsciousCondition.sqf b/addons/medical/functions/fnc_getUnconsciousCondition.sqf index f5cb4444bc..436365cc91 100644 --- a/addons/medical/functions/fnc_getUnconsciousCondition.sqf +++ b/addons/medical/functions/fnc_getUnconsciousCondition.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Glowbal * Get whatever or not a unit should be or stay unconscious. @@ -14,8 +15,6 @@ * Public: Yes */ -#include "script_component.hpp" - params ["_unit"]; if (isnil QGVAR(unconsciousConditions)) then { diff --git a/addons/medical/functions/fnc_handleBandageOpening.sqf b/addons/medical/functions/fnc_handleBandageOpening.sqf index 4884b43757..1e80a727df 100644 --- a/addons/medical/functions/fnc_handleBandageOpening.sqf +++ b/addons/medical/functions/fnc_handleBandageOpening.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Glowbal * Handles the bandage of a patient. @@ -19,8 +20,6 @@ * Public: No */ -#include "script_component.hpp" - params ["_target", "_impact", "_part", "_injuryIndex", "_injury", "_bandage"]; private _classID = _injury select 1; diff --git a/addons/medical/functions/fnc_handleCollisionDamage.sqf b/addons/medical/functions/fnc_handleCollisionDamage.sqf index e5b553bc15..aaaa3f894b 100644 --- a/addons/medical/functions/fnc_handleCollisionDamage.sqf +++ b/addons/medical/functions/fnc_handleCollisionDamage.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * @@ -15,8 +16,6 @@ * Public: No */ -#include "script_component.hpp" - params ["_unit", "_newDamage"]; private _selection = "body"; diff --git a/addons/medical/functions/fnc_handleCreateLitter.sqf b/addons/medical/functions/fnc_handleCreateLitter.sqf index 45ea452782..7a39fe767a 100644 --- a/addons/medical/functions/fnc_handleCreateLitter.sqf +++ b/addons/medical/functions/fnc_handleCreateLitter.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Glowbal * handle Litter Create @@ -15,7 +16,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_litterClass", "_position", "_direction"]; TRACE_3("params",_litterClass,_position,_direction); diff --git a/addons/medical/functions/fnc_handleDamage.sqf b/addons/medical/functions/fnc_handleDamage.sqf index 242b9a7997..ea4c5d9611 100644 --- a/addons/medical/functions/fnc_handleDamage.sqf +++ b/addons/medical/functions/fnc_handleDamage.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: KoffeinFlummi, Glowbal, commy2 * Main HandleDamage EH function. @@ -19,7 +20,6 @@ * * Public: No */ -#include "script_component.hpp" _this = _this select [0, 7]; params ["_unit", "_selection", "_damage", "_shooter", "_projectile", "_hitPointIndex"]; diff --git a/addons/medical/functions/fnc_handleDamage_advanced.sqf b/addons/medical/functions/fnc_handleDamage_advanced.sqf index 77d78b94dd..049b6a004c 100644 --- a/addons/medical/functions/fnc_handleDamage_advanced.sqf +++ b/addons/medical/functions/fnc_handleDamage_advanced.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Glowbal * Advanced HandleDamage EH function. @@ -21,8 +22,6 @@ * Public: No */ -#include "script_component.hpp" - params ["_unit", "_selectionName", "_amountOfDamage", "_sourceOfDamage", "_typeOfProjectile", "_hitPointNumber", "", "_newDamage"]; // For burning damage we will get a ton of very small hits of damage; they are too small to create any wounds diff --git a/addons/medical/functions/fnc_handleDamage_advancedSetDamage.sqf b/addons/medical/functions/fnc_handleDamage_advancedSetDamage.sqf index 561a929133..8bf6d8f8e0 100644 --- a/addons/medical/functions/fnc_handleDamage_advancedSetDamage.sqf +++ b/addons/medical/functions/fnc_handleDamage_advancedSetDamage.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Glowbal * Sets the hitpoint damage for au nit to the correct values @@ -14,8 +15,6 @@ * Public: No */ -#include "script_component.hpp" - params ["_unit"]; if (!local _unit) exitWith {}; diff --git a/addons/medical/functions/fnc_handleDamage_airway.sqf b/addons/medical/functions/fnc_handleDamage_airway.sqf index 7ff2610de3..6b033dee36 100644 --- a/addons/medical/functions/fnc_handleDamage_airway.sqf +++ b/addons/medical/functions/fnc_handleDamage_airway.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Glowbal * Handling of the airway injuries upon the handleDamage eventhandler. @@ -18,8 +19,6 @@ * Public: No */ -#include "script_component.hpp" - params ["_unit", "_selectionName", "_amountOfDamage", "_sourceOfDamage", "_typeOfDamage"]; private _bodyPartn = [_selectionName] call FUNC(selectionNameToNumber); diff --git a/addons/medical/functions/fnc_handleDamage_caching.sqf b/addons/medical/functions/fnc_handleDamage_caching.sqf index c9499361a4..6d17077a38 100644 --- a/addons/medical/functions/fnc_handleDamage_caching.sqf +++ b/addons/medical/functions/fnc_handleDamage_caching.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: KoffeinFlummi, Glowbal * Cache a handleDamage call to execute it 3 frames later @@ -18,7 +19,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_unit", "_selectionName", "_damage", "_source", "_projectile", "_hitPointIndex"]; diff --git a/addons/medical/functions/fnc_handleDamage_fractures.sqf b/addons/medical/functions/fnc_handleDamage_fractures.sqf index 546d6623ac..cc36b698c2 100644 --- a/addons/medical/functions/fnc_handleDamage_fractures.sqf +++ b/addons/medical/functions/fnc_handleDamage_fractures.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Glowbal * Handling of the fracture injuries upon the handleDamage eventhandler. @@ -18,8 +19,6 @@ * Public: No */ -#include "script_component.hpp" - params ["_unit", "_selectionName", "_amountOfDamage", "_sourceOfDamage", "_typeOfDamage"]; private _bodyPartn = [_selectionName] call FUNC(selectionNameToNumber); diff --git a/addons/medical/functions/fnc_handleDamage_internalInjuries.sqf b/addons/medical/functions/fnc_handleDamage_internalInjuries.sqf index 97499c53c6..6f96b138c2 100644 --- a/addons/medical/functions/fnc_handleDamage_internalInjuries.sqf +++ b/addons/medical/functions/fnc_handleDamage_internalInjuries.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Glowbal * Handling of the internal injuries upon the handleDamage eventhandler. @@ -18,8 +19,6 @@ * Public: No */ -#include "script_component.hpp" - params ["_unit", "_selectionName", "_amountOfDamage", "_sourceOfDamage", "_typeOfDamage"]; private _bodyPartn = [_selectionName] call FUNC(selectionNameToNumber); diff --git a/addons/medical/functions/fnc_handleDamage_wounds.sqf b/addons/medical/functions/fnc_handleDamage_wounds.sqf index 1ab223d14a..fdc06621c5 100644 --- a/addons/medical/functions/fnc_handleDamage_wounds.sqf +++ b/addons/medical/functions/fnc_handleDamage_wounds.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Glowbal * Handling of the open wounds & injuries upon the handleDamage eventhandler. @@ -18,8 +19,6 @@ * Public: No */ -#include "script_component.hpp" - params ["_unit", "_selectionName", "_damage", "_typeOfProjectile", "_typeOfDamage"]; TRACE_6("ACE_DEBUG: HandleDamage Called",_unit, _selectionName, _damage, _shooter, _typeOfProjectile,_typeOfDamage); diff --git a/addons/medical/functions/fnc_handleDamage_woundsOld.sqf b/addons/medical/functions/fnc_handleDamage_woundsOld.sqf index 376d50ff8c..4cc51ce38f 100644 --- a/addons/medical/functions/fnc_handleDamage_woundsOld.sqf +++ b/addons/medical/functions/fnc_handleDamage_woundsOld.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Glowbal * Handling of the open wounds & injuries upon the handleDamage eventhandler. @@ -18,8 +19,6 @@ * Public: No */ -#include "script_component.hpp" - params ["_unit", "_selectionName", "_damage", "_typeOfProjectile", "_typeOfDamage"]; TRACE_6("ACE_DEBUG: HandleDamage_WoundsOLD Called",_unit, _selectionName, _damage, _shooter, _typeOfProjectile,_typeOfDamage); diff --git a/addons/medical/functions/fnc_handleInit.sqf b/addons/medical/functions/fnc_handleInit.sqf index 7094219aae..3431713d5d 100644 --- a/addons/medical/functions/fnc_handleInit.sqf +++ b/addons/medical/functions/fnc_handleInit.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: KoffeinFlummi * Called when a unit is initialized via XEH_init @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_unit"]; diff --git a/addons/medical/functions/fnc_handleKilled.sqf b/addons/medical/functions/fnc_handleKilled.sqf index 52b79f8760..9a2e8d2f63 100644 --- a/addons/medical/functions/fnc_handleKilled.sqf +++ b/addons/medical/functions/fnc_handleKilled.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Glowbal * Called when a unit is killed @@ -14,8 +15,6 @@ * Public: No */ -#include "script_component.hpp" - params ["_unit"]; if (!local _unit) exitWith {}; diff --git a/addons/medical/functions/fnc_handleLocal.sqf b/addons/medical/functions/fnc_handleLocal.sqf index b9282ef9ee..06047f5545 100644 --- a/addons/medical/functions/fnc_handleLocal.sqf +++ b/addons/medical/functions/fnc_handleLocal.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Glowbal * Called when a unit switched locality @@ -15,9 +16,6 @@ * Public: No */ - -#include "script_component.hpp" - params ["_unit", "_local"]; if (_local) then { // If the unit had a loop tracking its vitals, restart it locally diff --git a/addons/medical/functions/fnc_handleRespawn.sqf b/addons/medical/functions/fnc_handleRespawn.sqf index 99efcaaac1..be8f5f4f29 100644 --- a/addons/medical/functions/fnc_handleRespawn.sqf +++ b/addons/medical/functions/fnc_handleRespawn.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: KoffeinFlummi * Called when a unit is Respawned @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_unit"]; diff --git a/addons/medical/functions/fnc_handleUnitVitals.sqf b/addons/medical/functions/fnc_handleUnitVitals.sqf index 3bb40dd134..a593c8e579 100644 --- a/addons/medical/functions/fnc_handleUnitVitals.sqf +++ b/addons/medical/functions/fnc_handleUnitVitals.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Glowbal * Updates the vitals. Is expected to be called every second. @@ -14,8 +15,6 @@ * Public: No */ -#include "script_component.hpp" - params ["_unit", "_interval"]; TRACE_3("ACE_DEBUG",_unit,_interval,_unit); if (_interval == 0) exitWith {}; diff --git a/addons/medical/functions/fnc_hasItem.sqf b/addons/medical/functions/fnc_hasItem.sqf index c1b84a940a..1174563dfc 100644 --- a/addons/medical/functions/fnc_hasItem.sqf +++ b/addons/medical/functions/fnc_hasItem.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Glowbal * Check if the item is present between the patient and the medic @@ -16,8 +17,6 @@ * Public: Yes */ -#include "script_component.hpp" - params ["_medic", "_patient", "_item"]; if (isNil QGVAR(setting_allowSharedEquipment)) then { diff --git a/addons/medical/functions/fnc_hasItems.sqf b/addons/medical/functions/fnc_hasItems.sqf index e251f22174..1ea0f15b65 100644 --- a/addons/medical/functions/fnc_hasItems.sqf +++ b/addons/medical/functions/fnc_hasItems.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Glowbal * Check if all items are present between the patient and the medic. @@ -16,8 +17,6 @@ * Public: Yes */ -#include "script_component.hpp" - params ["_medic", "_patient", "_items"]; private _return = true; diff --git a/addons/medical/functions/fnc_hasMedicalEnabled.sqf b/addons/medical/functions/fnc_hasMedicalEnabled.sqf index d6150e13a1..c034648c33 100644 --- a/addons/medical/functions/fnc_hasMedicalEnabled.sqf +++ b/addons/medical/functions/fnc_hasMedicalEnabled.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Glowbal * Check if unit has CMS enabled @@ -14,8 +15,6 @@ * Public: No */ -#include "script_component.hpp" - params ["_unit"]; private _medicalEnabled = _unit getVariable QGVAR(enableMedical); diff --git a/addons/medical/functions/fnc_hasTourniquetAppliedTo.sqf b/addons/medical/functions/fnc_hasTourniquetAppliedTo.sqf index ba4aecefa3..852bddfa12 100644 --- a/addons/medical/functions/fnc_hasTourniquetAppliedTo.sqf +++ b/addons/medical/functions/fnc_hasTourniquetAppliedTo.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Glowbal * Check if unit has a tourniquet applied to the specified bodypart @@ -15,8 +16,6 @@ * Public: Yes */ -#include "script_component.hpp" - params ["_target", "_selectionName"]; (((_target getVariable [QGVAR(tourniquets), [0,0,0,0,0,0]]) select ([_selectionName] call FUNC(selectionNameToNumber))) > 0); diff --git a/addons/medical/functions/fnc_init.sqf b/addons/medical/functions/fnc_init.sqf index f5f484106e..a9f164eb0f 100644 --- a/addons/medical/functions/fnc_init.sqf +++ b/addons/medical/functions/fnc_init.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: KoffeinFlummi, commy2 * Initializes unit variables. @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_unit"]; diff --git a/addons/medical/functions/fnc_isBeingCarried.sqf b/addons/medical/functions/fnc_isBeingCarried.sqf index 26ce932901..79a0f4ce9d 100644 --- a/addons/medical/functions/fnc_isBeingCarried.sqf +++ b/addons/medical/functions/fnc_isBeingCarried.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: PabstMirror * Returns if a target is being carried. (from ace_dragging) @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_target"]; diff --git a/addons/medical/functions/fnc_isBeingDragged.sqf b/addons/medical/functions/fnc_isBeingDragged.sqf index b0297c0049..e10ba60b8f 100644 --- a/addons/medical/functions/fnc_isBeingDragged.sqf +++ b/addons/medical/functions/fnc_isBeingDragged.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: PabstMirror * Returns if a target is being dragged. (from ace_dragging) @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_target"]; diff --git a/addons/medical/functions/fnc_isInMedicalFacility.sqf b/addons/medical/functions/fnc_isInMedicalFacility.sqf index 12e52ada19..9d12bd9640 100644 --- a/addons/medical/functions/fnc_isInMedicalFacility.sqf +++ b/addons/medical/functions/fnc_isInMedicalFacility.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Glowbal * Checks if a unit is in a designated medical facility @@ -13,7 +14,6 @@ * * Public: Yes */ -#include "script_component.hpp" params ["_unit"]; diff --git a/addons/medical/functions/fnc_isInMedicalVehicle.sqf b/addons/medical/functions/fnc_isInMedicalVehicle.sqf index 4182003bad..77b36caa25 100644 --- a/addons/medical/functions/fnc_isInMedicalVehicle.sqf +++ b/addons/medical/functions/fnc_isInMedicalVehicle.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: KoffeinFlummi * Checks if a unit is in a medical vehicle. @@ -13,7 +14,6 @@ * * Public: Yes */ -#include "script_component.hpp" params ["_unit"]; private _vehicle = vehicle _unit; diff --git a/addons/medical/functions/fnc_isInStableCondition.sqf b/addons/medical/functions/fnc_isInStableCondition.sqf index 078079e46e..da56ea402e 100644 --- a/addons/medical/functions/fnc_isInStableCondition.sqf +++ b/addons/medical/functions/fnc_isInStableCondition.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Glowbal * Check if a unit is in a stable condition @@ -14,8 +15,6 @@ * Public: No */ -#include "script_component.hpp" - params ["_unit"]; private _totalBloodLoss = 0; diff --git a/addons/medical/functions/fnc_isMedic.sqf b/addons/medical/functions/fnc_isMedic.sqf index f09fe88dbb..580733b4d5 100644 --- a/addons/medical/functions/fnc_isMedic.sqf +++ b/addons/medical/functions/fnc_isMedic.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Glowbal, KoffeinFlummi * Check if a unit is any medical class @@ -15,8 +16,6 @@ * Public: Yes */ -#include "script_component.hpp" - params ["_unit", ["_medicN", 1]]; private _class = _unit getVariable [QGVAR(medicClass), [0, 1] select (_unit getUnitTrait "medic")]; diff --git a/addons/medical/functions/fnc_isMedicalVehicle.sqf b/addons/medical/functions/fnc_isMedicalVehicle.sqf index 66ecf84a07..26f2bd6850 100644 --- a/addons/medical/functions/fnc_isMedicalVehicle.sqf +++ b/addons/medical/functions/fnc_isMedicalVehicle.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Glowbal * Check if vehicle is a medical vehicle @@ -14,8 +15,6 @@ * Public: Yes */ -#include "script_component.hpp" - params ["_vehicle"]; (_vehicle getVariable [QGVAR(medicClass), getNumber (configFile >> "CfgVehicles" >> typeOf _vehicle >> "attendant")]) > 0 diff --git a/addons/medical/functions/fnc_itemCheck.sqf b/addons/medical/functions/fnc_itemCheck.sqf index 6ab1e490c3..0290deeea8 100644 --- a/addons/medical/functions/fnc_itemCheck.sqf +++ b/addons/medical/functions/fnc_itemCheck.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: KoffeinFlummi * Replaces vanilla items with ACE ones. @@ -14,8 +15,6 @@ * Public: Yes */ -#include "script_component.hpp" - params ["_unit"]; while {({_x == "FirstAidKit"} count items _unit) > 0} do { diff --git a/addons/medical/functions/fnc_litterCleanupLoop.sqf b/addons/medical/functions/fnc_litterCleanupLoop.sqf index 6f546b47ed..539ca74e26 100644 --- a/addons/medical/functions/fnc_litterCleanupLoop.sqf +++ b/addons/medical/functions/fnc_litterCleanupLoop.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Glowbal, esteldunedain * Loop that cleans up litter @@ -14,8 +15,6 @@ * Public: No */ -#include "script_component.hpp" - { _x params ["_time", "_objects"]; //Older elements are always at the begining of the array: diff --git a/addons/medical/functions/fnc_medicationEffectLoop.sqf b/addons/medical/functions/fnc_medicationEffectLoop.sqf index c1690806fe..efef65ece9 100644 --- a/addons/medical/functions/fnc_medicationEffectLoop.sqf +++ b/addons/medical/functions/fnc_medicationEffectLoop.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Glowbal, esteldunedain * Medication effect loop for an injection. @@ -19,8 +20,6 @@ * Public: No */ -#include "script_component.hpp" - params ["_unit", "_variableName", "_amountDecreased","_decreaseRate", "_viscosityAdjustmentRate", "_painReduceRate"]; // If the unit died the loop is finished diff --git a/addons/medical/functions/fnc_modifyMedicalAction.sqf b/addons/medical/functions/fnc_modifyMedicalAction.sqf index 1da4ed20c0..16ea718d72 100644 --- a/addons/medical/functions/fnc_modifyMedicalAction.sqf +++ b/addons/medical/functions/fnc_modifyMedicalAction.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: esteldunedain * Modify the visuals of a medical action point. @@ -18,8 +19,6 @@ * Public: No */ -#include "script_component.hpp" - params ["_target", "_player", "_partNumber", "_actionData"]; private _bloodLossOnSelection = 0; diff --git a/addons/medical/functions/fnc_moduleAdvancedMedicalSettings.sqf b/addons/medical/functions/fnc_moduleAdvancedMedicalSettings.sqf index b884e8b82d..e19f670b3a 100644 --- a/addons/medical/functions/fnc_moduleAdvancedMedicalSettings.sqf +++ b/addons/medical/functions/fnc_moduleAdvancedMedicalSettings.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Glowbal * Module for adjusting the medical treatment settings @@ -16,8 +17,6 @@ * Public: No */ -#include "script_component.hpp" - params ["_logic", "_units", "_activated"]; if !(_activated) exitWith {}; diff --git a/addons/medical/functions/fnc_moduleAssignMedicRoles.sqf b/addons/medical/functions/fnc_moduleAssignMedicRoles.sqf index 51a4be7461..d65afdf7cb 100644 --- a/addons/medical/functions/fnc_moduleAssignMedicRoles.sqf +++ b/addons/medical/functions/fnc_moduleAssignMedicRoles.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Glowbal * Assign a medical role to a unit. @@ -15,7 +16,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_logic"]; diff --git a/addons/medical/functions/fnc_moduleAssignMedicalFacility.sqf b/addons/medical/functions/fnc_moduleAssignMedicalFacility.sqf index 61e140d0fd..a1b6303b45 100644 --- a/addons/medical/functions/fnc_moduleAssignMedicalFacility.sqf +++ b/addons/medical/functions/fnc_moduleAssignMedicalFacility.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Glowbal * Register synchronized objects from passed object as a medical facility @@ -16,8 +17,6 @@ * Public: No */ -#include "script_component.hpp" - params [["_logic", objNull, [objNull]]]; if (!isNull _logic) then { private _setting = _logic getVariable ["class",0]; diff --git a/addons/medical/functions/fnc_moduleAssignMedicalVehicle.sqf b/addons/medical/functions/fnc_moduleAssignMedicalVehicle.sqf index 4d7576f2c2..3eda8f0106 100644 --- a/addons/medical/functions/fnc_moduleAssignMedicalVehicle.sqf +++ b/addons/medical/functions/fnc_moduleAssignMedicalVehicle.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Glowbal * Assign vehicle as a medical vehicle. @@ -15,7 +16,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_logic"]; diff --git a/addons/medical/functions/fnc_moduleBasicMedicalSettings.sqf b/addons/medical/functions/fnc_moduleBasicMedicalSettings.sqf index c73d49458b..6d27cfe803 100644 --- a/addons/medical/functions/fnc_moduleBasicMedicalSettings.sqf +++ b/addons/medical/functions/fnc_moduleBasicMedicalSettings.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Glowbal * Module for adjusting the medical treatment settings @@ -16,8 +17,6 @@ * Public: No */ -#include "script_component.hpp" - params ["_logic", "_units", "_activated"]; if !(_activated) exitWith {}; diff --git a/addons/medical/functions/fnc_moduleMedicalSettings.sqf b/addons/medical/functions/fnc_moduleMedicalSettings.sqf index 148183ea22..a843d8c1c1 100644 --- a/addons/medical/functions/fnc_moduleMedicalSettings.sqf +++ b/addons/medical/functions/fnc_moduleMedicalSettings.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Glowbal * Module for adjusting the medical damage settings @@ -16,8 +17,6 @@ * Public: No */ -#include "script_component.hpp" - params ["_logic", "_units", "_activated"]; if !(_activated) exitWith {}; diff --git a/addons/medical/functions/fnc_moduleReviveSettings.sqf b/addons/medical/functions/fnc_moduleReviveSettings.sqf index de9e53820c..d7f54583cf 100644 --- a/addons/medical/functions/fnc_moduleReviveSettings.sqf +++ b/addons/medical/functions/fnc_moduleReviveSettings.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Glowbal * Module for adjusting the medical revive settings @@ -16,8 +17,6 @@ * Public: No */ -#include "script_component.hpp" - params ["_logic", "_units", "_activated"]; if !(_activated) exitWith {}; diff --git a/addons/medical/functions/fnc_onMedicationUsage.sqf b/addons/medical/functions/fnc_onMedicationUsage.sqf index 95e7d0bf5e..ee45d60a39 100644 --- a/addons/medical/functions/fnc_onMedicationUsage.sqf +++ b/addons/medical/functions/fnc_onMedicationUsage.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Glowbal * Handles the medication given to a patient. @@ -19,8 +20,6 @@ * Public: No */ -#include "script_component.hpp" - params ["_target", "_className", "_variable", "_maxDosage", "_timeInSystem", "_incompatabileMeds", "_viscosityChange", "_painReduce"]; TRACE_8("params",_target,_className,_variable,_maxDosage,_timeInSystem,_incompatabileMeds,_viscosityChange,_painReduce); diff --git a/addons/medical/functions/fnc_parseConfigForInjuries.sqf b/addons/medical/functions/fnc_parseConfigForInjuries.sqf index 07bd69fa52..c94a4f898f 100644 --- a/addons/medical/functions/fnc_parseConfigForInjuries.sqf +++ b/addons/medical/functions/fnc_parseConfigForInjuries.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Glowbal * Parse the ACE_Medical_Advanced config for all injury types. @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" private _injuriesRootConfig = (configFile >> "ACE_Medical_Advanced" >> "Injuries"); private _allFoundDamageTypes = []; diff --git a/addons/medical/functions/fnc_playInjuredSound.sqf b/addons/medical/functions/fnc_playInjuredSound.sqf index 629b600d49..6955886659 100644 --- a/addons/medical/functions/fnc_playInjuredSound.sqf +++ b/addons/medical/functions/fnc_playInjuredSound.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Glowbal * Play the injured sound for a unit if the unit is damaged. The sound broadcasted across MP. @@ -17,8 +18,6 @@ * Public: No */ -#include "script_component.hpp" - params ["_unit", "_pain"]; if (!local _unit || !GVAR(enableScreams)) exitWith{}; diff --git a/addons/medical/functions/fnc_reviveStateLoop.sqf b/addons/medical/functions/fnc_reviveStateLoop.sqf index 0ec5f78c85..7e662bdbb1 100644 --- a/addons/medical/functions/fnc_reviveStateLoop.sqf +++ b/addons/medical/functions/fnc_reviveStateLoop.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Glowbal, esteldunedain * Loop that handles a unit in the revive state. @@ -14,8 +15,6 @@ * Public: No */ -#include "script_component.hpp" - params ["_unit"]; // If locality changed finish the local loop diff --git a/addons/medical/functions/fnc_selectionNameToNumber.sqf b/addons/medical/functions/fnc_selectionNameToNumber.sqf index 441f4bb31e..c5c0ceb2ed 100644 --- a/addons/medical/functions/fnc_selectionNameToNumber.sqf +++ b/addons/medical/functions/fnc_selectionNameToNumber.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Glowbal * Get the number representation of a selection name. @@ -14,6 +15,4 @@ * Public: yes */ -#include "script_component.hpp" - (["head","body","hand_l","hand_r","leg_l","leg_r"] find (_this select 0)); diff --git a/addons/medical/functions/fnc_serverRemoveBody.sqf b/addons/medical/functions/fnc_serverRemoveBody.sqf index 3c1bfe90a1..3b85fb06a3 100644 --- a/addons/medical/functions/fnc_serverRemoveBody.sqf +++ b/addons/medical/functions/fnc_serverRemoveBody.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: PabstMirror * Removes corpse. Idealy it is just deleted the next frame, @@ -15,8 +16,6 @@ * Public: No */ -#include "script_component.hpp" - params ["_target"]; TRACE_2("",_target,isPlayer _target); diff --git a/addons/medical/functions/fnc_setCardiacArrest.sqf b/addons/medical/functions/fnc_setCardiacArrest.sqf index 5b97b3d50b..a8676c7342 100644 --- a/addons/medical/functions/fnc_setCardiacArrest.sqf +++ b/addons/medical/functions/fnc_setCardiacArrest.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Glowbal * Triggers a unit into the Cardiac Arrest state from CMS. Will put the unit in an unconscious state and run a countdown timer until unit dies. @@ -15,8 +16,6 @@ * Public: yes */ -#include "script_component.hpp" - params ["_unit"]; if (_unit getVariable [QGVAR(inCardiacArrest),false]) exitWith {}; diff --git a/addons/medical/functions/fnc_setDead.sqf b/addons/medical/functions/fnc_setDead.sqf index 3949f2cfd9..ce15a0b548 100644 --- a/addons/medical/functions/fnc_setDead.sqf +++ b/addons/medical/functions/fnc_setDead.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Glowbal * Either kills a unit or puts the unit in a revivable state, depending on the settings. @@ -16,8 +17,6 @@ * Public: yes */ -#include "script_component.hpp" - params ["_unit", ["_force", false], ["_delaySetDamage", false]]; if ((!alive _unit) || {_unit getVariable ["ACE_isDead", false]}) exitWith {true}; diff --git a/addons/medical/functions/fnc_setHitPointDamage.sqf b/addons/medical/functions/fnc_setHitPointDamage.sqf index eb93b6740e..c68feb83c8 100644 --- a/addons/medical/functions/fnc_setHitPointDamage.sqf +++ b/addons/medical/functions/fnc_setHitPointDamage.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: KoffeinFlummi * My very own setHitPointDamage since BIS' one is buggy when affecting a remote unit. @@ -17,8 +18,6 @@ * * Public: Yes */ - -#include "script_component.hpp" #define LEGDAMAGETRESHOLD1 1 #define LEGDAMAGETRESHOLD2 1.7 #define ARMDAMAGETRESHOLD1 1 diff --git a/addons/medical/functions/fnc_setUnconscious.sqf b/addons/medical/functions/fnc_setUnconscious.sqf index 61d831f533..93aaef2356 100644 --- a/addons/medical/functions/fnc_setUnconscious.sqf +++ b/addons/medical/functions/fnc_setUnconscious.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Glowbal * Sets a unit in the unconscious state. @@ -17,8 +18,6 @@ * Public: yes */ -#include "script_component.hpp" - #define DEFAULT_DELAY (round(random(10)+5)) // only run this after the settings are initialized diff --git a/addons/medical/functions/fnc_showBloodEffect.sqf b/addons/medical/functions/fnc_showBloodEffect.sqf index 61cd6fe464..47abf0536c 100644 --- a/addons/medical/functions/fnc_showBloodEffect.sqf +++ b/addons/medical/functions/fnc_showBloodEffect.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: KoffeinFlummi, Glowbal * Does the blood screen effect, just like BIS_fnc_bloodeffect, but in non-sheduled environment. @@ -13,7 +14,6 @@ * * Public: Yes */ -#include "script_component.hpp" params ["_bloodRemaining"]; diff --git a/addons/medical/functions/fnc_translateSelections.sqf b/addons/medical/functions/fnc_translateSelections.sqf index e6624507d1..3990429e91 100644 --- a/addons/medical/functions/fnc_translateSelections.sqf +++ b/addons/medical/functions/fnc_translateSelections.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Glowbal * Translate selection names into medical usable hit selection names. @@ -20,7 +21,6 @@ * * Public: No */ -#include "script_component.hpp" #define HEAD_SELECTIONS ["face_hub", "neck", "head"] #define HEAD_HITPOINTS ["hitface", "hitneck", "hithead"] diff --git a/addons/medical/functions/fnc_treatment.sqf b/addons/medical/functions/fnc_treatment.sqf index 80f097fee4..0ed4694c2f 100644 --- a/addons/medical/functions/fnc_treatment.sqf +++ b/addons/medical/functions/fnc_treatment.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Glowbal, KoffeinFlummi * Starts the treatment process @@ -17,8 +18,6 @@ * Public: Yes */ -#include "script_component.hpp" - params ["_caller", "_target", "_selectionName", "_className"]; // If the cursorMenu is open, the loading bar will fail. If we execute the function one frame later, it will work fine diff --git a/addons/medical/functions/fnc_treatmentAdvanced_CPR.sqf b/addons/medical/functions/fnc_treatmentAdvanced_CPR.sqf index aedcffdb49..5c673c080a 100644 --- a/addons/medical/functions/fnc_treatmentAdvanced_CPR.sqf +++ b/addons/medical/functions/fnc_treatmentAdvanced_CPR.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Glowbal * Callback for the CPR treatment action on success. @@ -17,8 +18,6 @@ * Public: Yes */ -#include "script_component.hpp" - params ["_caller", "_target", "_selectionName", "_className", "_items"]; if (alive _target && {(_target getVariable [QGVAR(inCardiacArrest), false] || _target getVariable [QGVAR(inReviveState), false])}) then { diff --git a/addons/medical/functions/fnc_treatmentAdvanced_CPRLocal.sqf b/addons/medical/functions/fnc_treatmentAdvanced_CPRLocal.sqf index a893feedef..9659ee7481 100644 --- a/addons/medical/functions/fnc_treatmentAdvanced_CPRLocal.sqf +++ b/addons/medical/functions/fnc_treatmentAdvanced_CPRLocal.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Glowbal * local Callback for the CPR treatment action on success. @@ -15,8 +16,6 @@ * Public: Yes */ -#include "script_component.hpp" - params ["_caller","_target"]; if (_target getVariable [QGVAR(inReviveState), false]) then { diff --git a/addons/medical/functions/fnc_treatmentAdvanced_bandage.sqf b/addons/medical/functions/fnc_treatmentAdvanced_bandage.sqf index 0dd9742c08..9cb4ac423b 100644 --- a/addons/medical/functions/fnc_treatmentAdvanced_bandage.sqf +++ b/addons/medical/functions/fnc_treatmentAdvanced_bandage.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Glowbal * IV Treatment callback @@ -19,8 +20,6 @@ * Public: Yes */ -#include "script_component.hpp" - params ["_caller", "_target", "_selectionName", "_className", "_items", "", ["_specificSpot", -1]]; [_target, "activity", LSTRING(Activity_bandagedPatient), [[_caller, false, true] call EFUNC(common,getName)]] call FUNC(addToLog); diff --git a/addons/medical/functions/fnc_treatmentAdvanced_bandageLocal.sqf b/addons/medical/functions/fnc_treatmentAdvanced_bandageLocal.sqf index c581d4ddbe..ba94eb2d01 100644 --- a/addons/medical/functions/fnc_treatmentAdvanced_bandageLocal.sqf +++ b/addons/medical/functions/fnc_treatmentAdvanced_bandageLocal.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Glowbal * Handles the bandage of a patient. @@ -16,8 +17,6 @@ * Public: No */ -#include "script_component.hpp" - params ["_target", "_bandage", "_selectionName", ["_specificClass", -1]]; // Ensure it is a valid bodypart diff --git a/addons/medical/functions/fnc_treatmentAdvanced_fullHeal.sqf b/addons/medical/functions/fnc_treatmentAdvanced_fullHeal.sqf index 5b20863338..d5c6427aa8 100644 --- a/addons/medical/functions/fnc_treatmentAdvanced_fullHeal.sqf +++ b/addons/medical/functions/fnc_treatmentAdvanced_fullHeal.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Glowbal * @@ -18,8 +19,6 @@ * Public: No */ -#include "script_component.hpp" - params ["_caller", "_target", "_selectionName", "_className", "_items"]; if (local _target) then { diff --git a/addons/medical/functions/fnc_treatmentAdvanced_fullHealLocal.sqf b/addons/medical/functions/fnc_treatmentAdvanced_fullHealLocal.sqf index bd31e58ba9..d2435e0ee0 100644 --- a/addons/medical/functions/fnc_treatmentAdvanced_fullHealLocal.sqf +++ b/addons/medical/functions/fnc_treatmentAdvanced_fullHealLocal.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Glowbal * @@ -15,8 +16,6 @@ * Public: No */ -#include "script_component.hpp" - params ["_caller", "_target"]; if (alive _target) exitWith { diff --git a/addons/medical/functions/fnc_treatmentAdvanced_fullHealTreatmentTime.sqf b/addons/medical/functions/fnc_treatmentAdvanced_fullHealTreatmentTime.sqf index b2b222e601..35c9c5133f 100644 --- a/addons/medical/functions/fnc_treatmentAdvanced_fullHealTreatmentTime.sqf +++ b/addons/medical/functions/fnc_treatmentAdvanced_fullHealTreatmentTime.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Ruthberg * Calculates the personal aid kit treatment time based on amount of damage to heal @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" private _totalDamage = 0; diff --git a/addons/medical/functions/fnc_treatmentAdvanced_medication.sqf b/addons/medical/functions/fnc_treatmentAdvanced_medication.sqf index a58ded3de3..b48e2bb2da 100644 --- a/addons/medical/functions/fnc_treatmentAdvanced_medication.sqf +++ b/addons/medical/functions/fnc_treatmentAdvanced_medication.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Glowbal * IV Treatment callback @@ -18,8 +19,6 @@ * Public: Yes */ -#include "script_component.hpp" - params ["_caller", "_target", "_selectionName", "_className", "_items"]; TRACE_5("params",_caller,_target,_selectionName,_className,_items); diff --git a/addons/medical/functions/fnc_treatmentAdvanced_medicationLocal.sqf b/addons/medical/functions/fnc_treatmentAdvanced_medicationLocal.sqf index 32b7e9d2c1..4435ae4f48 100644 --- a/addons/medical/functions/fnc_treatmentAdvanced_medicationLocal.sqf +++ b/addons/medical/functions/fnc_treatmentAdvanced_medicationLocal.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Glowbal * Handles the medication given to a patient. @@ -16,8 +17,6 @@ * Public: Yes */ -#include "script_component.hpp" - params ["_target", "_className", "_partNumber"]; TRACE_3("params",_target,_className,_partNumber); diff --git a/addons/medical/functions/fnc_treatmentAdvanced_surgicalKit_onProgress.sqf b/addons/medical/functions/fnc_treatmentAdvanced_surgicalKit_onProgress.sqf index a73661ac77..7f7cb481aa 100644 --- a/addons/medical/functions/fnc_treatmentAdvanced_surgicalKit_onProgress.sqf +++ b/addons/medical/functions/fnc_treatmentAdvanced_surgicalKit_onProgress.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: BaerMitUmlaut * Handles treatment via surgical kit per frame @@ -17,7 +18,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_args", "_elapsedTime", "_totalTime"]; _args params ["_caller", "_target"]; diff --git a/addons/medical/functions/fnc_treatmentBasic_bloodbag.sqf b/addons/medical/functions/fnc_treatmentBasic_bloodbag.sqf index 5ef368922d..297e5a5e43 100644 --- a/addons/medical/functions/fnc_treatmentBasic_bloodbag.sqf +++ b/addons/medical/functions/fnc_treatmentBasic_bloodbag.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: KoffeinFlummi * Callback when the bloodbag treatment is complete @@ -17,8 +18,6 @@ * Public: No */ -#include "script_component.hpp" - params ["_caller", "_target", "_treatmentClassname"]; if (local _target) then { diff --git a/addons/medical/functions/fnc_treatmentBasic_bloodbagLocal.sqf b/addons/medical/functions/fnc_treatmentBasic_bloodbagLocal.sqf index 1e56eb3d88..91626095b5 100644 --- a/addons/medical/functions/fnc_treatmentBasic_bloodbagLocal.sqf +++ b/addons/medical/functions/fnc_treatmentBasic_bloodbagLocal.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: KoffeinFlummi * Local callback when the bloodbag treatment is complete @@ -14,8 +15,6 @@ * * Public: No */ - -#include "script_component.hpp" #define BLOODBAGHEAL 70 params ["_target", "_treatmentClassname"]; diff --git a/addons/medical/functions/fnc_treatmentBasic_epipen.sqf b/addons/medical/functions/fnc_treatmentBasic_epipen.sqf index 161626bb41..4e67cfe697 100644 --- a/addons/medical/functions/fnc_treatmentBasic_epipen.sqf +++ b/addons/medical/functions/fnc_treatmentBasic_epipen.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: KoffeinFlummi * Callback when the epipen treatment is complete @@ -16,7 +17,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_caller", "_target","_className"]; diff --git a/addons/medical/functions/fnc_treatmentBasic_morphine.sqf b/addons/medical/functions/fnc_treatmentBasic_morphine.sqf index f011ab41a2..dbfbecab7f 100644 --- a/addons/medical/functions/fnc_treatmentBasic_morphine.sqf +++ b/addons/medical/functions/fnc_treatmentBasic_morphine.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: KoffeinFlummi * Callback when the morphine treatment is complete @@ -16,8 +17,6 @@ * * Public: No */ - -#include "script_component.hpp" #define MORPHINEHEAL 0.4 params ["_caller", "_target"]; diff --git a/addons/medical/functions/fnc_treatmentBasic_morphineLocal.sqf b/addons/medical/functions/fnc_treatmentBasic_morphineLocal.sqf index f24719d352..2a2c4358d5 100644 --- a/addons/medical/functions/fnc_treatmentBasic_morphineLocal.sqf +++ b/addons/medical/functions/fnc_treatmentBasic_morphineLocal.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: KoffeinFlummi * Local callback when the morphine treatment is complete @@ -14,8 +15,6 @@ * * Public: No */ - -#include "script_component.hpp" #define MORPHINEHEAL 0.4 params ["_target"]; diff --git a/addons/medical/functions/fnc_treatmentIV.sqf b/addons/medical/functions/fnc_treatmentIV.sqf index a393acbb13..8da7a3bcf6 100644 --- a/addons/medical/functions/fnc_treatmentIV.sqf +++ b/addons/medical/functions/fnc_treatmentIV.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Glowbal * Patient IV Treatment callback @@ -17,8 +18,6 @@ * Public: Yes */ -#include "script_component.hpp" - params ["_caller", "_target", "_selectionName", "_className", "_items"]; if (_items isEqualTo []) exitWith {false}; diff --git a/addons/medical/functions/fnc_treatmentIVLocal.sqf b/addons/medical/functions/fnc_treatmentIVLocal.sqf index 63d8292b0f..1f59edbc35 100644 --- a/addons/medical/functions/fnc_treatmentIVLocal.sqf +++ b/addons/medical/functions/fnc_treatmentIVLocal.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Glowbal * IV Treatment local callback @@ -16,8 +17,6 @@ * Public: Yes */ -#include "script_component.hpp" - params ["_target", "_treatmentClassname"]; private _bloodVolume = _target getVariable [QGVAR(bloodVolume), 100]; diff --git a/addons/medical/functions/fnc_treatmentTourniquet.sqf b/addons/medical/functions/fnc_treatmentTourniquet.sqf index cb7e6d21d0..23de5f177a 100644 --- a/addons/medical/functions/fnc_treatmentTourniquet.sqf +++ b/addons/medical/functions/fnc_treatmentTourniquet.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Glowbal * Apply a tourniquet to the patient @@ -18,8 +19,6 @@ * Public: No */ -#include "script_component.hpp" - params ["_caller", "_target", "_selectionName", "_className", "_items"]; if (count _items == 0) exitWith {false}; diff --git a/addons/medical/functions/fnc_treatmentTourniquetLocal.sqf b/addons/medical/functions/fnc_treatmentTourniquetLocal.sqf index e7e9ff7ca1..dc05d6ce5f 100644 --- a/addons/medical/functions/fnc_treatmentTourniquetLocal.sqf +++ b/addons/medical/functions/fnc_treatmentTourniquetLocal.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Glowbal * Apply a tourniquet to the patient, local callback. @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_target", "_tourniquetItem", "_selectionName"]; diff --git a/addons/medical/functions/fnc_treatment_failure.sqf b/addons/medical/functions/fnc_treatment_failure.sqf index fbd69dde5b..02d3153271 100644 --- a/addons/medical/functions/fnc_treatment_failure.sqf +++ b/addons/medical/functions/fnc_treatment_failure.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: KoffeinFlummi, Glowbal * Callback when the treatment fails @@ -18,8 +19,6 @@ * Public: No */ -#include "script_component.hpp" - params ["_args"]; _args params ["_caller", "_target", "_selectionName", "_className", "_items", "_usersOfItems"]; diff --git a/addons/medical/functions/fnc_treatment_success.sqf b/addons/medical/functions/fnc_treatment_success.sqf index 37b5f8a51d..17c9de62ba 100644 --- a/addons/medical/functions/fnc_treatment_success.sqf +++ b/addons/medical/functions/fnc_treatment_success.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: KoffeinFlummi, Glowbal * Callback when the treatment is completed @@ -18,8 +19,6 @@ * Public: No */ -#include "script_component.hpp" - params ["_args"]; _args params ["_caller", "_target", "_selectionName", "_className", "_items", "_usersOfItems"]; diff --git a/addons/medical/functions/fnc_unconsciousPFH.sqf b/addons/medical/functions/fnc_unconsciousPFH.sqf index d63e78db61..31f4d60d4b 100644 --- a/addons/medical/functions/fnc_unconsciousPFH.sqf +++ b/addons/medical/functions/fnc_unconsciousPFH.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Glowbal * PFH logic for unconscious state @@ -21,8 +22,6 @@ * Public: yes */ -#include "script_component.hpp" - params ["_args", "_idPFH"]; _args params ["_unit", "_originalPos", "_startingTime", "_minWaitingTime", "_hasMovedOut", "_parachuteCheck"]; diff --git a/addons/medical/functions/fnc_useItem.sqf b/addons/medical/functions/fnc_useItem.sqf index ec032a279f..49efceac05 100644 --- a/addons/medical/functions/fnc_useItem.sqf +++ b/addons/medical/functions/fnc_useItem.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Glowbal * Use Equipment if any is available. Priority: 1) Medic, 2) Patient. If in vehicle: 3) Crew @@ -17,8 +18,6 @@ * Public: Yes */ -#include "script_component.hpp" - params ["_medic", "_patient", "_item"]; if (isNil QGVAR(setting_allowSharedEquipment)) then { diff --git a/addons/medical/functions/fnc_useItems.sqf b/addons/medical/functions/fnc_useItems.sqf index f898ea72f5..ef3dc78ab3 100644 --- a/addons/medical/functions/fnc_useItems.sqf +++ b/addons/medical/functions/fnc_useItems.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Glowbal * Use Equipment items if any is available. Priority: 1) Medic, 2) Patient. If in vehicle: 3) Crew @@ -16,8 +17,6 @@ * Public: Yes */ -#include "script_component.hpp" - params ["_medic", "_patient", "_items"]; private _itemsUsedBy = []; diff --git a/addons/medical/functions/fnc_vitalLoop.sqf b/addons/medical/functions/fnc_vitalLoop.sqf index a9efa81719..44cd1e4d17 100644 --- a/addons/medical/functions/fnc_vitalLoop.sqf +++ b/addons/medical/functions/fnc_vitalLoop.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Glowbal, esteldunedain * Vital loop for a unit. @@ -15,8 +16,6 @@ * Public: No */ -#include "script_component.hpp" - params ["_unit", "_lastTime"]; // If the unit died the loop is finished diff --git a/addons/medical_ai/functions/fnc_canRequestMedic.sqf b/addons/medical_ai/functions/fnc_canRequestMedic.sqf index 39a5063f24..ab03042899 100644 --- a/addons/medical_ai/functions/fnc_canRequestMedic.sqf +++ b/addons/medical_ai/functions/fnc_canRequestMedic.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: BaerMitUmlaut * Checks if there is a medic available in the unit's group. @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" // Note: Although an unconscious unit cannot call for a medic itself, // we ignore this here. We need to "notice" the medic that he should diff --git a/addons/medical_ai/functions/fnc_healSelf.sqf b/addons/medical_ai/functions/fnc_healSelf.sqf index 253dcd2a45..6cb0c3257f 100644 --- a/addons/medical_ai/functions/fnc_healSelf.sqf +++ b/addons/medical_ai/functions/fnc_healSelf.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: BaerMitUmlaut * Makes the unit heal itself. @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" // Player will have to do this manually of course if ([_this] call EFUNC(common,isPlayer)) exitWith {}; diff --git a/addons/medical_ai/functions/fnc_healUnit.sqf b/addons/medical_ai/functions/fnc_healUnit.sqf index 78471469da..2d9116be4f 100644 --- a/addons/medical_ai/functions/fnc_healUnit.sqf +++ b/addons/medical_ai/functions/fnc_healUnit.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: BaerMitUmlaut * Makes a medic heal the next unit that needs treatment. @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" // Can't heal other units when unconscious if (_this getVariable ["ACE_isUnconscious", false]) exitWith {}; diff --git a/addons/medical_ai/functions/fnc_isInjured.sqf b/addons/medical_ai/functions/fnc_isInjured.sqf index e91802f912..8cbe280914 100644 --- a/addons/medical_ai/functions/fnc_isInjured.sqf +++ b/addons/medical_ai/functions/fnc_isInjured.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: BaerMitUmlaut * Checks if a unit needs treatment. @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" if !(alive _this) exitWith {false}; diff --git a/addons/medical_ai/functions/fnc_isSafe.sqf b/addons/medical_ai/functions/fnc_isSafe.sqf index de7d9667cc..b18adbdc1c 100644 --- a/addons/medical_ai/functions/fnc_isSafe.sqf +++ b/addons/medical_ai/functions/fnc_isSafe.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: BaerMitUmlaut * Checks if a unit is currently considered safe enough to treat itself. @@ -13,6 +14,5 @@ * * Public: No */ -#include "script_component.hpp" (getSuppression _this == 0) && {CBA_missionTime - (_this getVariable [QGVAR(lastFired), -30]) > 30} diff --git a/addons/medical_ai/functions/fnc_playTreatmentAnim.sqf b/addons/medical_ai/functions/fnc_playTreatmentAnim.sqf index de2c0ee30e..92d5460daf 100644 --- a/addons/medical_ai/functions/fnc_playTreatmentAnim.sqf +++ b/addons/medical_ai/functions/fnc_playTreatmentAnim.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: BaerMitUmlaut * Plays the corresponding treatment animation. @@ -15,7 +16,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_unit", "_isBandage", "_isSelfTreatment"]; if (vehicle _unit != _unit) exitWith {}; diff --git a/addons/medical_ai/functions/fnc_requestMedic.sqf b/addons/medical_ai/functions/fnc_requestMedic.sqf index 6bb3229e9a..450911c801 100644 --- a/addons/medical_ai/functions/fnc_requestMedic.sqf +++ b/addons/medical_ai/functions/fnc_requestMedic.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: BaerMitUmlaut * Sends a request to the units assigned medic to heal it. @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" private _assignedMedic = _this getVariable QGVAR(assignedMedic); private _healQueue = _assignedMedic getVariable [QGVAR(healQueue), []]; diff --git a/addons/medical_ai/functions/fnc_wasRequested.sqf b/addons/medical_ai/functions/fnc_wasRequested.sqf index c340ff7b9e..479dc0c880 100644 --- a/addons/medical_ai/functions/fnc_wasRequested.sqf +++ b/addons/medical_ai/functions/fnc_wasRequested.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: BaerMitUmlaut * Checks if the unit was requested to treat another unit. @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" private _healQueue = _this getVariable [QGVAR(healQueue), []]; !(_healQueue isEqualTo []) diff --git a/addons/medical_blood/functions/fnc_createBlood.sqf b/addons/medical_blood/functions/fnc_createBlood.sqf index 88d35ca7a6..8d3fbc8776 100644 --- a/addons/medical_blood/functions/fnc_createBlood.sqf +++ b/addons/medical_blood/functions/fnc_createBlood.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Glowbal * Spawn a blood drop. @@ -16,8 +17,6 @@ * Public: No */ -#include "script_component.hpp" - params ["_type", "_pos"]; TRACE_2("creating blood",_type,_pos); diff --git a/addons/medical_blood/functions/fnc_hit.sqf b/addons/medical_blood/functions/fnc_hit.sqf index 3c0251a437..17df627f1f 100644 --- a/addons/medical_blood/functions/fnc_hit.sqf +++ b/addons/medical_blood/functions/fnc_hit.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Glowbal * Handle unit hit eventhandler @@ -15,7 +16,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_unit", "_causedBy", "_damage"]; diff --git a/addons/medical_blood/functions/fnc_isBleeding.sqf b/addons/medical_blood/functions/fnc_isBleeding.sqf index 57f68c7c8d..73e5c10e6f 100644 --- a/addons/medical_blood/functions/fnc_isBleeding.sqf +++ b/addons/medical_blood/functions/fnc_isBleeding.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Glowbal * Check if is bleeding @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_unit"]; diff --git a/addons/medical_blood/functions/fnc_onBleeding.sqf b/addons/medical_blood/functions/fnc_onBleeding.sqf index 4357bc382a..e21f68f02f 100644 --- a/addons/medical_blood/functions/fnc_onBleeding.sqf +++ b/addons/medical_blood/functions/fnc_onBleeding.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Glowbal * handle bleeding state (state machine) @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_unit"]; diff --git a/addons/medical_blood/functions/fnc_spurt.sqf b/addons/medical_blood/functions/fnc_spurt.sqf index aaaa75894e..6f1dbaaa1d 100644 --- a/addons/medical_blood/functions/fnc_spurt.sqf +++ b/addons/medical_blood/functions/fnc_spurt.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Sickboy * Spurt blood on the ground @@ -16,8 +17,6 @@ * Public: No */ -#include "script_component.hpp" - #define MAXIMUM_DROPS 4 #define DISTANCE_BETWEEN_DROPS 0.20 #define OFFSET 0.25 diff --git a/addons/medical_menu/functions/fnc_canOpenMenu.sqf b/addons/medical_menu/functions/fnc_canOpenMenu.sqf index 1ef7dccf5b..f69cf80d12 100644 --- a/addons/medical_menu/functions/fnc_canOpenMenu.sqf +++ b/addons/medical_menu/functions/fnc_canOpenMenu.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Glowbal * Check if ACE_player can Open the medical menu @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_caller", "_target"]; diff --git a/addons/medical_menu/functions/fnc_collectActions.sqf b/addons/medical_menu/functions/fnc_collectActions.sqf index af6742188e..5353582fb2 100644 --- a/addons/medical_menu/functions/fnc_collectActions.sqf +++ b/addons/medical_menu/functions/fnc_collectActions.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Glowbal * Collect treatment actions from medical config @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" private _configBasic = (configFile >> "ACE_Medical_Actions" >> "Basic"); private _configAdvanced = (configFile >> "ACE_Medical_Actions" >> "Advanced"); diff --git a/addons/medical_menu/functions/fnc_getTreatmentOptions.sqf b/addons/medical_menu/functions/fnc_getTreatmentOptions.sqf index 293eb07836..eac639c4d5 100644 --- a/addons/medical_menu/functions/fnc_getTreatmentOptions.sqf +++ b/addons/medical_menu/functions/fnc_getTreatmentOptions.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Glowbal * Grab available treatment options for given category @@ -15,7 +16,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_player", "_target", "_name"]; diff --git a/addons/medical_menu/functions/fnc_handleUI_DisplayOptions.sqf b/addons/medical_menu/functions/fnc_handleUI_DisplayOptions.sqf index 4cb8f4ceab..55de1339d0 100644 --- a/addons/medical_menu/functions/fnc_handleUI_DisplayOptions.sqf +++ b/addons/medical_menu/functions/fnc_handleUI_DisplayOptions.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Glowbal * Display the available treatment options in category @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" #define START_IDC 20 #define END_IDC 27 diff --git a/addons/medical_menu/functions/fnc_handleUI_dropDownTriageCard.sqf b/addons/medical_menu/functions/fnc_handleUI_dropDownTriageCard.sqf index 946ee2d0ef..988022d7a6 100644 --- a/addons/medical_menu/functions/fnc_handleUI_dropDownTriageCard.sqf +++ b/addons/medical_menu/functions/fnc_handleUI_dropDownTriageCard.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Glowbal * Handle the triage card display @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" disableSerialization; diff --git a/addons/medical_menu/functions/fnc_module.sqf b/addons/medical_menu/functions/fnc_module.sqf index f056082743..bdb6f33086 100644 --- a/addons/medical_menu/functions/fnc_module.sqf +++ b/addons/medical_menu/functions/fnc_module.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Glowbal * Module for adjusting the medical menu settings @@ -16,8 +17,6 @@ * Public: No */ -#include "script_component.hpp" - params ["_logic", "", "_activated"]; if !(_activated) exitWith {}; diff --git a/addons/medical_menu/functions/fnc_onMenuClose.sqf b/addons/medical_menu/functions/fnc_onMenuClose.sqf index 656336eb4e..f6318263dd 100644 --- a/addons/medical_menu/functions/fnc_onMenuClose.sqf +++ b/addons/medical_menu/functions/fnc_onMenuClose.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: joko // Jonas * Handle medical menu closed @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" if (EGVAR(interact_menu,menuBackground)==1) then {[QGVAR(id), false] call EFUNC(common,blurScreen);}; if (EGVAR(interact_menu,menuBackground)==2) then {(uiNamespace getVariable [QEGVAR(interact_menu,menuBackground), displayNull]) closeDisplay 0;}; diff --git a/addons/medical_menu/functions/fnc_onMenuOpen.sqf b/addons/medical_menu/functions/fnc_onMenuOpen.sqf index 3b933d1862..991529712a 100644 --- a/addons/medical_menu/functions/fnc_onMenuOpen.sqf +++ b/addons/medical_menu/functions/fnc_onMenuOpen.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Glowbal * Handle medical menu opened @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" #define MAX_DISTANCE 10 params ["_display"]; diff --git a/addons/medical_menu/functions/fnc_openMenu.sqf b/addons/medical_menu/functions/fnc_openMenu.sqf index e0de46dba8..a492da8c43 100644 --- a/addons/medical_menu/functions/fnc_openMenu.sqf +++ b/addons/medical_menu/functions/fnc_openMenu.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Glowbal * Open the medical menu for target @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_interactionTarget"]; diff --git a/addons/medical_menu/functions/fnc_setTriageStatus.sqf b/addons/medical_menu/functions/fnc_setTriageStatus.sqf index 66efd6ac0c..9580a051e8 100644 --- a/addons/medical_menu/functions/fnc_setTriageStatus.sqf +++ b/addons/medical_menu/functions/fnc_setTriageStatus.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Glowbal * Set the triage status of object @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_target", "_status"]; diff --git a/addons/medical_menu/functions/fnc_updateActivityLog.sqf b/addons/medical_menu/functions/fnc_updateActivityLog.sqf index 7406e25f33..c99bc1ef4f 100644 --- a/addons/medical_menu/functions/fnc_updateActivityLog.sqf +++ b/addons/medical_menu/functions/fnc_updateActivityLog.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Glowbal * Update the activity log @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_display", "_logs"]; diff --git a/addons/medical_menu/functions/fnc_updateBodyImage.sqf b/addons/medical_menu/functions/fnc_updateBodyImage.sqf index 1d83b54372..234556a969 100644 --- a/addons/medical_menu/functions/fnc_updateBodyImage.sqf +++ b/addons/medical_menu/functions/fnc_updateBodyImage.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Glowbal * Update the body image on the menu @@ -15,7 +16,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_selectionBloodLoss", "_damaged", "_display"]; diff --git a/addons/medical_menu/functions/fnc_updateIcons.sqf b/addons/medical_menu/functions/fnc_updateIcons.sqf index 37508bd2b0..2d437612d7 100644 --- a/addons/medical_menu/functions/fnc_updateIcons.sqf +++ b/addons/medical_menu/functions/fnc_updateIcons.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Glowbal * Update the category icons @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" #define START_IDC 111 #define END_IDC 118 diff --git a/addons/medical_menu/functions/fnc_updateInformationLists.sqf b/addons/medical_menu/functions/fnc_updateInformationLists.sqf index d6ff631df8..25f457503c 100644 --- a/addons/medical_menu/functions/fnc_updateInformationLists.sqf +++ b/addons/medical_menu/functions/fnc_updateInformationLists.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Glowbal * Update the treatment information list @@ -15,7 +16,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_display", "_genericMessages", "_allInjuryTexts"]; diff --git a/addons/medical_menu/functions/fnc_updateQuickViewLog.sqf b/addons/medical_menu/functions/fnc_updateQuickViewLog.sqf index 836ebafca2..c398faaf14 100644 --- a/addons/medical_menu/functions/fnc_updateQuickViewLog.sqf +++ b/addons/medical_menu/functions/fnc_updateQuickViewLog.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Glowbal * Update the quick view log @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_display", "_logs"]; diff --git a/addons/medical_menu/functions/fnc_updateUIInfo.sqf b/addons/medical_menu/functions/fnc_updateUIInfo.sqf index 5fef1ff2a4..3c54cd71f0 100644 --- a/addons/medical_menu/functions/fnc_updateUIInfo.sqf +++ b/addons/medical_menu/functions/fnc_updateUIInfo.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Glowbal * Update all UI information in the medical menu @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_target", "_display"]; diff --git a/addons/microdagr/functions/fnc_appMarkKeypadEntry.sqf b/addons/microdagr/functions/fnc_appMarkKeypadEntry.sqf index 7e0049d007..ece62c22e9 100644 --- a/addons/microdagr/functions/fnc_appMarkKeypadEntry.sqf +++ b/addons/microdagr/functions/fnc_appMarkKeypadEntry.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: PabstMirror * Handles the keypad entries from the "Mark" Application @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_keypadButton"]; diff --git a/addons/microdagr/functions/fnc_appMenuButtonConnectRangefinder.sqf b/addons/microdagr/functions/fnc_appMenuButtonConnectRangefinder.sqf index 589ec096fb..4aa01155ca 100644 --- a/addons/microdagr/functions/fnc_appMenuButtonConnectRangefinder.sqf +++ b/addons/microdagr/functions/fnc_appMenuButtonConnectRangefinder.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: PabstMirror * Handles the "Connect To" button from the menu application @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" GVAR(currentWaypoint) = [-2, -1] select (GVAR(currentWaypoint) == -2); GVAR(rangeFinderPositionASL) = []; diff --git a/addons/microdagr/functions/fnc_appSettingsLBClick.sqf b/addons/microdagr/functions/fnc_appSettingsLBClick.sqf index 9e808559b2..5c5c511ca6 100644 --- a/addons/microdagr/functions/fnc_appSettingsLBClick.sqf +++ b/addons/microdagr/functions/fnc_appSettingsLBClick.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: PabstMirror * Handles double clicking on the setting listbox @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" disableSerialization; params ["", "_itemClicked"]; diff --git a/addons/microdagr/functions/fnc_appWaypointsButtonDeleteWP.sqf b/addons/microdagr/functions/fnc_appWaypointsButtonDeleteWP.sqf index c03ff06265..61508a1553 100644 --- a/addons/microdagr/functions/fnc_appWaypointsButtonDeleteWP.sqf +++ b/addons/microdagr/functions/fnc_appWaypointsButtonDeleteWP.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: PabstMirror * Handles clicking the delete button from the waypoint application @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" disableSerialization; private _display = uiNamespace getVariable [[QGVAR(RscTitleDisplay), QGVAR(DialogDisplay)] select (GVAR(currentShowMode) == DISPLAY_MODE_DIALOG), displayNull]; diff --git a/addons/microdagr/functions/fnc_appWaypointsButtonSetWP.sqf b/addons/microdagr/functions/fnc_appWaypointsButtonSetWP.sqf index b0d10667a0..80d5cfaef6 100644 --- a/addons/microdagr/functions/fnc_appWaypointsButtonSetWP.sqf +++ b/addons/microdagr/functions/fnc_appWaypointsButtonSetWP.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: PabstMirror * Handles clicking the setWP button from the waypoint application @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" disableSerialization; params ["_wpButton"]; diff --git a/addons/microdagr/functions/fnc_canShow.sqf b/addons/microdagr/functions/fnc_canShow.sqf index 17cd48cbed..0c80896661 100644 --- a/addons/microdagr/functions/fnc_canShow.sqf +++ b/addons/microdagr/functions/fnc_canShow.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: PabstMirror * Tests if the dagr can be shown in a mode @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_showType"]; private _returnValue = false; diff --git a/addons/microdagr/functions/fnc_deviceAddWaypoint.sqf b/addons/microdagr/functions/fnc_deviceAddWaypoint.sqf index ded268299c..443ab193e4 100644 --- a/addons/microdagr/functions/fnc_deviceAddWaypoint.sqf +++ b/addons/microdagr/functions/fnc_deviceAddWaypoint.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: PabstMirror * Adds a waypoint to the "device" @@ -15,7 +16,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_waypointName","_waypointPosASL"]; diff --git a/addons/microdagr/functions/fnc_deviceDeleteWaypoint.sqf b/addons/microdagr/functions/fnc_deviceDeleteWaypoint.sqf index b2e4f13d06..895b64bb38 100644 --- a/addons/microdagr/functions/fnc_deviceDeleteWaypoint.sqf +++ b/addons/microdagr/functions/fnc_deviceDeleteWaypoint.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: PabstMirror * Deletes a waypoint from the "device" @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_wpIndex"]; diff --git a/addons/microdagr/functions/fnc_deviceGetWaypoints.sqf b/addons/microdagr/functions/fnc_deviceGetWaypoints.sqf index da3484ceb0..c231b583b4 100644 --- a/addons/microdagr/functions/fnc_deviceGetWaypoints.sqf +++ b/addons/microdagr/functions/fnc_deviceGetWaypoints.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: PabstMirror * Gets all waypoints from the "device" @@ -14,6 +15,5 @@ * * Public: No */ -#include "script_component.hpp" (ACE_player getVariable [QGVAR(waypoints), []]) diff --git a/addons/microdagr/functions/fnc_dialogClosedEH.sqf b/addons/microdagr/functions/fnc_dialogClosedEH.sqf index 5180734644..fc94b101f5 100644 --- a/addons/microdagr/functions/fnc_dialogClosedEH.sqf +++ b/addons/microdagr/functions/fnc_dialogClosedEH.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: PabstMirror * Handles the dialog closeing, switches back to display mode @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" if (GVAR(currentShowMode) == DISPLAY_MODE_DIALOG) then { [-1] call FUNC(saveCurrentAndSetNewMode); diff --git a/addons/microdagr/functions/fnc_mapButtonDownEH.sqf b/addons/microdagr/functions/fnc_mapButtonDownEH.sqf index 566f08dc66..9ca55bc5ab 100644 --- a/addons/microdagr/functions/fnc_mapButtonDownEH.sqf +++ b/addons/microdagr/functions/fnc_mapButtonDownEH.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: PabstMirror * Handles right clicking on the map ('dragging' the map) @@ -17,7 +18,6 @@ * * Public: No */ -#include "script_component.hpp" params ["", "_mouseButton"]; diff --git a/addons/microdagr/functions/fnc_mapDoubleTapEH.sqf b/addons/microdagr/functions/fnc_mapDoubleTapEH.sqf index 02e111929d..aeb73414f5 100644 --- a/addons/microdagr/functions/fnc_mapDoubleTapEH.sqf +++ b/addons/microdagr/functions/fnc_mapDoubleTapEH.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: PabstMirror * Handles the double tapping either of the 2 mini-maps @@ -16,7 +17,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_theMap", "_mouseButton", "_xPos", "_yPos"]; diff --git a/addons/microdagr/functions/fnc_mapOnDrawEH.sqf b/addons/microdagr/functions/fnc_mapOnDrawEH.sqf index 0c1925f1f8..15c1b0a59c 100644 --- a/addons/microdagr/functions/fnc_mapOnDrawEH.sqf +++ b/addons/microdagr/functions/fnc_mapOnDrawEH.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: PabstMirror * Handles the draw event from all 3 maps (compass + 2 minimaps) @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_theMap"]; diff --git a/addons/microdagr/functions/fnc_modeMapButtons.sqf b/addons/microdagr/functions/fnc_modeMapButtons.sqf index a0d74bec49..8ed8171535 100644 --- a/addons/microdagr/functions/fnc_modeMapButtons.sqf +++ b/addons/microdagr/functions/fnc_modeMapButtons.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: PabstMirror * Takes some arguments and returns something or other. @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_mode"]; diff --git a/addons/microdagr/functions/fnc_moduleMapFill.sqf b/addons/microdagr/functions/fnc_moduleMapFill.sqf index 46b071122a..01e6af799f 100644 --- a/addons/microdagr/functions/fnc_moduleMapFill.sqf +++ b/addons/microdagr/functions/fnc_moduleMapFill.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: PabstMirror * Function for the module (handles the map fill level) @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_logic"]; diff --git a/addons/microdagr/functions/fnc_openDisplay.sqf b/addons/microdagr/functions/fnc_openDisplay.sqf index 3f7594d3a7..775378a533 100644 --- a/addons/microdagr/functions/fnc_openDisplay.sqf +++ b/addons/microdagr/functions/fnc_openDisplay.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: PabstMirror * Changes the display mode of the MicroDAGR. @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" params [["_newDisplayShowMode", -1, [-1]]]; private _oldShowMode = GVAR(currentShowMode); diff --git a/addons/microdagr/functions/fnc_recieveRangefinderData.sqf b/addons/microdagr/functions/fnc_recieveRangefinderData.sqf index 9d9bec33ef..640c42cfe4 100644 --- a/addons/microdagr/functions/fnc_recieveRangefinderData.sqf +++ b/addons/microdagr/functions/fnc_recieveRangefinderData.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: PabstMirror * Recieves the data packet from the vector rangefinder @@ -15,7 +16,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_slopeDistance", "_azimuth", "_inclination"]; if (GVAR(currentWaypoint) != -2) exitWith {}; //Only take waypoint when "connected" diff --git a/addons/microdagr/functions/fnc_saveCurrentAndSetNewMode.sqf b/addons/microdagr/functions/fnc_saveCurrentAndSetNewMode.sqf index 9c98f2f7dc..973e0ac7fb 100644 --- a/addons/microdagr/functions/fnc_saveCurrentAndSetNewMode.sqf +++ b/addons/microdagr/functions/fnc_saveCurrentAndSetNewMode.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: PabstMirror * Saves the current mode and sets a new mode @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_newMode"]; disableSerialization; diff --git a/addons/microdagr/functions/fnc_showApplicationPage.sqf b/addons/microdagr/functions/fnc_showApplicationPage.sqf index c944aa6546..1ba8a36d45 100644 --- a/addons/microdagr/functions/fnc_showApplicationPage.sqf +++ b/addons/microdagr/functions/fnc_showApplicationPage.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: PabstMirror * Changes the "application page" shown on the microDAGR @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" disableSerialization; diff --git a/addons/microdagr/functions/fnc_updateDisplay.sqf b/addons/microdagr/functions/fnc_updateDisplay.sqf index f60db3bb0f..d6acba711e 100644 --- a/addons/microdagr/functions/fnc_updateDisplay.sqf +++ b/addons/microdagr/functions/fnc_updateDisplay.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: PabstMirror * Updates the display (several times a second) called from the pfeh @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" disableSerialization; private _display = uiNamespace getVariable [[QGVAR(RscTitleDisplay), QGVAR(DialogDisplay)] select (GVAR(currentShowMode) == DISPLAY_MODE_DIALOG), displayNull]; diff --git a/addons/minedetector/functions/fnc_activateDetector.sqf b/addons/minedetector/functions/fnc_activateDetector.sqf index f22dae1ee9..5ce236250b 100644 --- a/addons/minedetector/functions/fnc_activateDetector.sqf +++ b/addons/minedetector/functions/fnc_activateDetector.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Glowbal * Activate the mine detector @@ -14,8 +15,6 @@ * Public: No */ -#include "script_component.hpp" - if (call FUNC(canActivateDetector)) then { [ACE_player, currentWeapon ACE_player] call FUNC(enableDetector); }; diff --git a/addons/minedetector/functions/fnc_canActivateDetector.sqf b/addons/minedetector/functions/fnc_canActivateDetector.sqf index 93089df063..8a5d795b49 100644 --- a/addons/minedetector/functions/fnc_canActivateDetector.sqf +++ b/addons/minedetector/functions/fnc_canActivateDetector.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Glowbal * Check if the mine detector can be activated @@ -14,7 +15,5 @@ * Public: No */ -#include "script_component.hpp" - ([ACE_player] call FUNC(hasDetector)) && !([ACE_player, currentWeapon ACE_player] call FUNC(isDetectorEnabled)); diff --git a/addons/minedetector/functions/fnc_canConnectHeadphones.sqf b/addons/minedetector/functions/fnc_canConnectHeadphones.sqf index dfaf9699d8..4266f6e065 100644 --- a/addons/minedetector/functions/fnc_canConnectHeadphones.sqf +++ b/addons/minedetector/functions/fnc_canConnectHeadphones.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: esteldunedain * Check if headphones can be connected to the mine detector @@ -14,7 +15,5 @@ * Public: No */ -#include "script_component.hpp" - !(ACE_player getVariable [QGVAR(isUsingHeadphones), false]) && {[ACE_player] call FUNC(hasDetector)}; diff --git a/addons/minedetector/functions/fnc_canDeactivateDetector.sqf b/addons/minedetector/functions/fnc_canDeactivateDetector.sqf index e308ba3789..8c38363288 100644 --- a/addons/minedetector/functions/fnc_canDeactivateDetector.sqf +++ b/addons/minedetector/functions/fnc_canDeactivateDetector.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Glowbal * Check if the mine detector can be deactivated @@ -14,7 +15,5 @@ * Public: No */ -#include "script_component.hpp" - ([ACE_player] call FUNC(hasDetector)) && {[ACE_player, currentWeapon ACE_player] call FUNC(isDetectorEnabled)}; diff --git a/addons/minedetector/functions/fnc_canDisconnectHeadphones.sqf b/addons/minedetector/functions/fnc_canDisconnectHeadphones.sqf index f58fe6617d..b55338b641 100644 --- a/addons/minedetector/functions/fnc_canDisconnectHeadphones.sqf +++ b/addons/minedetector/functions/fnc_canDisconnectHeadphones.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: esteldunedain * Check if headphones can be disconnected from the mine detector @@ -14,7 +15,5 @@ * Public: No */ -#include "script_component.hpp" - (ACE_player getVariable [QGVAR(isUsingHeadphones), false]) && {[ACE_player] call FUNC(hasDetector)}; diff --git a/addons/minedetector/functions/fnc_connectHeadphones.sqf b/addons/minedetector/functions/fnc_connectHeadphones.sqf index 2a715a66a0..3bf76a4d23 100644 --- a/addons/minedetector/functions/fnc_connectHeadphones.sqf +++ b/addons/minedetector/functions/fnc_connectHeadphones.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: esteldunedain * Connect/disconnect headphones to the mine detector @@ -15,8 +16,6 @@ * Public: No */ -#include "script_component.hpp" - params ["_unit", "_state"]; _unit setVariable [QGVAR(isUsingHeadphones), _state]; diff --git a/addons/minedetector/functions/fnc_deactivateDetector.sqf b/addons/minedetector/functions/fnc_deactivateDetector.sqf index 05ce00d978..7ed0713846 100644 --- a/addons/minedetector/functions/fnc_deactivateDetector.sqf +++ b/addons/minedetector/functions/fnc_deactivateDetector.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Glowbal * Deactivate the mine detector @@ -14,8 +15,6 @@ * Public: No */ -#include "script_component.hpp" - if (call FUNC(canDeactivateDetector)) then { [ACE_player, currentWeapon ACE_player] call FUNC(disableDetector); }; diff --git a/addons/minedetector/functions/fnc_detectorLoop.sqf b/addons/minedetector/functions/fnc_detectorLoop.sqf index ef05046881..3895ab8193 100644 --- a/addons/minedetector/functions/fnc_detectorLoop.sqf +++ b/addons/minedetector/functions/fnc_detectorLoop.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Glowbal * Handle mine detection in a PFH loop @@ -15,8 +16,6 @@ * Public: No */ -#include "script_component.hpp" - params ["_args", "_idPFH"]; _args params ["_unit", "_type", "_detectorConfig", "_lastPlayed"]; diff --git a/addons/minedetector/functions/fnc_disableDetector.sqf b/addons/minedetector/functions/fnc_disableDetector.sqf index e2fbb55798..be0c57117d 100644 --- a/addons/minedetector/functions/fnc_disableDetector.sqf +++ b/addons/minedetector/functions/fnc_disableDetector.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Glowbal * Disables the mine detector @@ -15,8 +16,6 @@ * Public: No */ -#include "script_component.hpp" - params ["_unit", "_detectorType"]; if !(local _unit) then { diff --git a/addons/minedetector/functions/fnc_enableDetector.sqf b/addons/minedetector/functions/fnc_enableDetector.sqf index 8ed31433d1..2bb663d977 100644 --- a/addons/minedetector/functions/fnc_enableDetector.sqf +++ b/addons/minedetector/functions/fnc_enableDetector.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Glowbal * Enables the mine detector @@ -15,8 +16,6 @@ * Public: No */ -#include "script_component.hpp" - params ["_unit", "_detectorType"]; if !(local _unit) then { diff --git a/addons/minedetector/functions/fnc_getDetectedObject.sqf b/addons/minedetector/functions/fnc_getDetectedObject.sqf index ea7698dce7..9bcfcf2cc7 100644 --- a/addons/minedetector/functions/fnc_getDetectedObject.sqf +++ b/addons/minedetector/functions/fnc_getDetectedObject.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Glowbal * Get the distance to the nearest detectable object @@ -15,8 +16,6 @@ * Public: No */ -#include "script_component.hpp" - params ["_unit", "_detectorConfig"]; _detectorConfig params ["", "_radius"]; diff --git a/addons/minedetector/functions/fnc_getDetectorConfig.sqf b/addons/minedetector/functions/fnc_getDetectorConfig.sqf index 8b78a0b9ee..313cc30142 100644 --- a/addons/minedetector/functions/fnc_getDetectorConfig.sqf +++ b/addons/minedetector/functions/fnc_getDetectorConfig.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Glowbal * Get the mine detector configuration from the cache or config file @@ -14,8 +15,6 @@ * Public: No */ -#include "script_component.hpp" - params ["_detectorType"]; if (_detectorType isEqualTo "") exitWith {[]}; diff --git a/addons/minedetector/functions/fnc_hasDetector.sqf b/addons/minedetector/functions/fnc_hasDetector.sqf index fcd6eb1c19..4752284196 100644 --- a/addons/minedetector/functions/fnc_hasDetector.sqf +++ b/addons/minedetector/functions/fnc_hasDetector.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Glowbal * Check if unit has a mine detector in hands @@ -14,8 +15,6 @@ * Public: No */ -#include "script_component.hpp" - params ["_unit"]; !(([currentWeapon _unit] call FUNC(getDetectorConfig)) isEqualTo []); diff --git a/addons/minedetector/functions/fnc_isDetectorEnabled.sqf b/addons/minedetector/functions/fnc_isDetectorEnabled.sqf index 9e75788794..95ff89fa65 100644 --- a/addons/minedetector/functions/fnc_isDetectorEnabled.sqf +++ b/addons/minedetector/functions/fnc_isDetectorEnabled.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Glowbal * Check if the mine detector is enabled @@ -14,8 +15,6 @@ * Public: No */ -#include "script_component.hpp" - params ["_unit", "_detectorType"]; alive _unit && {(_unit getVariable [format[QGVAR(enable_%1), _detectorType], false])}; diff --git a/addons/minedetector/functions/fnc_playDetectorSound.sqf b/addons/minedetector/functions/fnc_playDetectorSound.sqf index 3c7a9aaf45..8e47508209 100644 --- a/addons/minedetector/functions/fnc_playDetectorSound.sqf +++ b/addons/minedetector/functions/fnc_playDetectorSound.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Glowbal * Play the detector sound @@ -15,8 +16,6 @@ * Public: No */ -#include "script_component.hpp" - params ["_unit", "_soundClass"]; if (isNull _unit) exitWith { diff --git a/addons/missileguidance/functions/fnc_attackProfile_AIR.sqf b/addons/missileguidance/functions/fnc_attackProfile_AIR.sqf index 3d2b5f36b8..823e85efaa 100644 --- a/addons/missileguidance/functions/fnc_attackProfile_AIR.sqf +++ b/addons/missileguidance/functions/fnc_attackProfile_AIR.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: jaynus / nou * Attack profile: AIR @@ -16,7 +17,5 @@ * * Public: No */ -// #define DEBUG_MODE_FULL -#include "script_component.hpp" _this call FUNC(attackProfile_LIN); diff --git a/addons/missileguidance/functions/fnc_attackProfile_DIR.sqf b/addons/missileguidance/functions/fnc_attackProfile_DIR.sqf index 8e049a9fe2..cddd70807e 100644 --- a/addons/missileguidance/functions/fnc_attackProfile_DIR.sqf +++ b/addons/missileguidance/functions/fnc_attackProfile_DIR.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: jaynus / nou * Attack profile: DIR @@ -16,7 +17,5 @@ * * Public: No */ -// #define DEBUG_MODE_FULL -#include "script_component.hpp" _this call FUNC(attackProfile_LIN); diff --git a/addons/missileguidance/functions/fnc_attackProfile_HI.sqf b/addons/missileguidance/functions/fnc_attackProfile_HI.sqf index 279196a888..6f1fbe67d3 100644 --- a/addons/missileguidance/functions/fnc_attackProfile_HI.sqf +++ b/addons/missileguidance/functions/fnc_attackProfile_HI.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: jaynus / nou * Attack profile: HI @@ -16,7 +17,5 @@ * * Public: No */ -// #define DEBUG_MODE_FULL -#include "script_component.hpp" _this call FUNC(attackProfile_LIN); diff --git a/addons/missileguidance/functions/fnc_attackProfile_JAV_DIR.sqf b/addons/missileguidance/functions/fnc_attackProfile_JAV_DIR.sqf index e709aed112..f277c1bc68 100644 --- a/addons/missileguidance/functions/fnc_attackProfile_JAV_DIR.sqf +++ b/addons/missileguidance/functions/fnc_attackProfile_JAV_DIR.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: jaynus / nou * Attack profile: Javelin Dir @@ -15,8 +16,6 @@ * * Public: No */ -// #define DEBUG_MODE_FULL -#include "script_component.hpp" #define STAGE_LAUNCH 1 #define STAGE_CLIMB 2 diff --git a/addons/missileguidance/functions/fnc_attackProfile_JAV_TOP.sqf b/addons/missileguidance/functions/fnc_attackProfile_JAV_TOP.sqf index 34871cba8e..08219ea24a 100644 --- a/addons/missileguidance/functions/fnc_attackProfile_JAV_TOP.sqf +++ b/addons/missileguidance/functions/fnc_attackProfile_JAV_TOP.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: jaynus / nou * Attack profile: Javelin Top @@ -15,8 +16,6 @@ * * Public: No */ -// #define DEBUG_MODE_FULL -#include "script_component.hpp" #define STAGE_LAUNCH 1 #define STAGE_CLIMB 2 diff --git a/addons/missileguidance/functions/fnc_attackProfile_LIN.sqf b/addons/missileguidance/functions/fnc_attackProfile_LIN.sqf index 2d25340622..464ee9e36b 100644 --- a/addons/missileguidance/functions/fnc_attackProfile_LIN.sqf +++ b/addons/missileguidance/functions/fnc_attackProfile_LIN.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: jaynus / nou * Attack profile: Linear (used by DAGR) @@ -15,8 +16,6 @@ * * Public: No */ -// #define DEBUG_MODE_FULL -#include "script_component.hpp" params ["_seekerTargetPos", "_args"]; _args params ["_firedEH"]; diff --git a/addons/missileguidance/functions/fnc_attackProfile_MID.sqf b/addons/missileguidance/functions/fnc_attackProfile_MID.sqf index 0349a101e4..f66088844c 100644 --- a/addons/missileguidance/functions/fnc_attackProfile_MID.sqf +++ b/addons/missileguidance/functions/fnc_attackProfile_MID.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: jaynus / nou * Attack profile: MID @@ -16,7 +17,5 @@ * * Public: No */ -// #define DEBUG_MODE_FULL -#include "script_component.hpp" _this call FUNC(attackProfile_LIN); diff --git a/addons/missileguidance/functions/fnc_changeMissileDirection.sqf b/addons/missileguidance/functions/fnc_changeMissileDirection.sqf index 28fb46fe28..d560f05e2a 100644 --- a/addons/missileguidance/functions/fnc_changeMissileDirection.sqf +++ b/addons/missileguidance/functions/fnc_changeMissileDirection.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: jaynus / nou * Change a projectile's direction, maintaing speed @@ -14,8 +15,6 @@ * * Public: No */ -// #define DEBUG_MODE_FULL -#include "script_component.hpp" params ["_projectile", "_v"]; diff --git a/addons/missileguidance/functions/fnc_checkLos.sqf b/addons/missileguidance/functions/fnc_checkLos.sqf index 1e1d3c7d3e..205ff3d4ef 100644 --- a/addons/missileguidance/functions/fnc_checkLos.sqf +++ b/addons/missileguidance/functions/fnc_checkLos.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: jaynus * Returns whether the seeker object can see the target position with lineIntersect @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_seeker", "_target"]; diff --git a/addons/missileguidance/functions/fnc_checkSeekerAngle.sqf b/addons/missileguidance/functions/fnc_checkSeekerAngle.sqf index 8ddc848594..d8b3b858b3 100644 --- a/addons/missileguidance/functions/fnc_checkSeekerAngle.sqf +++ b/addons/missileguidance/functions/fnc_checkSeekerAngle.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: jaynus * Returns whether the target position is within the maximum angle FOV of the provided seeker @@ -16,8 +17,6 @@ * * Public: No */ -// #define DEBUG_MODE_FULL -#include "script_component.hpp" params ["_seeker", "_targetPos", "_seekerMaxAngle"]; diff --git a/addons/missileguidance/functions/fnc_cycleAttackProfileKeyDown.sqf b/addons/missileguidance/functions/fnc_cycleAttackProfileKeyDown.sqf index 97531eb1e5..45e2c4f900 100644 --- a/addons/missileguidance/functions/fnc_cycleAttackProfileKeyDown.sqf +++ b/addons/missileguidance/functions/fnc_cycleAttackProfileKeyDown.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: PabstMirror * Cycles fire mode for any missileGuidance enabled ammo that has multiple attack profiles @@ -14,9 +15,6 @@ * Public: No */ -// #define DEBUG_MODE_FULL -#include "script_component.hpp" - TRACE_1("cycle fire mode",_this); if (!alive ACE_player) exitWith {}; diff --git a/addons/missileguidance/functions/fnc_doAttackProfile.sqf b/addons/missileguidance/functions/fnc_doAttackProfile.sqf index 0d8de543ee..53d43883d3 100644 --- a/addons/missileguidance/functions/fnc_doAttackProfile.sqf +++ b/addons/missileguidance/functions/fnc_doAttackProfile.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: jaynus / nou, PabstMirror * Do attack profile with a valid seeker target location @@ -15,8 +16,6 @@ * * Public: No */ -// #define DEBUG_MODE_FULL -#include "script_component.hpp" params ["_seekerTargetPos", "_args"]; _args params ["", "_launchParams"]; diff --git a/addons/missileguidance/functions/fnc_doHandoff.sqf b/addons/missileguidance/functions/fnc_doHandoff.sqf index 56abc8fbf0..569a827173 100644 --- a/addons/missileguidance/functions/fnc_doHandoff.sqf +++ b/addons/missileguidance/functions/fnc_doHandoff.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: ACE * Not currently used @@ -14,8 +15,6 @@ * * Public: No */ - -#include "script_component.hpp" params ["_target", "_args"]; [QGVAR(handoff), [_target, _args]] call CBA_fnc_globalEvent; diff --git a/addons/missileguidance/functions/fnc_doSeekerSearch.sqf b/addons/missileguidance/functions/fnc_doSeekerSearch.sqf index 8dd70f0163..feb13481a5 100644 --- a/addons/missileguidance/functions/fnc_doSeekerSearch.sqf +++ b/addons/missileguidance/functions/fnc_doSeekerSearch.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: jaynus / nou, PabstMirror * Do seeker search @@ -15,8 +16,6 @@ * * Public: No */ -// #define DEBUG_MODE_FULL -#include "script_component.hpp" params ["", "_args", "", "_lastKnownPosState"]; _args params ["", "_launchParams"]; diff --git a/addons/missileguidance/functions/fnc_guidancePFH.sqf b/addons/missileguidance/functions/fnc_guidancePFH.sqf index 5ecb9c6dfe..8196de8057 100644 --- a/addons/missileguidance/functions/fnc_guidancePFH.sqf +++ b/addons/missileguidance/functions/fnc_guidancePFH.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: jaynus / nou * Guidance Per Frame Handler @@ -14,8 +15,6 @@ * * Public: No */ -// #define DEBUG_MODE_FULL -#include "script_component.hpp" BEGIN_COUNTER(guidancePFH); diff --git a/addons/missileguidance/functions/fnc_handleHandoff.sqf b/addons/missileguidance/functions/fnc_handleHandoff.sqf index e2122a56a4..b4bb0052ae 100644 --- a/addons/missileguidance/functions/fnc_handleHandoff.sqf +++ b/addons/missileguidance/functions/fnc_handleHandoff.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: ACE-Team * Not currently used @@ -14,8 +15,6 @@ * * Public: No */ - -#include "script_component.hpp" params ["_target", "_args"]; if (isNil "_target" || {isNull _target} || {!local _target} ) exitWith { false }; diff --git a/addons/missileguidance/functions/fnc_onFired.sqf b/addons/missileguidance/functions/fnc_onFired.sqf index bf256cbba0..eb4d2051cf 100644 --- a/addons/missileguidance/functions/fnc_onFired.sqf +++ b/addons/missileguidance/functions/fnc_onFired.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: jaynus / nou * Fired event handler, starts guidance if enabled for ammo @@ -15,8 +16,6 @@ * * Public: No */ -// #define DEBUG_MODE_FULL -#include "script_component.hpp" params ["_shooter","","","","_ammo","","_projectile"]; diff --git a/addons/missileguidance/functions/fnc_onIncomingMissile.sqf b/addons/missileguidance/functions/fnc_onIncomingMissile.sqf index 2dcc93b793..04ad0c79b7 100644 --- a/addons/missileguidance/functions/fnc_onIncomingMissile.sqf +++ b/addons/missileguidance/functions/fnc_onIncomingMissile.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: jaynus / nou * Handles AI shooting a locking missile @@ -15,8 +16,6 @@ * * Public: No */ -// #define DEBUG_MODE_FULL -#include "script_component.hpp" params ["_target", "_ammo", "_shooter"]; diff --git a/addons/missileguidance/functions/fnc_seekerType_Optic.sqf b/addons/missileguidance/functions/fnc_seekerType_Optic.sqf index 173b6ba708..356ad5c2f1 100644 --- a/addons/missileguidance/functions/fnc_seekerType_Optic.sqf +++ b/addons/missileguidance/functions/fnc_seekerType_Optic.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: jaynus / nou * Seeker Type: Optic @@ -14,8 +15,6 @@ * * Public: No */ -// #define DEBUG_MODE_FULL -#include "script_component.hpp" params ["", "_args"]; _args params ["_firedEH", "_launchParams", "", "_seekerParams", "_stateParams"]; diff --git a/addons/missileguidance/functions/fnc_seekerType_SALH.sqf b/addons/missileguidance/functions/fnc_seekerType_SALH.sqf index 3f78f5d3c5..09e20e7887 100644 --- a/addons/missileguidance/functions/fnc_seekerType_SALH.sqf +++ b/addons/missileguidance/functions/fnc_seekerType_SALH.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: jaynus / nou * Seeker Type: SALH (Laser) @@ -15,8 +16,6 @@ * * Public: No */ -// #define DEBUG_MODE_FULL -#include "script_component.hpp" params ["", "_args"]; _args params ["_firedEH", "_launchParams", "", "_seekerParams"]; diff --git a/addons/missionmodules/functions/fnc_moduleAmbianceSound.sqf b/addons/missionmodules/functions/fnc_moduleAmbianceSound.sqf index f01aa8017a..ba20ac0b8d 100644 --- a/addons/missionmodules/functions/fnc_moduleAmbianceSound.sqf +++ b/addons/missionmodules/functions/fnc_moduleAmbianceSound.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Glowbal * Plays synchronized ambiance sounds while the module is alive. @@ -16,8 +17,6 @@ * Public: No */ -#include "script_component.hpp" - params ["_logic", "_units", "_activated"]; // We only play this on the locality of the logic, since the sounds are broadcasted across the network diff --git a/addons/mk6mortar/functions/fnc_canLoadMagazine.sqf b/addons/mk6mortar/functions/fnc_canLoadMagazine.sqf index 7c0bb69374..67bcf4d522 100644 --- a/addons/mk6mortar/functions/fnc_canLoadMagazine.sqf +++ b/addons/mk6mortar/functions/fnc_canLoadMagazine.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Grey * Checks whether magazine can be loaded into static weapon @@ -15,7 +16,6 @@ * * Public: Yes */ -#include "script_component.hpp" params ["_static","_unit",["_magazineClassOptional","",[""]]]; diff --git a/addons/mk6mortar/functions/fnc_canUnloadMagazine.sqf b/addons/mk6mortar/functions/fnc_canUnloadMagazine.sqf index 959e8a05f4..a296d56c32 100644 --- a/addons/mk6mortar/functions/fnc_canUnloadMagazine.sqf +++ b/addons/mk6mortar/functions/fnc_canUnloadMagazine.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Grey * Checks whether magazine can be unloaded from static weapon @@ -14,7 +15,6 @@ * * Public: Yes */ -#include "script_component.hpp" params ["_static","_unit"]; diff --git a/addons/mk6mortar/functions/fnc_dev_buildTable.sqf b/addons/mk6mortar/functions/fnc_dev_buildTable.sqf index 6af83c27f2..6141314eea 100644 --- a/addons/mk6mortar/functions/fnc_dev_buildTable.sqf +++ b/addons/mk6mortar/functions/fnc_dev_buildTable.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: PabstMirror * DEV function to build mortar tables, very cpu intensive (never used durring normal gameplay) @@ -15,7 +16,6 @@ * * Public: No */ -#include "script_component.hpp" private _muzzleVelocity = _this select 0; private _airFriction = _this select 1; diff --git a/addons/mk6mortar/functions/fnc_dev_formatNumber.sqf b/addons/mk6mortar/functions/fnc_dev_formatNumber.sqf index 713daefbed..a24f456037 100644 --- a/addons/mk6mortar/functions/fnc_dev_formatNumber.sqf +++ b/addons/mk6mortar/functions/fnc_dev_formatNumber.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Pabst Mirror * Converts numbers into nicely formated strings. @@ -15,7 +16,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_theNumber", "_inputType", "_convertToMils"]; diff --git a/addons/mk6mortar/functions/fnc_dev_simulateCalcRangeTableLine.sqf b/addons/mk6mortar/functions/fnc_dev_simulateCalcRangeTableLine.sqf index 5d83913c3c..2bdfe56c22 100644 --- a/addons/mk6mortar/functions/fnc_dev_simulateCalcRangeTableLine.sqf +++ b/addons/mk6mortar/functions/fnc_dev_simulateCalcRangeTableLine.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Pabst Mirror * Builds a rangeTable line for a certian range, given muzzle velocity and air friction, returns [] if out of range. @@ -15,7 +16,6 @@ * * Public: No */ -#include "script_component.hpp" #define TIME_STEP (1/50) diff --git a/addons/mk6mortar/functions/fnc_dev_simulateFindSolution.sqf b/addons/mk6mortar/functions/fnc_dev_simulateFindSolution.sqf index 3a91b3cf4a..3c509d5a19 100644 --- a/addons/mk6mortar/functions/fnc_dev_simulateFindSolution.sqf +++ b/addons/mk6mortar/functions/fnc_dev_simulateFindSolution.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: PabstMirror * DEV to find a firing solution for a given range @@ -17,7 +18,6 @@ * * Public: No */ -#include "script_component.hpp" #define MAX_ATTEMPTS 22 params ["_rangeToHit", "_heightToHit", "_muzzleVelocity", "_airFriction","_timeStep"]; diff --git a/addons/mk6mortar/functions/fnc_dev_simulateShot.sqf b/addons/mk6mortar/functions/fnc_dev_simulateShot.sqf index fa74c842e1..7974526ff6 100644 --- a/addons/mk6mortar/functions/fnc_dev_simulateShot.sqf +++ b/addons/mk6mortar/functions/fnc_dev_simulateShot.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: PabstMirror * DEV function to build mortar tables, very cpu intensive (never used durring normal gameplay) @@ -21,7 +22,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_angleDeg", "_muzzleVelocity", "_airFriction", "_temp", "_relDensity", "_tailWind", "_crosswind", "_heightOfTarget", "_timeStep"]; diff --git a/addons/mk6mortar/functions/fnc_handleFired.sqf b/addons/mk6mortar/functions/fnc_handleFired.sqf index b6cdac2b03..02a8e51ce0 100644 --- a/addons/mk6mortar/functions/fnc_handleFired.sqf +++ b/addons/mk6mortar/functions/fnc_handleFired.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: PabstMirror * Called when the mortar is fired. @@ -19,7 +20,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_vehicle", "_weapon", "_muzzle", "_mode", "_ammo", "_magazine", "_projectile"]; diff --git a/addons/mk6mortar/functions/fnc_handlePlayerVehicleChanged.sqf b/addons/mk6mortar/functions/fnc_handlePlayerVehicleChanged.sqf index 568a1a326e..fd53bcf3d4 100644 --- a/addons/mk6mortar/functions/fnc_handlePlayerVehicleChanged.sqf +++ b/addons/mk6mortar/functions/fnc_handlePlayerVehicleChanged.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: PabstMirror * Handles player getting into new vehicle. Loads PFEG for mortar display if it is a mortar. @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_player", "_newVehicle"]; diff --git a/addons/mk6mortar/functions/fnc_loadMagazine.sqf b/addons/mk6mortar/functions/fnc_loadMagazine.sqf index df92c820cd..297fb2a969 100644 --- a/addons/mk6mortar/functions/fnc_loadMagazine.sqf +++ b/addons/mk6mortar/functions/fnc_loadMagazine.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Grey * Loads Magazine into static weapon @@ -15,7 +16,6 @@ * * Public: Yes */ -#include "script_component.hpp" params ["_static","_unit",["_magazineClassOptional","",[""]]]; diff --git a/addons/mk6mortar/functions/fnc_loadMagazineTimer.sqf b/addons/mk6mortar/functions/fnc_loadMagazineTimer.sqf index e71dc9cacb..cfc6adff08 100644 --- a/addons/mk6mortar/functions/fnc_loadMagazineTimer.sqf +++ b/addons/mk6mortar/functions/fnc_loadMagazineTimer.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Grey * Loads Magazine into static weapon using a timer. @@ -16,7 +17,6 @@ * * Public: Yes */ -#include "script_component.hpp" params ["_static","_unit","_timeToLoad",["_magazineClassOptional","",[""]]]; diff --git a/addons/mk6mortar/functions/fnc_moduleInit.sqf b/addons/mk6mortar/functions/fnc_moduleInit.sqf index 4fef320117..3158236859 100644 --- a/addons/mk6mortar/functions/fnc_moduleInit.sqf +++ b/addons/mk6mortar/functions/fnc_moduleInit.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: PabstMirror * Loads settings from the module. @@ -15,7 +16,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_logic", "_syncedUnits", "_activated"]; diff --git a/addons/mk6mortar/functions/fnc_mortarInit.sqf b/addons/mk6mortar/functions/fnc_mortarInit.sqf index 65d0ff74db..46c16738bf 100644 --- a/addons/mk6mortar/functions/fnc_mortarInit.sqf +++ b/addons/mk6mortar/functions/fnc_mortarInit.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: VKing * Initializes mortar for use with ammunition handling magazines. @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_mortar"]; diff --git a/addons/mk6mortar/functions/fnc_rangeTableCanUse.sqf b/addons/mk6mortar/functions/fnc_rangeTableCanUse.sqf index 6799798802..1a5d5bf9a6 100644 --- a/addons/mk6mortar/functions/fnc_rangeTableCanUse.sqf +++ b/addons/mk6mortar/functions/fnc_rangeTableCanUse.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: PabstMirror * Can player open 82mm rangetable. @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_vehicle", "_player"]; diff --git a/addons/mk6mortar/functions/fnc_rangeTableOpen.sqf b/addons/mk6mortar/functions/fnc_rangeTableOpen.sqf index 688253038c..f55e2bcd99 100644 --- a/addons/mk6mortar/functions/fnc_rangeTableOpen.sqf +++ b/addons/mk6mortar/functions/fnc_rangeTableOpen.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: PabstMirror * Opens the rangetable and fills the charge listbox. @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" #define LIST_CHARGE ((uiNamespace getVariable "ACE_82mm_RangeTable_Dialog") displayCtrl 1501) diff --git a/addons/mk6mortar/functions/fnc_rangeTablePageChange.sqf b/addons/mk6mortar/functions/fnc_rangeTablePageChange.sqf index e78fc40574..84bb2fba05 100644 --- a/addons/mk6mortar/functions/fnc_rangeTablePageChange.sqf +++ b/addons/mk6mortar/functions/fnc_rangeTablePageChange.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: PabstMirror * Called when listbox selection changes. Updates the rangetable with new values. @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" #define RANGE_TABLE ((uiNamespace getVariable "ACE_82mm_RangeTable_Dialog") displayCtrl 20001) #define LIST_CHARGE ((uiNamespace getVariable "ACE_82mm_RangeTable_Dialog") displayCtrl 1501) diff --git a/addons/mk6mortar/functions/fnc_rangeTablePreCalculatedValues.sqf b/addons/mk6mortar/functions/fnc_rangeTablePreCalculatedValues.sqf index a288ee03f9..7a219e5535 100644 --- a/addons/mk6mortar/functions/fnc_rangeTablePreCalculatedValues.sqf +++ b/addons/mk6mortar/functions/fnc_rangeTablePreCalculatedValues.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: PabstMirror * Simple Lookup Table for various muzzle velocities and air frictions. @@ -15,7 +16,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_muzzleVelocity", "_airFriction"]; diff --git a/addons/mk6mortar/functions/fnc_toggleMils.sqf b/addons/mk6mortar/functions/fnc_toggleMils.sqf index cd2c7cf76f..a2c2a29789 100644 --- a/addons/mk6mortar/functions/fnc_toggleMils.sqf +++ b/addons/mk6mortar/functions/fnc_toggleMils.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: PabstMirror * Toggles the mortart to show mils or degrees @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_mortarVeh", "_unit"]; diff --git a/addons/mk6mortar/functions/fnc_turretDisplayLoaded.sqf b/addons/mk6mortar/functions/fnc_turretDisplayLoaded.sqf index 924b00a90e..aa2e9f2823 100644 --- a/addons/mk6mortar/functions/fnc_turretDisplayLoaded.sqf +++ b/addons/mk6mortar/functions/fnc_turretDisplayLoaded.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: PabstMirror * Called when the mk6's in game UI is loaded. Hides rangefinder data if it is disabled. @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" disableSerialization; diff --git a/addons/mk6mortar/functions/fnc_unloadMagazine.sqf b/addons/mk6mortar/functions/fnc_unloadMagazine.sqf index 9aa0fa0437..4da21b3e8f 100644 --- a/addons/mk6mortar/functions/fnc_unloadMagazine.sqf +++ b/addons/mk6mortar/functions/fnc_unloadMagazine.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Grey * @@ -15,7 +16,6 @@ * * Public: Yes */ -#include "script_component.hpp" params ["_static","_unit"]; diff --git a/addons/mk6mortar/functions/fnc_unloadMagazineTimer.sqf b/addons/mk6mortar/functions/fnc_unloadMagazineTimer.sqf index 8ee4590f02..4c152bc7d1 100644 --- a/addons/mk6mortar/functions/fnc_unloadMagazineTimer.sqf +++ b/addons/mk6mortar/functions/fnc_unloadMagazineTimer.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Grey * @@ -16,7 +17,6 @@ * * Public: Yes */ -#include "script_component.hpp" params ["_static","_unit","_timeToUnload"]; diff --git a/addons/modules/functions/fnc_moduleInit.sqf b/addons/modules/functions/fnc_moduleInit.sqf index e4ab737db3..5e03aad13c 100644 --- a/addons/modules/functions/fnc_moduleInit.sqf +++ b/addons/modules/functions/fnc_moduleInit.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Glowbal * IV Treatment local callback @@ -15,8 +16,6 @@ * Public: No */ -#include "script_component.hpp" - if ((_this select 0) isKindOf "Module_F") then { GVAR(moduleInitCollection) pushBack (_this select 0); }; diff --git a/addons/movement/functions/fnc_addLoadToUnitContainer.sqf b/addons/movement/functions/fnc_addLoadToUnitContainer.sqf index fa788c92a2..5910f6c186 100644 --- a/addons/movement/functions/fnc_addLoadToUnitContainer.sqf +++ b/addons/movement/functions/fnc_addLoadToUnitContainer.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Add (negative numbers to subtract) a virtual mass to a units container. @@ -15,7 +16,6 @@ * * Public: No */ -#include "script_component.hpp" params [["_unit", objNull, [objNull]], ["_container", objNull, [objNull]], ["_virtualLoadToAdd", 0, [0]]]; diff --git a/addons/movement/functions/fnc_canClimb.sqf b/addons/movement/functions/fnc_canClimb.sqf index 260f76105b..808a81d582 100644 --- a/addons/movement/functions/fnc_canClimb.sqf +++ b/addons/movement/functions/fnc_canClimb.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Tests the the player can climb. @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_unit"]; diff --git a/addons/movement/functions/fnc_climb.sqf b/addons/movement/functions/fnc_climb.sqf index 1f2ecf72f4..2d5eb88786 100644 --- a/addons/movement/functions/fnc_climb.sqf +++ b/addons/movement/functions/fnc_climb.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Make the player climb over short walls. @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_unit"]; diff --git a/addons/movement/functions/fnc_handleClimb.sqf b/addons/movement/functions/fnc_handleClimb.sqf index 84f78cfcc0..6f6c7b536b 100644 --- a/addons/movement/functions/fnc_handleClimb.sqf +++ b/addons/movement/functions/fnc_handleClimb.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Handles the climb animation finishing. Called from "AnimDone" event handler. @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_unit", "_anim"]; diff --git a/addons/movement/functions/fnc_handleVirtualMass.sqf b/addons/movement/functions/fnc_handleVirtualMass.sqf index 814a0eeecb..8f035cc5ad 100644 --- a/addons/movement/functions/fnc_handleVirtualMass.sqf +++ b/addons/movement/functions/fnc_handleVirtualMass.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Recalculate the units loadCoef to emulate a mass added to uniform, vest or backpack. @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_unit"]; diff --git a/addons/movement/functions/fnc_inventoryDisplayLoad.sqf b/addons/movement/functions/fnc_inventoryDisplayLoad.sqf index f7c240f332..d107bd70b1 100644 --- a/addons/movement/functions/fnc_inventoryDisplayLoad.sqf +++ b/addons/movement/functions/fnc_inventoryDisplayLoad.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Executed every time an inventory display is opened. @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_display"]; diff --git a/addons/nametags/functions/fnc_canShow.sqf b/addons/nametags/functions/fnc_canShow.sqf index 5bccc8f91d..9cc83cfd91 100644 --- a/addons/nametags/functions/fnc_canShow.sqf +++ b/addons/nametags/functions/fnc_canShow.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: aeroson * Checks if crew info can be shown. @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" ((vehicle ACE_player) != ACE_player) && {GVAR(ShowCrewInfo)} && diff --git a/addons/nametags/functions/fnc_doShow.sqf b/addons/nametags/functions/fnc_doShow.sqf index 08ab633f28..12ac1a04cb 100644 --- a/addons/nametags/functions/fnc_doShow.sqf +++ b/addons/nametags/functions/fnc_doShow.sqf @@ -1,3 +1,5 @@ +#include "script_component.hpp" +#include "common.hpp" /* * Author: aeroson * Shows the actual text and sets text the crew info. @@ -13,8 +15,6 @@ * * Public: No */ -#include "script_component.hpp" -#include "common.hpp" private _player = ACE_player; private _vehicle = vehicle _player; diff --git a/addons/nametags/functions/fnc_drawNameTagIcon.sqf b/addons/nametags/functions/fnc_drawNameTagIcon.sqf index bfe065cf30..093496cfb8 100644 --- a/addons/nametags/functions/fnc_drawNameTagIcon.sqf +++ b/addons/nametags/functions/fnc_drawNameTagIcon.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2, esteldunedain * Draw the nametag and rank icon. @@ -20,8 +21,6 @@ * Public: No */ -#include "script_component.hpp" - TRACE_1("drawName:", _this); params ["", "_target", "", "_heightOffset"]; diff --git a/addons/nametags/functions/fnc_getCachedFlags.sqf b/addons/nametags/functions/fnc_getCachedFlags.sqf index 6e1223c8be..3fc13256e0 100644 --- a/addons/nametags/functions/fnc_getCachedFlags.sqf +++ b/addons/nametags/functions/fnc_getCachedFlags.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: * Get's flags used for onDraw3D that can be cached @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" // Determine flags from current settings private _drawName = true; diff --git a/addons/nametags/functions/fnc_getVehicleData.sqf b/addons/nametags/functions/fnc_getVehicleData.sqf index 59f5284faf..55dc758081 100644 --- a/addons/nametags/functions/fnc_getVehicleData.sqf +++ b/addons/nametags/functions/fnc_getVehicleData.sqf @@ -1,3 +1,5 @@ +#include "script_component.hpp" +#include "common.hpp" /* * Author: aeroson * Gathers and caches data needed by ace_nametags_fnc_doShow. @@ -17,8 +19,6 @@ * * Public: No */ -#include "script_component.hpp" -#include "common.hpp" params ["_type"]; diff --git a/addons/nametags/functions/fnc_initIsSpeaking.sqf b/addons/nametags/functions/fnc_initIsSpeaking.sqf index 6624f59485..62a96bf5d9 100644 --- a/addons/nametags/functions/fnc_initIsSpeaking.sqf +++ b/addons/nametags/functions/fnc_initIsSpeaking.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Glowbal, PabstMirror * Starts up a PFEH to monitor the when players are talking. @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" if (isServer) then { //If someone disconnects while speaking, reset their variable diff --git a/addons/nametags/functions/fnc_moduleNameTags.sqf b/addons/nametags/functions/fnc_moduleNameTags.sqf index c2d0cf8c79..03ced478be 100644 --- a/addons/nametags/functions/fnc_moduleNameTags.sqf +++ b/addons/nametags/functions/fnc_moduleNameTags.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: esteldunedain * Initializes the name tags module. @@ -14,8 +15,6 @@ * Public: No */ -#include "script_component.hpp" - params ["_logic", "", "_activated"]; if !(_activated) exitWith {}; diff --git a/addons/nametags/functions/fnc_onDraw3d.sqf b/addons/nametags/functions/fnc_onDraw3d.sqf index f937b230b3..fb5d29807a 100644 --- a/addons/nametags/functions/fnc_onDraw3d.sqf +++ b/addons/nametags/functions/fnc_onDraw3d.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: * Draws names and icons. @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" BEGIN_COUNTER(GVAR(onDraw3d)); diff --git a/addons/nametags/functions/fnc_setFactionRankIcons.sqf b/addons/nametags/functions/fnc_setFactionRankIcons.sqf index c0a315636b..fa7975d5e5 100644 --- a/addons/nametags/functions/fnc_setFactionRankIcons.sqf +++ b/addons/nametags/functions/fnc_setFactionRankIcons.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Sets a custom set of icons for a specified faction. @@ -22,7 +23,6 @@ * * Public: Yes */ -#include "script_component.hpp" if (isNil QGVAR(factionRanks)) then { GVAR(factionRanks) = [] call CBA_fnc_createNamespace; diff --git a/addons/nametags/functions/fnc_setText.sqf b/addons/nametags/functions/fnc_setText.sqf index 688ecabc4a..543b4fc913 100644 --- a/addons/nametags/functions/fnc_setText.sqf +++ b/addons/nametags/functions/fnc_setText.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: aeroson * Sets the text on the dialog. @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" #define TextIDC 11123 diff --git a/addons/nametags/functions/fnc_updateSettings.sqf b/addons/nametags/functions/fnc_updateSettings.sqf index 76110b4f79..56ba016064 100644 --- a/addons/nametags/functions/fnc_updateSettings.sqf +++ b/addons/nametags/functions/fnc_updateSettings.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Jonpas * Dynamically adds and removes Draw3D based on settings on run-time. @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" if (isNil QGVAR(drawHandler) && {GVAR(showPlayerNames) != 0}) then { GVAR(drawHandler) = addMissionEventHandler ["Draw3D", {_this call FUNC(onDraw3d);}]; diff --git a/addons/nightvision/functions/fnc_changeNVGBrightness.sqf b/addons/nightvision/functions/fnc_changeNVGBrightness.sqf index 8bc6521ebc..ffbdc45dea 100644 --- a/addons/nightvision/functions/fnc_changeNVGBrightness.sqf +++ b/addons/nightvision/functions/fnc_changeNVGBrightness.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Change the brightness of the unit's NVG. @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_player", "_changeInBrightness"]; TRACE_2("changeNVGBrightness",_player,_changeInBrightness); diff --git a/addons/nightvision/functions/fnc_initModule.sqf b/addons/nightvision/functions/fnc_initModule.sqf index 50f8785e91..4118360ccc 100644 --- a/addons/nightvision/functions/fnc_initModule.sqf +++ b/addons/nightvision/functions/fnc_initModule.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: BaerMitUmlaut * Initializes the settings for the disable NVGs in sight module. @@ -14,8 +15,6 @@ * Public: No */ -#include "script_component.hpp" - params ["_module"]; TRACE_1("initModule",_module); diff --git a/addons/nightvision/functions/fnc_nonDedicatedFix.sqf b/addons/nightvision/functions/fnc_nonDedicatedFix.sqf index 2a5178a595..578099846d 100644 --- a/addons/nightvision/functions/fnc_nonDedicatedFix.sqf +++ b/addons/nightvision/functions/fnc_nonDedicatedFix.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: PabstMirror * Handles the client who is the non-dedicated server turning on the fog effects. @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" TRACE_1("Starting PFEH to handling non-dedicated server running effect",GVAR(serverPriorFog)); diff --git a/addons/nightvision/functions/fnc_onCameraViewChanged.sqf b/addons/nightvision/functions/fnc_onCameraViewChanged.sqf index 08ec3afcec..09eb8e247f 100644 --- a/addons/nightvision/functions/fnc_onCameraViewChanged.sqf +++ b/addons/nightvision/functions/fnc_onCameraViewChanged.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: BaerMitUmlaut * Disables/re-enables NVGs when the player starts/stops aiming down his sight. @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_unit", "_cameraView"]; TRACE_2("onCameraViewChanged",_unit,_cameraView); diff --git a/addons/nightvision/functions/fnc_onFiredPlayer.sqf b/addons/nightvision/functions/fnc_onFiredPlayer.sqf index efd01e1fd4..19750891c9 100644 --- a/addons/nightvision/functions/fnc_onFiredPlayer.sqf +++ b/addons/nightvision/functions/fnc_onFiredPlayer.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2, Dslyecxi, PabstMirror * Change the blending when the player fires. Called from the unified fired EH only for the local player and his vehicle. @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" //IGNORE_PRIVATE_WARNING ["_unit", "_weapon", "_muzzle", "_mode", "_ammo", "_magazine", "_projectile"]; TRACE_7("firedEH:",_unit, _weapon, _muzzle, _mode, _ammo, _magazine, _projectile); diff --git a/addons/nightvision/functions/fnc_onLoadoutChanged.sqf b/addons/nightvision/functions/fnc_onLoadoutChanged.sqf index 32f1914bfa..59be659f53 100644 --- a/addons/nightvision/functions/fnc_onLoadoutChanged.sqf +++ b/addons/nightvision/functions/fnc_onLoadoutChanged.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Dslyecxi, PabstMirror * Refreshes nvg effect if switching NVG goggles. @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_player"]; TRACE_1("onLoadoutChange",_player); diff --git a/addons/nightvision/functions/fnc_onVisionModeChanged.sqf b/addons/nightvision/functions/fnc_onVisionModeChanged.sqf index f28e39b964..b4bdc7f4f9 100644 --- a/addons/nightvision/functions/fnc_onVisionModeChanged.sqf +++ b/addons/nightvision/functions/fnc_onVisionModeChanged.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: BaerMitUmlaut, Dslyecxi, PabstMirror * Disables turning on NVGs while the player aims down his sight. @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_unit", "_visionMode"]; TRACE_2("onVisionModeChanged",_unit,_visionMode); diff --git a/addons/nightvision/functions/fnc_pfeh.sqf b/addons/nightvision/functions/fnc_pfeh.sqf index 0784b4f88a..c889b59a47 100644 --- a/addons/nightvision/functions/fnc_pfeh.sqf +++ b/addons/nightvision/functions/fnc_pfeh.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Dslyecxi, PabstMirror * PFEH to handle refreshing effects. @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" if ((currentVisionMode ACE_player) != 1) exitWith { GVAR(running) = false; diff --git a/addons/nightvision/functions/fnc_refreshGoggleType.sqf b/addons/nightvision/functions/fnc_refreshGoggleType.sqf index 1ebadf56ae..8943784646 100644 --- a/addons/nightvision/functions/fnc_refreshGoggleType.sqf +++ b/addons/nightvision/functions/fnc_refreshGoggleType.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Dslyecxi, PabstMirror * Determines night vision source (player/vehicle) - Updates UI based on type. @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" TRACE_1("refreshGoggleType",_this); diff --git a/addons/nightvision/functions/fnc_scaleCtrl.sqf b/addons/nightvision/functions/fnc_scaleCtrl.sqf index b5bb80715d..e01a798580 100644 --- a/addons/nightvision/functions/fnc_scaleCtrl.sqf +++ b/addons/nightvision/functions/fnc_scaleCtrl.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Dslyecxi, PabstMirror * Determines night vision source (player/vehicle) - Updates UI based on type. @@ -15,7 +16,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_ctrl", "_default_pos", "_scale"]; diff --git a/addons/nightvision/functions/fnc_setupDisplayEffects.sqf b/addons/nightvision/functions/fnc_setupDisplayEffects.sqf index 8201b9a0f5..9137419202 100644 --- a/addons/nightvision/functions/fnc_setupDisplayEffects.sqf +++ b/addons/nightvision/functions/fnc_setupDisplayEffects.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Dslyecxi, PabstMirror * Handles setting up the effects: fog, ppEffects and the RscTittle. @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_activated"]; TRACE_1("setupDisplayEffects",_activated); diff --git a/addons/nlaw/functions/fnc_attackProfile.sqf b/addons/nlaw/functions/fnc_attackProfile.sqf index 778a1924b3..acc4330083 100644 --- a/addons/nlaw/functions/fnc_attackProfile.sqf +++ b/addons/nlaw/functions/fnc_attackProfile.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: PabstMirror * NLAW missile guidance attack profile. @@ -15,7 +16,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_seekerTargetPos", "_args", "_attackProfileStateParams"]; _args params ["_firedEH", "_launchParams"]; diff --git a/addons/nlaw/functions/fnc_keyDown.sqf b/addons/nlaw/functions/fnc_keyDown.sqf index 82dfbbcc2e..fcc320360c 100644 --- a/addons/nlaw/functions/fnc_keyDown.sqf +++ b/addons/nlaw/functions/fnc_keyDown.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: PabstMirror * Handles the track key being held down. @@ -14,8 +15,6 @@ * * Public: No */ -// #define DEBUG_MODE_FULL -#include "script_component.hpp" TRACE_1("lock key down",GVAR(isLockKeyDown)); diff --git a/addons/nlaw/functions/fnc_onFired.sqf b/addons/nlaw/functions/fnc_onFired.sqf index 7049dfb918..0552afcd86 100644 --- a/addons/nlaw/functions/fnc_onFired.sqf +++ b/addons/nlaw/functions/fnc_onFired.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: PabstMirror * Sets up missile guidance state arrays (called from missileGuidance's onFired). @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_firedEH", "_launchParams", "_flightParams", "_seekerParams", "_stateParams"]; _firedEH params ["_shooter","","","","","","_projectile"]; diff --git a/addons/nlaw/functions/fnc_seeker.sqf b/addons/nlaw/functions/fnc_seeker.sqf index 850c966f56..eeb2e0794c 100644 --- a/addons/nlaw/functions/fnc_seeker.sqf +++ b/addons/nlaw/functions/fnc_seeker.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: PabstMirror * Handles the top down attack seeker for missile guidance. @@ -15,8 +16,6 @@ * * Public: No */ -// #define DEBUG_MODE_FULL -#include "script_component.hpp" params ["", "_args", "_seekerStateParams"]; _args params ["_firedEH", "_launchParams", "", "_seekerParams", "_stateParams"]; diff --git a/addons/optics/functions/fnc_handleFired.sqf b/addons/optics/functions/fnc_handleFired.sqf index 435e7e8e7c..fbcb177f2e 100644 --- a/addons/optics/functions/fnc_handleFired.sqf +++ b/addons/optics/functions/fnc_handleFired.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Taosenai * Adapted By: KoffeinFlummi, commy2 @@ -16,8 +17,6 @@ * Public: No */ -#include "script_component.hpp" - // IGNORE_PRIVATE_WARNING ["_unit", "_weapon", "_muzzle", "_mode", "_ammo", "_magazine", "_projectile", "_vehicle", "_gunner", "_turret"]; TRACE_10("firedEH:",_unit, _weapon, _muzzle, _mode, _ammo, _magazine, _projectile, _vehicle, _gunner, _turret); diff --git a/addons/optics/functions/fnc_onDrawScope.sqf b/addons/optics/functions/fnc_onDrawScope.sqf index 1f2f86e21a..22b9ddc2b2 100644 --- a/addons/optics/functions/fnc_onDrawScope.sqf +++ b/addons/optics/functions/fnc_onDrawScope.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * @@ -14,8 +15,6 @@ * Public: No */ -#include "script_component.hpp" - disableSerialization; params ["_display"]; diff --git a/addons/optics/functions/fnc_onDrawScope2D.sqf b/addons/optics/functions/fnc_onDrawScope2D.sqf index cdfcca6b00..9031ca8ba7 100644 --- a/addons/optics/functions/fnc_onDrawScope2D.sqf +++ b/addons/optics/functions/fnc_onDrawScope2D.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Helper function for updating the 2d and 3d scope controls @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" disableSerialization; diff --git a/addons/optionsmenu/functions/fnc_debugDumpToClipboard.sqf b/addons/optionsmenu/functions/fnc_debugDumpToClipboard.sqf index a502934f50..3b662eb121 100644 --- a/addons/optionsmenu/functions/fnc_debugDumpToClipboard.sqf +++ b/addons/optionsmenu/functions/fnc_debugDumpToClipboard.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: PabstMirror * Dumps debug info to clipboard. @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" #define MIN_ARRAY_SIZE 50 diff --git a/addons/optionsmenu/init_loadMainMenuBox.sqf b/addons/optionsmenu/init_loadMainMenuBox.sqf index 894bd45124..5b21d7aabb 100644 --- a/addons/optionsmenu/init_loadMainMenuBox.sqf +++ b/addons/optionsmenu/init_loadMainMenuBox.sqf @@ -1,3 +1,5 @@ +#include "\a3\ui_f\hpp\defineResinclDesign.inc" +#include "script_component.hpp" /* * Author: PabstMirror * Loads the version info HTML box from main menu @@ -13,8 +15,6 @@ * * Public: No */ -#include "\a3\ui_f\hpp\defineResinclDesign.inc" -#include "script_component.hpp" params ["_display"]; private _controlsGroup = _display displayCtrl IDC_MAIN_INFO; diff --git a/addons/overheating/functions/fnc_calculateCooling.sqf b/addons/overheating/functions/fnc_calculateCooling.sqf index 2986bcb9c7..01983814f5 100644 --- a/addons/overheating/functions/fnc_calculateCooling.sqf +++ b/addons/overheating/functions/fnc_calculateCooling.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: esteldunedain * Calculate the cooling down of a weapon over a time interval. @@ -15,7 +16,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_temperature", "_barrelMass", "_totalTime"]; diff --git a/addons/overheating/functions/fnc_canCheckSpareBarrelsTemperatures.sqf b/addons/overheating/functions/fnc_canCheckSpareBarrelsTemperatures.sqf index ae0dc760d3..ca4d76e77b 100644 --- a/addons/overheating/functions/fnc_canCheckSpareBarrelsTemperatures.sqf +++ b/addons/overheating/functions/fnc_canCheckSpareBarrelsTemperatures.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Grey-Soldierman * Return true if player can check temperatures of spare barrels @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_player"]; diff --git a/addons/overheating/functions/fnc_canSwapBarrel.sqf b/addons/overheating/functions/fnc_canSwapBarrel.sqf index 8d261db408..53104e19d5 100644 --- a/addons/overheating/functions/fnc_canSwapBarrel.sqf +++ b/addons/overheating/functions/fnc_canSwapBarrel.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Grey-Soldierman * Return true if player can swap barrel @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_unit","_weapon"]; //Check if weapon can have its barrel swapped. If not exit out of function diff --git a/addons/overheating/functions/fnc_canUnjam.sqf b/addons/overheating/functions/fnc_canUnjam.sqf index f2ab7e8cc6..06511f79cd 100644 --- a/addons/overheating/functions/fnc_canUnjam.sqf +++ b/addons/overheating/functions/fnc_canUnjam.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Commy2 and esteldunedain * Return true if the unit can unjam it's current weapon @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_unit"]; TRACE_1("_unit",_unit); diff --git a/addons/overheating/functions/fnc_checkSpareBarrelsTemperatures.sqf b/addons/overheating/functions/fnc_checkSpareBarrelsTemperatures.sqf index 8f4280b261..4c7eba2919 100644 --- a/addons/overheating/functions/fnc_checkSpareBarrelsTemperatures.sqf +++ b/addons/overheating/functions/fnc_checkSpareBarrelsTemperatures.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: esteldunedain * Make the player check the temperature of his spare barrels @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_player"]; diff --git a/addons/overheating/functions/fnc_checkTemperature.sqf b/addons/overheating/functions/fnc_checkTemperature.sqf index c58d14a29d..b7be4f4c13 100644 --- a/addons/overheating/functions/fnc_checkTemperature.sqf +++ b/addons/overheating/functions/fnc_checkTemperature.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Commy2 and esteldunedain * Make the player check the temperature of his weapon @@ -15,7 +16,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_assistant", "_gunner", "_weapon"]; TRACE_3("params",_assistant,_gunner,_weapon); diff --git a/addons/overheating/functions/fnc_clearJam.sqf b/addons/overheating/functions/fnc_clearJam.sqf index 4dcdaa0caf..44b219fda2 100644 --- a/addons/overheating/functions/fnc_clearJam.sqf +++ b/addons/overheating/functions/fnc_clearJam.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Commy2 * Make the unit clear the jam from a weapon @@ -15,7 +16,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_unit", "_weapon", ["_skipAnim", false]]; TRACE_3("params",_unit,_weapon,_skipAnim); diff --git a/addons/overheating/functions/fnc_displayTemperature.sqf b/addons/overheating/functions/fnc_displayTemperature.sqf index b02a555bd4..006d81f8f5 100644 --- a/addons/overheating/functions/fnc_displayTemperature.sqf +++ b/addons/overheating/functions/fnc_displayTemperature.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Commy2 and esteldunedain * Displays the weapon temperature @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_unit", "_weapon"]; TRACE_2("params",_unit,_weapon); diff --git a/addons/overheating/functions/fnc_firedEH.sqf b/addons/overheating/functions/fnc_firedEH.sqf index e9bf89eef7..dd6b408a21 100644 --- a/addons/overheating/functions/fnc_firedEH.sqf +++ b/addons/overheating/functions/fnc_firedEH.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Commy2 and esteldunedain * Handle weapon fire. Called from the unified fired EH 1- always for the local player 2- and for non local players if dispersion is simulated. @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" //IGNORE_PRIVATE_WARNING ["_unit", "_weapon", "_muzzle", "_mode", "_ammo", "_magazine", "_projectile", "_vehicle", "_gunner", "_turret"]; TRACE_10("firedEH:",_unit, _weapon, _muzzle, _mode, _ammo, _magazine, _projectile, _vehicle, _gunner, _turret); diff --git a/addons/overheating/functions/fnc_getWeaponData.sqf b/addons/overheating/functions/fnc_getWeaponData.sqf index 21f6f156b8..a055f65b1e 100644 --- a/addons/overheating/functions/fnc_getWeaponData.sqf +++ b/addons/overheating/functions/fnc_getWeaponData.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: PabstMirror and esteldunedain * Get weapon data with caching @@ -15,7 +16,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_weapon"]; diff --git a/addons/overheating/functions/fnc_handleTakeEH.sqf b/addons/overheating/functions/fnc_handleTakeEH.sqf index 0196629a45..d347e5f071 100644 --- a/addons/overheating/functions/fnc_handleTakeEH.sqf +++ b/addons/overheating/functions/fnc_handleTakeEH.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Commy2 * Handle "take" event @@ -16,7 +17,6 @@ * * Public: No */ -#include "script_component.hpp" if !(GVAR(unJamOnreload)) exitWith {}; diff --git a/addons/overheating/functions/fnc_jamWeapon.sqf b/addons/overheating/functions/fnc_jamWeapon.sqf index 02966d0067..f8518add8e 100644 --- a/addons/overheating/functions/fnc_jamWeapon.sqf +++ b/addons/overheating/functions/fnc_jamWeapon.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Commy2, based on KK_fnc_playerWeaponMulfunction from KillzoneKid * Jam the weapon @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_unit", "_weapon"]; TRACE_2("params",_unit,_weapon); diff --git a/addons/overheating/functions/fnc_loadCoolestSpareBarrel.sqf b/addons/overheating/functions/fnc_loadCoolestSpareBarrel.sqf index 6a155a29b7..5b7ce31571 100644 --- a/addons/overheating/functions/fnc_loadCoolestSpareBarrel.sqf +++ b/addons/overheating/functions/fnc_loadCoolestSpareBarrel.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: esteldunedain * Collect the temperature of all the spare barrels a unit has and load the @@ -19,7 +20,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_assistant", "_gunner", "_weapon", "_weaponTemp", "_barrelMass"]; TRACE_5("loadCoolestSpareBarrel1",_assistant,_gunner,_weapon,_weaponTemp,_barrelMass); diff --git a/addons/overheating/functions/fnc_overheat.sqf b/addons/overheating/functions/fnc_overheat.sqf index cc30e2ad22..cff8807003 100644 --- a/addons/overheating/functions/fnc_overheat.sqf +++ b/addons/overheating/functions/fnc_overheat.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Commy2 and esteldunedain * Handle weapon fire, heat up the weapon @@ -18,7 +19,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_unit", "_weapon", "", "", "_ammo", "", "_projectile"]; TRACE_4("params",_unit,_weapon,_ammo,_projectile); diff --git a/addons/overheating/functions/fnc_sendSpareBarrelsTemperaturesHint.sqf b/addons/overheating/functions/fnc_sendSpareBarrelsTemperaturesHint.sqf index 0486dd5208..ff71814ea8 100644 --- a/addons/overheating/functions/fnc_sendSpareBarrelsTemperaturesHint.sqf +++ b/addons/overheating/functions/fnc_sendSpareBarrelsTemperaturesHint.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: esteldunedain * Collect the temperature of all the spare barrels a unit has and send a hint @@ -16,7 +17,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_player","_unit"]; diff --git a/addons/overheating/functions/fnc_swapBarrel.sqf b/addons/overheating/functions/fnc_swapBarrel.sqf index 40e4f193b8..b24ac39f3c 100644 --- a/addons/overheating/functions/fnc_swapBarrel.sqf +++ b/addons/overheating/functions/fnc_swapBarrel.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Commy2 * Make a unit start swapping it's barrel @@ -15,7 +16,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_assistant", "_gunner", "_weapon"]; TRACE_3("params",_assistant,_gunner,_weapon); diff --git a/addons/overheating/functions/fnc_swapBarrelAssistant.sqf b/addons/overheating/functions/fnc_swapBarrelAssistant.sqf index fd75130be3..c8fbba6e3c 100644 --- a/addons/overheating/functions/fnc_swapBarrelAssistant.sqf +++ b/addons/overheating/functions/fnc_swapBarrelAssistant.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: esteldunedain, Commy2 * Make a unit start swapping the barrel of another unit @@ -15,7 +16,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_assistant", "_gunner", "_weapon"]; TRACE_3("params",_assistant,_gunner,_weapon); diff --git a/addons/overheating/functions/fnc_swapBarrelCallback.sqf b/addons/overheating/functions/fnc_swapBarrelCallback.sqf index 99cf8298f5..0b0dec4916 100644 --- a/addons/overheating/functions/fnc_swapBarrelCallback.sqf +++ b/addons/overheating/functions/fnc_swapBarrelCallback.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Commy2, esteldunedain * Swap barrel callback @@ -15,8 +16,6 @@ * * Public: No */ -// #define DEBUG_MODE_FULL -#include "script_component.hpp" params ["_assistant", "_gunner", "_weapon"]; TRACE_3("params",_assistant,_gunner,_weapon); diff --git a/addons/overheating/functions/fnc_updateSpareBarrelsTemperaturesThread.sqf b/addons/overheating/functions/fnc_updateSpareBarrelsTemperaturesThread.sqf index aaefe4f037..d2a499fb94 100644 --- a/addons/overheating/functions/fnc_updateSpareBarrelsTemperaturesThread.sqf +++ b/addons/overheating/functions/fnc_updateSpareBarrelsTemperaturesThread.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: esteldunedain * Calculate cooldown of all the stored spare barrels. @@ -13,8 +14,6 @@ * * Public: No */ -// #define DEBUG_MODE_FULL -#include "script_component.hpp" private _pairs = []; TRACE_1("updateSpareBarrelsTemperaturesThread1",GVAR(storedSpareBarrels)); diff --git a/addons/overheating/functions/fnc_updateTemperature.sqf b/addons/overheating/functions/fnc_updateTemperature.sqf index f56fc05e92..475f0454f9 100644 --- a/addons/overheating/functions/fnc_updateTemperature.sqf +++ b/addons/overheating/functions/fnc_updateTemperature.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: esteldunedain * Update temperature of a weapon. @@ -15,7 +16,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_unit", "_weapon", "_heatIncrement"]; TRACE_3("params",_unit,_weapon,_heatIncrement); diff --git a/addons/overheating/functions/fnc_updateTemperatureThread.sqf b/addons/overheating/functions/fnc_updateTemperatureThread.sqf index 1d1574b1ed..03f2bee53f 100644 --- a/addons/overheating/functions/fnc_updateTemperatureThread.sqf +++ b/addons/overheating/functions/fnc_updateTemperatureThread.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: esteldunedain * Update cooldown calculation of all player weapons at regular intervals. @@ -14,8 +15,6 @@ * Public: No */ -#include "script_component.hpp" - private _currentWeapon = currentWeapon ACE_player; if ((_currentWeapon != "") && {_currentWeapon == primaryWeapon ACE_player || {_currentWeapon == handgunWeapon ACE_player}}) then { [ACE_player, _currentWeapon, 0] call FUNC(updateTemperature); diff --git a/addons/overpressure/functions/fnc_cacheOverPressureValues.sqf b/addons/overpressure/functions/fnc_cacheOverPressureValues.sqf index 96d45ffe04..7e984f993c 100644 --- a/addons/overpressure/functions/fnc_cacheOverPressureValues.sqf +++ b/addons/overpressure/functions/fnc_cacheOverPressureValues.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: joko // Jonas * Cache the shot data for a given weapon/mag/ammo combination. @@ -19,7 +20,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_weapon", "_ammo", "_magazine"]; TRACE_3("Parameter",_weapon,_magazine,_ammo); diff --git a/addons/overpressure/functions/fnc_firedEHBB.sqf b/addons/overpressure/functions/fnc_firedEHBB.sqf index e1370f0e9e..3c65ca813c 100644 --- a/addons/overpressure/functions/fnc_firedEHBB.sqf +++ b/addons/overpressure/functions/fnc_firedEHBB.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: joko // Jonas * Handle fire of local launchers. Called from the unified fired EH only for the local player. @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" //IGNORE_PRIVATE_WARNING ["_unit", "_weapon", "_muzzle", "_mode", "_ammo", "_magazine", "_projectile", "_vehicle", "_gunner", "_turret"]; TRACE_10("firedEH:",_unit, _weapon, _muzzle, _mode, _ammo, _magazine, _projectile, _vehicle, _gunner, _turret); diff --git a/addons/overpressure/functions/fnc_firedEHOP.sqf b/addons/overpressure/functions/fnc_firedEHOP.sqf index 0c02526928..5871fae9b8 100644 --- a/addons/overpressure/functions/fnc_firedEHOP.sqf +++ b/addons/overpressure/functions/fnc_firedEHOP.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: joko // Jonas * Handle fire of Vehicle Weapons. Called from the unified fired EH only for the local player vehicle. @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" //IGNORE_PRIVATE_WARNING ["_unit", "_weapon", "_muzzle", "_mode", "_ammo", "_magazine", "_projectile", "_vehicle", "_gunner", "_turret"]; TRACE_10("firedEH:",_unit, _weapon, _muzzle, _mode, _ammo, _magazine, _projectile, _vehicle, _gunner, _turret); diff --git a/addons/overpressure/functions/fnc_getDistance.sqf b/addons/overpressure/functions/fnc_getDistance.sqf index 5f76c12d1a..3e36a3ea78 100644 --- a/addons/overpressure/functions/fnc_getDistance.sqf +++ b/addons/overpressure/functions/fnc_getDistance.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 and esteldunedain * Calculate the distance to the first intersection of a line @@ -16,7 +17,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_posASL", "_direction", "_maxDistance", "_shooter"]; TRACE_4("params",_posASL,_direction,_maxDistance, _shooter); diff --git a/addons/overpressure/functions/fnc_overpressureDamage.sqf b/addons/overpressure/functions/fnc_overpressureDamage.sqf index b8e4054e95..53b02fe10d 100644 --- a/addons/overpressure/functions/fnc_overpressureDamage.sqf +++ b/addons/overpressure/functions/fnc_overpressureDamage.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 and esteldunedain * Calculate and apply backblast damage to potentially affected local units @@ -19,7 +20,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_firer", "_posASL", "_direction", "_weapon", "_magazine", "_ammo"]; diff --git a/addons/parachute/XEH_postInit.sqf b/addons/parachute/XEH_postInit.sqf index 73ea9276a1..06e02f0757 100644 --- a/addons/parachute/XEH_postInit.sqf +++ b/addons/parachute/XEH_postInit.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Garth 'L-H' de Wet * Initialises the parachute system. @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" if (!hasInterface) exitWith {}; diff --git a/addons/parachute/XEH_preInit.sqf b/addons/parachute/XEH_preInit.sqf index e5fa52644b..5a10c0bd83 100644 --- a/addons/parachute/XEH_preInit.sqf +++ b/addons/parachute/XEH_preInit.sqf @@ -1,19 +1,6 @@ -/* - * Author: Garth 'L-H' de Wet - * Initialises the parachute system. - * - * Arguments: - * None - * - * Return Value: - * None - * - * Example: - * None - * - * Public: No - */ #include "script_component.hpp" +// Author: Garth 'L-H' de Wet +// Initialises the parachute system. ADDON = false; diff --git a/addons/parachute/functions/fnc_cutParachute.sqf b/addons/parachute/functions/fnc_cutParachute.sqf index af56235ba0..286673af41 100644 --- a/addons/parachute/functions/fnc_cutParachute.sqf +++ b/addons/parachute/functions/fnc_cutParachute.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: joko, Jonas, SilentSpike * Perform the cut parachute action (move unit out and delete) @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_unit", "_parachute"]; _unit action ["GetOut", _parachute]; deleteVehicle _parachute; diff --git a/addons/parachute/functions/fnc_handleInfoDisplayChanged.sqf b/addons/parachute/functions/fnc_handleInfoDisplayChanged.sqf index 644bd29c94..280765d8a2 100644 --- a/addons/parachute/functions/fnc_handleInfoDisplayChanged.sqf +++ b/addons/parachute/functions/fnc_handleInfoDisplayChanged.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Hides the height and velocity display while freefalling or parachuting on higher difficulties. @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_dialog", "_type"]; diff --git a/addons/parachute/functions/fnc_handleReserve.sqf b/addons/parachute/functions/fnc_handleReserve.sqf index 7b92d8e9f4..3df8d6607e 100644 --- a/addons/parachute/functions/fnc_handleReserve.sqf +++ b/addons/parachute/functions/fnc_handleReserve.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: joko, Jonas, SilentSpike * Cache reserve parachute on player unit when their inventory changes and add it when they open their parachute @@ -14,8 +15,6 @@ * Public: No */ -#include "script_component.hpp" - params ["_unit"]; private _backpack = backpack _unit; diff --git a/addons/parachute/functions/fnc_hideAltimeter.sqf b/addons/parachute/functions/fnc_hideAltimeter.sqf index 50f1eac503..280ee286b4 100644 --- a/addons/parachute/functions/fnc_hideAltimeter.sqf +++ b/addons/parachute/functions/fnc_hideAltimeter.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Garth 'L-H' de Wet * Removes the altimeter from the screen. @@ -13,6 +14,5 @@ * * Public: No */ -#include "script_component.hpp" GVAR(AltimeterActive) = false; "ACE_Altimeter" cutText ["","PLAIN",0,true]; diff --git a/addons/parachute/functions/fnc_showAltimeter.sqf b/addons/parachute/functions/fnc_showAltimeter.sqf index c93775e135..d4aa11f883 100644 --- a/addons/parachute/functions/fnc_showAltimeter.sqf +++ b/addons/parachute/functions/fnc_showAltimeter.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Garth 'L-H' de Wet * Displays the altimeter on screen. @@ -13,7 +14,6 @@ * * Public: Yes */ -#include "script_component.hpp" params ["_unit"]; diff --git a/addons/pylons/functions/fnc_canConfigurePylons.sqf b/addons/pylons/functions/fnc_canConfigurePylons.sqf index c679b9592d..546d3e6766 100644 --- a/addons/pylons/functions/fnc_canConfigurePylons.sqf +++ b/addons/pylons/functions/fnc_canConfigurePylons.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: 654wak654 * Checks if given unit can access the pylon configuration dialog for the given aircraft. @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_unit", "_aircraft"]; diff --git a/addons/pylons/functions/fnc_configurePylons.sqf b/addons/pylons/functions/fnc_configurePylons.sqf index 401063f8a9..81313ce61e 100644 --- a/addons/pylons/functions/fnc_configurePylons.sqf +++ b/addons/pylons/functions/fnc_configurePylons.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: 654wak654 * Recursively shows the progress bar for each configured pylon. @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_pylonsToConfigure", "_currentPylon"]; diff --git a/addons/pylons/functions/fnc_handleDisconnect.sqf b/addons/pylons/functions/fnc_handleDisconnect.sqf index f255b36535..9ad646eb31 100644 --- a/addons/pylons/functions/fnc_handleDisconnect.sqf +++ b/addons/pylons/functions/fnc_handleDisconnect.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: 654wak654 * Cleans up pylons on client disconnect. @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" params ["", "", "_uid"]; diff --git a/addons/pylons/functions/fnc_onButtonApply.sqf b/addons/pylons/functions/fnc_onButtonApply.sqf index ae27e98d4c..5603ed8d94 100644 --- a/addons/pylons/functions/fnc_onButtonApply.sqf +++ b/addons/pylons/functions/fnc_onButtonApply.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: 654wak654 * Starts the pylon configuration. @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" // Check for FRIES change private _checkbox = CONTROL(ID_DIALOG) ID_CHECKBOX_FRIES; diff --git a/addons/pylons/functions/fnc_onButtonClose.sqf b/addons/pylons/functions/fnc_onButtonClose.sqf index fa06f3d506..c0f51e634a 100644 --- a/addons/pylons/functions/fnc_onButtonClose.sqf +++ b/addons/pylons/functions/fnc_onButtonClose.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: 654wak654 * Handles the closing of the dialog. @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" GVAR(currentAircraft) setVariable [QGVAR(currentUser), objNull, true]; GVAR(currentAircraftNamespace) setVariable [getPlayerUID ace_player, nil, true]; // Remove var from namespace, no need to keep objNull diff --git a/addons/pylons/functions/fnc_onButtonDelete.sqf b/addons/pylons/functions/fnc_onButtonDelete.sqf index 8d1fdee6de..eaf16cd99a 100644 --- a/addons/pylons/functions/fnc_onButtonDelete.sqf +++ b/addons/pylons/functions/fnc_onButtonDelete.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: 654wak654 * Deletes the selected pylon configuration from profileNamespace. @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" private _loadoutName = lbText [ID_LIST_LOADOUTS, lbCurSel ID_LIST_LOADOUTS]; diff --git a/addons/pylons/functions/fnc_onButtonLoad.sqf b/addons/pylons/functions/fnc_onButtonLoad.sqf index 9092d0a910..af3183073a 100644 --- a/addons/pylons/functions/fnc_onButtonLoad.sqf +++ b/addons/pylons/functions/fnc_onButtonLoad.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: 654wak654 * Loads selected pylon configuration from either config or profileNamespace. @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" [false] call FUNC(onPylonMirror); (CONTROL(ID_DIALOG) ID_CHECKBOX_MIRROR) cbSetChecked false; diff --git a/addons/pylons/functions/fnc_onButtonSave.sqf b/addons/pylons/functions/fnc_onButtonSave.sqf index c20c8928ec..8f30ad1a58 100644 --- a/addons/pylons/functions/fnc_onButtonSave.sqf +++ b/addons/pylons/functions/fnc_onButtonSave.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: 654wak654 * Saves the selected pylon configuration to profileNamespace. @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" private _loadoutName = ctrlText ID_EDIT_LOADOUTNAME; private _aircraftLoadouts = profileNamespace getVariable [QGVAR(aircraftLoadouts), []]; diff --git a/addons/pylons/functions/fnc_onButtonTurret.sqf b/addons/pylons/functions/fnc_onButtonTurret.sqf index 4554075c37..e6828bab99 100644 --- a/addons/pylons/functions/fnc_onButtonTurret.sqf +++ b/addons/pylons/functions/fnc_onButtonTurret.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: 654wak654 * Handles init and click events of turret switch buttons. @@ -15,7 +16,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_ctrl", "_switch", "_turret"]; diff --git a/addons/pylons/functions/fnc_onComboSelChange.sqf b/addons/pylons/functions/fnc_onComboSelChange.sqf index 97130ea54d..aa71c65099 100644 --- a/addons/pylons/functions/fnc_onComboSelChange.sqf +++ b/addons/pylons/functions/fnc_onComboSelChange.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: 654wak654 * Handles various UI changes when a combobox' selection changes. @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_ctrl", "_index"]; diff --git a/addons/pylons/functions/fnc_onNameChange.sqf b/addons/pylons/functions/fnc_onNameChange.sqf index 9915aeee70..70344baa80 100644 --- a/addons/pylons/functions/fnc_onNameChange.sqf +++ b/addons/pylons/functions/fnc_onNameChange.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: 654wak654 * Called when current loadout name is changed. @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" if ((ctrlText ID_EDIT_LOADOUTNAME) in GVAR(defaultLoadoutNames)) then { ctrlEnable [ID_BUTTON_SAVE, false]; diff --git a/addons/pylons/functions/fnc_onPylonMirror.sqf b/addons/pylons/functions/fnc_onPylonMirror.sqf index 55987b2b94..949668ceb8 100644 --- a/addons/pylons/functions/fnc_onPylonMirror.sqf +++ b/addons/pylons/functions/fnc_onPylonMirror.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: 654wak654 * Called when the "mirror" checkbox on the loadout dialog is checked. @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_checked"]; diff --git a/addons/pylons/functions/fnc_showDialog.sqf b/addons/pylons/functions/fnc_showDialog.sqf index c7836c07b1..2ce438e0ab 100644 --- a/addons/pylons/functions/fnc_showDialog.sqf +++ b/addons/pylons/functions/fnc_showDialog.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: 654wak654 * Shows the aircraft loadout dialog for given aircraft. @@ -14,7 +15,6 @@ * * Public: Yes */ -#include "script_component.hpp" params ["_aircraft", ["_isCurator", false]]; diff --git a/addons/quickmount/functions/fnc_getInNearest.sqf b/addons/quickmount/functions/fnc_getInNearest.sqf index 49f1f3521c..e068d2c0e6 100644 --- a/addons/quickmount/functions/fnc_getInNearest.sqf +++ b/addons/quickmount/functions/fnc_getInNearest.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Kingsley * Mount the player in the vehicle they are directly looking at based on their distance. @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" if (!GVAR(enabled) || {isNull ACE_player} || diff --git a/addons/quickmount/functions/fnc_moduleInit.sqf b/addons/quickmount/functions/fnc_moduleInit.sqf index 92df787737..216cda90c0 100644 --- a/addons/quickmount/functions/fnc_moduleInit.sqf +++ b/addons/quickmount/functions/fnc_moduleInit.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Kingsley * Initializes the quick-mount module. @@ -12,7 +13,6 @@ * * Public: No */ -#include "script_component.hpp" if (!isServer) exitWith {}; diff --git a/addons/rangecard/functions/fnc_calculateRangeCard.sqf b/addons/rangecard/functions/fnc_calculateRangeCard.sqf index 5bb12e220a..ebeadf6b7e 100644 --- a/addons/rangecard/functions/fnc_calculateRangeCard.sqf +++ b/addons/rangecard/functions/fnc_calculateRangeCard.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Ruthberg * Calculates the range card data @@ -29,7 +30,6 @@ * * Public: No */ -#include "script_component.hpp" params [ "_scopeBaseAngle", "_boreHeight", "_airFriction", "_muzzleVelocity", "_temperature", "_barometricPressure", "_relativeHumidity", "_simSteps", diff --git a/addons/rangecard/functions/fnc_canCopy.sqf b/addons/rangecard/functions/fnc_canCopy.sqf index 8984192669..ee85bcf096 100644 --- a/addons/rangecard/functions/fnc_canCopy.sqf +++ b/addons/rangecard/functions/fnc_canCopy.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Authors: Ruthberg * Checks if the target has a copyable range card @@ -13,6 +14,5 @@ * * Public: No */ -#include "script_component.hpp" ((primaryWeapon _this) != "" && [_this] call EFUNC(common,isPlayer) && [_this, "ACE_RangeCard"] call EFUNC(common,hasItem)) diff --git a/addons/rangecard/functions/fnc_canShow.sqf b/addons/rangecard/functions/fnc_canShow.sqf index d81bba9485..6b3cf6997a 100644 --- a/addons/rangecard/functions/fnc_canShow.sqf +++ b/addons/rangecard/functions/fnc_canShow.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Authors: Ruthberg * Tests if the Range Card can be shown @@ -13,6 +14,5 @@ * * Public: No */ -#include "script_component.hpp" (GVAR(ammoClass) != "" && GVAR(magazineClass) != "" && GVAR(weaponClass) != "" && !GVAR(RangeCardOpened) && ("ACE_RangeCard" in (uniformItems ACE_player)) || ("ACE_RangeCard" in (vestItems ACE_player))) diff --git a/addons/rangecard/functions/fnc_canShowCopy.sqf b/addons/rangecard/functions/fnc_canShowCopy.sqf index b6e2d8d68d..e4eb28b60b 100644 --- a/addons/rangecard/functions/fnc_canShowCopy.sqf +++ b/addons/rangecard/functions/fnc_canShowCopy.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Authors: Ruthberg * Tests if the Range Card copy can be shown @@ -13,6 +14,5 @@ * * Public: No */ -#include "script_component.hpp" (GVAR(ammoClassCopy) != "" && GVAR(magazineClassCopy) != "" && GVAR(weaponClassCopy) != "" && !GVAR(RangeCardOpened) && ("ACE_RangeCard" in (uniformItems ACE_player)) || ("ACE_RangeCard" in (vestItems ACE_player))) diff --git a/addons/rangecard/functions/fnc_onCloseDialog.sqf b/addons/rangecard/functions/fnc_onCloseDialog.sqf index 68d12c8c84..0a93eb897c 100644 --- a/addons/rangecard/functions/fnc_onCloseDialog.sqf +++ b/addons/rangecard/functions/fnc_onCloseDialog.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: joko // Jonas * Add the Reserve Parachute to Units or Save Backpack if is a Parachute in Unit @@ -14,7 +15,5 @@ * Public: No */ -#include "script_component.hpp" - uiNamespace setVariable ['RangleCard_Display', nil]; GVAR(RangeCardOpened) = false; diff --git a/addons/rangecard/functions/fnc_openRangeCard.sqf b/addons/rangecard/functions/fnc_openRangeCard.sqf index 5801b594be..ed2bb9e241 100644 --- a/addons/rangecard/functions/fnc_openRangeCard.sqf +++ b/addons/rangecard/functions/fnc_openRangeCard.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Authors: Ruthberg * Opens the range card dialog @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" if (GVAR(RangeCardOpened)) exitWith {}; diff --git a/addons/rangecard/functions/fnc_updateClassNames.sqf b/addons/rangecard/functions/fnc_updateClassNames.sqf index 8af70eb02b..e13198bcfc 100644 --- a/addons/rangecard/functions/fnc_updateClassNames.sqf +++ b/addons/rangecard/functions/fnc_updateClassNames.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Authors: Ruthberg * Updates the ammo and weapon class names @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" private _unit = _this; diff --git a/addons/rangecard/functions/fnc_updateRangeCard.sqf b/addons/rangecard/functions/fnc_updateRangeCard.sqf index 9ab6fc6341..9fc2c9ebab 100644 --- a/addons/rangecard/functions/fnc_updateRangeCard.sqf +++ b/addons/rangecard/functions/fnc_updateRangeCard.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Authors: Ruthberg * Updates the range card data @@ -17,7 +18,6 @@ * * Public: No */ -#include "script_component.hpp" disableSerialization; #define __dsp (uiNamespace getVariable "RangleCard_Display") diff --git a/addons/rearm/functions/fnc_addMagazineToSupply.sqf b/addons/rearm/functions/fnc_addMagazineToSupply.sqf index 0a3be574f8..1f646e3598 100644 --- a/addons/rearm/functions/fnc_addMagazineToSupply.sqf +++ b/addons/rearm/functions/fnc_addMagazineToSupply.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: GitHawk * Adds magazines to the supply. [Global Effects] @@ -15,7 +16,6 @@ * * Public: Yes */ -#include "script_component.hpp" if !(EGVAR(common,settingsInitFinished)) exitWith { // only run this after the settings are initialized EGVAR(common,runAtSettingsInitialized) pushBack [FUNC(addMagazineToSupply), _this]; diff --git a/addons/rearm/functions/fnc_addRearmActions.sqf b/addons/rearm/functions/fnc_addRearmActions.sqf index b164449575..a714a1987a 100644 --- a/addons/rearm/functions/fnc_addRearmActions.sqf +++ b/addons/rearm/functions/fnc_addRearmActions.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: GitHawk * Show the resupplyable ammunition of all surrounding vehicles. @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_truck"]; diff --git a/addons/rearm/functions/fnc_addVehicleMagazinesToSupply.sqf b/addons/rearm/functions/fnc_addVehicleMagazinesToSupply.sqf index 2a8f9fed14..1ab5377aad 100644 --- a/addons/rearm/functions/fnc_addVehicleMagazinesToSupply.sqf +++ b/addons/rearm/functions/fnc_addVehicleMagazinesToSupply.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: GitHawk * Adds all magazines of a vehicle to the supply. @@ -15,7 +16,6 @@ * * Public: Yes */ -#include "script_component.hpp" if !(EGVAR(common,settingsInitFinished)) exitWith { // only run this after the settings are initialized EGVAR(common,runAtSettingsInitialized) pushBack [FUNC(addVehicleMagazinesToSupply), _this]; diff --git a/addons/rearm/functions/fnc_canReadSupplyCounter.sqf b/addons/rearm/functions/fnc_canReadSupplyCounter.sqf index 60ca21b3f5..66ab8534bd 100644 --- a/addons/rearm/functions/fnc_canReadSupplyCounter.sqf +++ b/addons/rearm/functions/fnc_canReadSupplyCounter.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: GitHawk * Checks if unit can read supply counter. [Only for GVAR(supply) > 0] @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_truck", "_unit"]; diff --git a/addons/rearm/functions/fnc_canRearm.sqf b/addons/rearm/functions/fnc_canRearm.sqf index 236f23e233..bda5d8088c 100644 --- a/addons/rearm/functions/fnc_canRearm.sqf +++ b/addons/rearm/functions/fnc_canRearm.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: GitHawk, Jonpas * Check if a unit can rearm. @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_vehicle", "_unit"]; diff --git a/addons/rearm/functions/fnc_canStoreAmmo.sqf b/addons/rearm/functions/fnc_canStoreAmmo.sqf index 4c4989b1d7..24d1901690 100644 --- a/addons/rearm/functions/fnc_canStoreAmmo.sqf +++ b/addons/rearm/functions/fnc_canStoreAmmo.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: GitHawk * Check if a unit can store ammo in an ammo truck. @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_truck", "_unit"]; diff --git a/addons/rearm/functions/fnc_canTakeAmmo.sqf b/addons/rearm/functions/fnc_canTakeAmmo.sqf index c508df378d..911ffc8834 100644 --- a/addons/rearm/functions/fnc_canTakeAmmo.sqf +++ b/addons/rearm/functions/fnc_canTakeAmmo.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: GitHawk * Check if a unit can pick up ammo. @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_truck", "_unit"]; diff --git a/addons/rearm/functions/fnc_createDummy.sqf b/addons/rearm/functions/fnc_createDummy.sqf index afca11935f..05f6f3505b 100644 --- a/addons/rearm/functions/fnc_createDummy.sqf +++ b/addons/rearm/functions/fnc_createDummy.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: GitHawk * Creates a carryable ammunition dummy object. @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_unit", "_magazineClass"]; diff --git a/addons/rearm/functions/fnc_disable.sqf b/addons/rearm/functions/fnc_disable.sqf index 0bfe9f2b3d..4812c34cfb 100644 --- a/addons/rearm/functions/fnc_disable.sqf +++ b/addons/rearm/functions/fnc_disable.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: GitHawk * Disables being able to rearm a vehicle's turrets. [Global Effects] @@ -15,7 +16,6 @@ * * Public: Yes */ -#include "script_component.hpp" params [ ["_vehicle", objNull, [objNull]], diff --git a/addons/rearm/functions/fnc_dropAmmo.sqf b/addons/rearm/functions/fnc_dropAmmo.sqf index 30b8b9d67d..d4c68ea34b 100644 --- a/addons/rearm/functions/fnc_dropAmmo.sqf +++ b/addons/rearm/functions/fnc_dropAmmo.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: GitHawk * Drops a magazine, optionally deletes it and optionally unholsters the wepaon. @@ -15,7 +16,6 @@ * * Public: No */ -#include "script_component.hpp" params [ "_unit", diff --git a/addons/rearm/functions/fnc_getAllRearmTurrets.sqf b/addons/rearm/functions/fnc_getAllRearmTurrets.sqf index db1f4599ce..95f773e1bb 100644 --- a/addons/rearm/functions/fnc_getAllRearmTurrets.sqf +++ b/addons/rearm/functions/fnc_getAllRearmTurrets.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Tuupertunut * Returns all turrets in a vehicle. @@ -16,7 +17,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_vehicle"]; diff --git a/addons/rearm/functions/fnc_getCaliber.sqf b/addons/rearm/functions/fnc_getCaliber.sqf index 87f7b6cd88..6c37deb938 100644 --- a/addons/rearm/functions/fnc_getCaliber.sqf +++ b/addons/rearm/functions/fnc_getCaliber.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: GitHawk * Get the caliber of the ammo in a magazine and return its parameters. @@ -15,7 +16,6 @@ * * Public: No */ -#include "script_component.hpp" params [ ["_magazineClass", ""] diff --git a/addons/rearm/functions/fnc_getMaxMagazines.sqf b/addons/rearm/functions/fnc_getMaxMagazines.sqf index 6eba4e0ecc..45f90d6579 100644 --- a/addons/rearm/functions/fnc_getMaxMagazines.sqf +++ b/addons/rearm/functions/fnc_getMaxMagazines.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: GitHawk, Jonpas * Calculates the maximum number of magazines a turret can hold according to config. @@ -15,7 +16,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_vehicle", "_turretPath", "_magazineClass"]; diff --git a/addons/rearm/functions/fnc_getNeedRearmMagazines.sqf b/addons/rearm/functions/fnc_getNeedRearmMagazines.sqf index b4195bb966..e2a06075d5 100644 --- a/addons/rearm/functions/fnc_getNeedRearmMagazines.sqf +++ b/addons/rearm/functions/fnc_getNeedRearmMagazines.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Tuupertunut * Returns information about every magazine that can be rearmed in the vehicle. Multiple mags of @@ -23,7 +24,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_vehicle"]; diff --git a/addons/rearm/functions/fnc_getSupplyCount.sqf b/addons/rearm/functions/fnc_getSupplyCount.sqf index 082ad7ab5c..892764b76f 100644 --- a/addons/rearm/functions/fnc_getSupplyCount.sqf +++ b/addons/rearm/functions/fnc_getSupplyCount.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: GitHawk * Get the supply count. @@ -13,7 +14,6 @@ * * Public: Yes */ -#include "script_component.hpp" params [["_truck", objNull, [objNull]]]; diff --git a/addons/rearm/functions/fnc_getTurretConfigMagazines.sqf b/addons/rearm/functions/fnc_getTurretConfigMagazines.sqf index 0421e1ed1a..56a2fbdf05 100644 --- a/addons/rearm/functions/fnc_getTurretConfigMagazines.sqf +++ b/addons/rearm/functions/fnc_getTurretConfigMagazines.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: GitHawk, Jonpas * Returns all magazines a turret of a vehicle object can hold according to config. @@ -14,6 +15,5 @@ * * Public: No */ -#include "script_component.hpp" getArray ((_this call CBA_fnc_getTurret) >> "magazines") diff --git a/addons/rearm/functions/fnc_getTurretMagazineAmmo.sqf b/addons/rearm/functions/fnc_getTurretMagazineAmmo.sqf index 53107dd7b0..2e914f3e7a 100644 --- a/addons/rearm/functions/fnc_getTurretMagazineAmmo.sqf +++ b/addons/rearm/functions/fnc_getTurretMagazineAmmo.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Tuupertunut * Returns the current ammo counts in all magazines of given class in turret. @@ -19,7 +20,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_vehicle", "_turretPath", "_magazineClass"]; diff --git a/addons/rearm/functions/fnc_grabAmmo.sqf b/addons/rearm/functions/fnc_grabAmmo.sqf index 13159987f2..8a72ec2cf1 100644 --- a/addons/rearm/functions/fnc_grabAmmo.sqf +++ b/addons/rearm/functions/fnc_grabAmmo.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: GitHawk * Grabs an dummy ammo. @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_dummy", "_unit"]; diff --git a/addons/rearm/functions/fnc_handleKilled.sqf b/addons/rearm/functions/fnc_handleKilled.sqf index b0cdabaed5..6ba6e4f4ee 100644 --- a/addons/rearm/functions/fnc_handleKilled.sqf +++ b/addons/rearm/functions/fnc_handleKilled.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: GitHawk, Jonpas * Handles medical on set dead event. @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_unit"]; diff --git a/addons/rearm/functions/fnc_handleRespawn.sqf b/addons/rearm/functions/fnc_handleRespawn.sqf index 26cb918c0e..a1ddd97301 100644 --- a/addons/rearm/functions/fnc_handleRespawn.sqf +++ b/addons/rearm/functions/fnc_handleRespawn.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: unknown * Called when a unit is Respawned @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_unit"]; if !(local _unit) exitWith {}; diff --git a/addons/rearm/functions/fnc_handleUnconscious.sqf b/addons/rearm/functions/fnc_handleUnconscious.sqf index f9d703f4ec..18a8af4b56 100644 --- a/addons/rearm/functions/fnc_handleUnconscious.sqf +++ b/addons/rearm/functions/fnc_handleUnconscious.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: GitHawk, Jonpas * Handles medical on unconscious event. @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_unit", "_isUnconscious"]; diff --git a/addons/rearm/functions/fnc_hasEnoughSupply.sqf b/addons/rearm/functions/fnc_hasEnoughSupply.sqf index 93f1f9ea3a..232d6776ad 100644 --- a/addons/rearm/functions/fnc_hasEnoughSupply.sqf +++ b/addons/rearm/functions/fnc_hasEnoughSupply.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: GitHawk * Check whether enough supply is left to take the magazine. @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_truck", "_magazineClass"]; diff --git a/addons/rearm/functions/fnc_initSupplyVehicle.sqf b/addons/rearm/functions/fnc_initSupplyVehicle.sqf index ad1b914328..9ca8728833 100644 --- a/addons/rearm/functions/fnc_initSupplyVehicle.sqf +++ b/addons/rearm/functions/fnc_initSupplyVehicle.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Githawk, PabstMirror * Adds rearm supply actions to a vehicle or ammo container. @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" if (!hasInterface) exitWith {}; // For now we just add actions, so no need non-clients diff --git a/addons/rearm/functions/fnc_makeDummy.sqf b/addons/rearm/functions/fnc_makeDummy.sqf index 574944a974..d319d3587e 100644 --- a/addons/rearm/functions/fnc_makeDummy.sqf +++ b/addons/rearm/functions/fnc_makeDummy.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: GitHawk * Make a dummy object by disabling collision and turning it. @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_obj", "_dirAndUp"]; diff --git a/addons/rearm/functions/fnc_moduleRearmSettings.sqf b/addons/rearm/functions/fnc_moduleRearmSettings.sqf index 61b6016c9d..4b61cfa2ee 100644 --- a/addons/rearm/functions/fnc_moduleRearmSettings.sqf +++ b/addons/rearm/functions/fnc_moduleRearmSettings.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: GitHawk * Module for adjusting the rearm settings. @@ -15,7 +16,6 @@ * * Public: No */ -#include "script_component.hpp" params [ "_logic", diff --git a/addons/rearm/functions/fnc_pickUpAmmo.sqf b/addons/rearm/functions/fnc_pickUpAmmo.sqf index 0f47325a13..a47885e716 100644 --- a/addons/rearm/functions/fnc_pickUpAmmo.sqf +++ b/addons/rearm/functions/fnc_pickUpAmmo.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: GitHawk * Starts progress bar for picking up a specific kind of magazine from the ground. @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_dummy", "_unit"]; diff --git a/addons/rearm/functions/fnc_readSupplyCounter.sqf b/addons/rearm/functions/fnc_readSupplyCounter.sqf index a1b46862b9..31edaa2684 100644 --- a/addons/rearm/functions/fnc_readSupplyCounter.sqf +++ b/addons/rearm/functions/fnc_readSupplyCounter.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: GitHawk * Get the remaining ammunition amount. @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_truck", "_unit"]; TRACE_2("readSupplyCounter",_truck,_unit); diff --git a/addons/rearm/functions/fnc_rearm.sqf b/addons/rearm/functions/fnc_rearm.sqf index e9d65c43b4..bf703e9b6b 100644 --- a/addons/rearm/functions/fnc_rearm.sqf +++ b/addons/rearm/functions/fnc_rearm.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: GitHawk * Starts progress bar for rearming a vehicle. @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_target", "_unit"]; TRACE_2("rearm",_target,_unit); diff --git a/addons/rearm/functions/fnc_rearmEntireVehicle.sqf b/addons/rearm/functions/fnc_rearmEntireVehicle.sqf index a388b80c32..b136c5d267 100644 --- a/addons/rearm/functions/fnc_rearmEntireVehicle.sqf +++ b/addons/rearm/functions/fnc_rearmEntireVehicle.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: GitHawk * Starts progress bar for rearming an entire vehicle. @@ -15,7 +16,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_truck", "_player", "_vehicle"]; TRACE_3("rearmEntireVehicle",_truck,_player,_vehicle); diff --git a/addons/rearm/functions/fnc_rearmEntireVehicleSuccess.sqf b/addons/rearm/functions/fnc_rearmEntireVehicleSuccess.sqf index 2ad70f9626..f3eecbb245 100644 --- a/addons/rearm/functions/fnc_rearmEntireVehicleSuccess.sqf +++ b/addons/rearm/functions/fnc_rearmEntireVehicleSuccess.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: GitHawk * Rearm an entire vehicle. @@ -15,7 +16,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_args"]; _args params ["_truck", "_vehicle"]; diff --git a/addons/rearm/functions/fnc_rearmEntireVehicleSuccessLocal.sqf b/addons/rearm/functions/fnc_rearmEntireVehicleSuccessLocal.sqf index 031c1d1f4d..90845648ba 100644 --- a/addons/rearm/functions/fnc_rearmEntireVehicleSuccessLocal.sqf +++ b/addons/rearm/functions/fnc_rearmEntireVehicleSuccessLocal.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Tuupertunut * Rearm an entire turret locally. @@ -15,7 +16,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_truck", "_vehicle", "_turretPath"]; TRACE_3("rearmEntireVehicleSuccessLocal",_truck,_vehicle,_turretPath); diff --git a/addons/rearm/functions/fnc_rearmSuccess.sqf b/addons/rearm/functions/fnc_rearmSuccess.sqf index 0fc8219180..d0610dbb5a 100644 --- a/addons/rearm/functions/fnc_rearmSuccess.sqf +++ b/addons/rearm/functions/fnc_rearmSuccess.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: GitHawk * Rearms a vehicle, after progress bar finishes, pass args to machine where turret is local. @@ -19,7 +20,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_vehicle", "_unit", "_turretPath", "_numMagazines", "_magazineClass", "_numRounds", "_pylon"]; TRACE_7("rearmSuccess",_vehicle,_unit,_turretPath,_numMagazines,_magazineClass,_numRounds,_pylon); diff --git a/addons/rearm/functions/fnc_rearmSuccessLocal.sqf b/addons/rearm/functions/fnc_rearmSuccessLocal.sqf index 0a2255272b..d141ca4a64 100644 --- a/addons/rearm/functions/fnc_rearmSuccessLocal.sqf +++ b/addons/rearm/functions/fnc_rearmSuccessLocal.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: GitHawk * Rearms a vehicle on the turret owner. @@ -19,7 +20,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_vehicle", "_unit", "_turretPath", "_numMagazines", "_magazineClass", "_numRounds", "_pylon"]; TRACE_7("rearmSuccessLocal",_vehicle,_unit,_turretPath,_numMagazines,_magazineClass,_numRounds,_pylon); diff --git a/addons/rearm/functions/fnc_removeMagazineFromSupply.sqf b/addons/rearm/functions/fnc_removeMagazineFromSupply.sqf index 056ed26f48..b6e6c4d0d2 100644 --- a/addons/rearm/functions/fnc_removeMagazineFromSupply.sqf +++ b/addons/rearm/functions/fnc_removeMagazineFromSupply.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: GitHawk * Removes a magazine from the supply. @@ -15,7 +16,6 @@ * * Public: Yes */ -#include "script_component.hpp" params [["_truck", objNull, [objNull]], ["_magazineClass", "", [""]], ["_numRounds", -1, [0]]]; TRACE_3("removeMagazineFromSupply",_truck,_magazineClass,_numRounds); diff --git a/addons/rearm/functions/fnc_setSupplyCount.sqf b/addons/rearm/functions/fnc_setSupplyCount.sqf index ef99a78416..41b3016dba 100644 --- a/addons/rearm/functions/fnc_setSupplyCount.sqf +++ b/addons/rearm/functions/fnc_setSupplyCount.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: GitHawk * Sets the supply count. [Global Effects] @@ -14,7 +15,6 @@ * * Public: Yes */ -#include "script_component.hpp" if !(EGVAR(common,settingsInitFinished)) exitWith { // only run this after the settings are initialized EGVAR(common,runAtSettingsInitialized) pushBack [FUNC(setSupplyCount), _this]; diff --git a/addons/rearm/functions/fnc_setTurretMagazineAmmo.sqf b/addons/rearm/functions/fnc_setTurretMagazineAmmo.sqf index 2cc5e156d5..984d382e08 100644 --- a/addons/rearm/functions/fnc_setTurretMagazineAmmo.sqf +++ b/addons/rearm/functions/fnc_setTurretMagazineAmmo.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Tuupertunut * Sets the ammo counts of all magazines of given class in turret. @@ -21,7 +22,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_vehicle", "_turretPath", "_magazineClass", "_ammoCounts"]; diff --git a/addons/rearm/functions/fnc_storeAmmo.sqf b/addons/rearm/functions/fnc_storeAmmo.sqf index 0da99c081a..7d4427e1a2 100644 --- a/addons/rearm/functions/fnc_storeAmmo.sqf +++ b/addons/rearm/functions/fnc_storeAmmo.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: GitHawk * Stores ammo in an ammo truck. @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_truck", "_unit"]; diff --git a/addons/rearm/functions/fnc_takeAmmo.sqf b/addons/rearm/functions/fnc_takeAmmo.sqf index 69db94729d..1576044eb1 100644 --- a/addons/rearm/functions/fnc_takeAmmo.sqf +++ b/addons/rearm/functions/fnc_takeAmmo.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: GitHawk * Starts progress bar for picking up a specific kind of magazine from an ammo truck. @@ -17,7 +18,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_truck", "_unit", "_args"]; _args params ["_magazineClass", "_vehicle"]; diff --git a/addons/rearm/functions/fnc_takeSuccess.sqf b/addons/rearm/functions/fnc_takeSuccess.sqf index 9e6be0fe1c..3986b21484 100644 --- a/addons/rearm/functions/fnc_takeSuccess.sqf +++ b/addons/rearm/functions/fnc_takeSuccess.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: GitHawk * Takes a magazine from an ammo truck. @@ -16,7 +17,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_args"]; _args params ["_unit", "_magazineClass", "_truck"]; diff --git a/addons/recoil/functions/fnc_camshake.sqf b/addons/recoil/functions/fnc_camshake.sqf index 8b600f41ae..fff9fecd6c 100644 --- a/addons/recoil/functions/fnc_camshake.sqf +++ b/addons/recoil/functions/fnc_camshake.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Orginal by Ryan Schultz, edited by KoffeinFlummi, commy2 * Adds camera shake when firing. Called from the unified fired EH only for the local player. @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" //IGNORE_PRIVATE_WARNING ["_unit", "_weapon", "_muzzle", "_mode", "_ammo", "_magazine", "_projectile", "_vehicle", "_gunner", "_turret"]; TRACE_10("firedEH:",_unit, _weapon, _muzzle, _mode, _ammo, _magazine, _projectile, _vehicle, _gunner, _turret); diff --git a/addons/refuel/functions/fnc_canCheckFuel.sqf b/addons/refuel/functions/fnc_canCheckFuel.sqf index 6e86092652..f7bb8a4aa8 100644 --- a/addons/refuel/functions/fnc_canCheckFuel.sqf +++ b/addons/refuel/functions/fnc_canCheckFuel.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Jonpas, GitHawk * Checks if unit can check fuel. @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params [["_unit", objNull, [objNull]], ["_source", objNull, [objNull]]]; diff --git a/addons/refuel/functions/fnc_canDisconnect.sqf b/addons/refuel/functions/fnc_canDisconnect.sqf index 8ded3f3fb9..1288d9f103 100644 --- a/addons/refuel/functions/fnc_canDisconnect.sqf +++ b/addons/refuel/functions/fnc_canDisconnect.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: GitHawk * Check if a unit can disconnect a fuel nozzle @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params [["_unit", objNull, [objNull]], ["_nozzle", objNull, [objNull]]]; diff --git a/addons/refuel/functions/fnc_canReturnNozzle.sqf b/addons/refuel/functions/fnc_canReturnNozzle.sqf index 226576be0d..aef2e96fa0 100644 --- a/addons/refuel/functions/fnc_canReturnNozzle.sqf +++ b/addons/refuel/functions/fnc_canReturnNozzle.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: GitHawk * Check if a unit can return a fuel nozzle @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params [["_unit", objNull, [objNull]], ["_source", objNull, [objNull]]]; diff --git a/addons/refuel/functions/fnc_canTakeNozzle.sqf b/addons/refuel/functions/fnc_canTakeNozzle.sqf index 8847675058..82ca8452bc 100644 --- a/addons/refuel/functions/fnc_canTakeNozzle.sqf +++ b/addons/refuel/functions/fnc_canTakeNozzle.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: GitHawk * Check if a unit can take a fuel nozzle @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params [["_unit", objNull, [objNull]], ["_object", objNull, [objNull]]]; diff --git a/addons/refuel/functions/fnc_canTurnOff.sqf b/addons/refuel/functions/fnc_canTurnOff.sqf index e44e1fc669..624cfde552 100644 --- a/addons/refuel/functions/fnc_canTurnOff.sqf +++ b/addons/refuel/functions/fnc_canTurnOff.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: GitHawk * Check if a unit can turn off a fuel nozzle @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params [["_unit", objNull, [objNull]], ["_nozzle", objNull, [objNull]]]; diff --git a/addons/refuel/functions/fnc_canTurnOn.sqf b/addons/refuel/functions/fnc_canTurnOn.sqf index 98173e0fa4..855837d97c 100644 --- a/addons/refuel/functions/fnc_canTurnOn.sqf +++ b/addons/refuel/functions/fnc_canTurnOn.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: GitHawk * Check if a unit can turn on a fuel nozzle @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params [["_unit", objNull, [objNull]], ["_nozzle", objNull, [objNull]]]; diff --git a/addons/refuel/functions/fnc_checkFuel.sqf b/addons/refuel/functions/fnc_checkFuel.sqf index fdb4a525d2..275ad7999b 100644 --- a/addons/refuel/functions/fnc_checkFuel.sqf +++ b/addons/refuel/functions/fnc_checkFuel.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: GitHawk * Get the remaining fuel amount @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params [["_unit", objNull, [objNull]], ["_source", objNull, [objNull]]]; diff --git a/addons/refuel/functions/fnc_connectNozzleAction.sqf b/addons/refuel/functions/fnc_connectNozzleAction.sqf index 7a99ce8d6e..7c626c2359 100644 --- a/addons/refuel/functions/fnc_connectNozzleAction.sqf +++ b/addons/refuel/functions/fnc_connectNozzleAction.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: GitHawk et.al. * Calculates a connection for refueling. @@ -17,7 +18,6 @@ * * Public: No */ -#include "script_component.hpp" params [["_unit", objNull, [objNull]], ["_sink", objNull, [objNull]], ["_startingPosASL", [0,0,0], [[]], 3], ["_nozzle", objNull, [objNull]]]; diff --git a/addons/refuel/functions/fnc_disconnect.sqf b/addons/refuel/functions/fnc_disconnect.sqf index 793eefbb93..b227b9fcc9 100644 --- a/addons/refuel/functions/fnc_disconnect.sqf +++ b/addons/refuel/functions/fnc_disconnect.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: GitHawk * Disconnect a fuel nozzle. @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params [["_unit", objNull, [objNull]], ["_nozzle", objNull, [objNull]]]; diff --git a/addons/refuel/functions/fnc_dropNozzle.sqf b/addons/refuel/functions/fnc_dropNozzle.sqf index fac88d6591..e49872a279 100644 --- a/addons/refuel/functions/fnc_dropNozzle.sqf +++ b/addons/refuel/functions/fnc_dropNozzle.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: GitHawk * Detaches the fuel nozzle, drops it and removes player variables. @@ -16,7 +17,6 @@ * * Public: No */ -#include "script_component.hpp" params [["_unit", objNull, [objNull]], ["_nozzle", objNull, [objNull]], ["_disconnectOnly", false, [false]]]; TRACE_3("dropNozzle",_unit,_nozzle,_disconnectOnly); diff --git a/addons/refuel/functions/fnc_getFuel.sqf b/addons/refuel/functions/fnc_getFuel.sqf index 1ec128cb68..ecba330363 100644 --- a/addons/refuel/functions/fnc_getFuel.sqf +++ b/addons/refuel/functions/fnc_getFuel.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: GitHawk, Jonpas * Get the remaining fuel amount. @@ -13,7 +14,6 @@ * * Public: Yes */ -#include "script_component.hpp" params [["_source", objNull, [objNull]]]; diff --git a/addons/refuel/functions/fnc_handleDisconnect.sqf b/addons/refuel/functions/fnc_handleDisconnect.sqf index a7e46e23fe..ebf0d729ea 100644 --- a/addons/refuel/functions/fnc_handleDisconnect.sqf +++ b/addons/refuel/functions/fnc_handleDisconnect.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: GitHawk * Cleans up refuel on client disconnect. @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" params [["_unit", objNull, [objNull]]]; TRACE_1("disconnect",_unit); diff --git a/addons/refuel/functions/fnc_handleRespawn.sqf b/addons/refuel/functions/fnc_handleRespawn.sqf index 145cd16e60..893f893724 100644 --- a/addons/refuel/functions/fnc_handleRespawn.sqf +++ b/addons/refuel/functions/fnc_handleRespawn.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Dystopian * Clean variables on unit respawn. @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_unit"]; TRACE_1("respawn",_unit); diff --git a/addons/refuel/functions/fnc_initSource.sqf b/addons/refuel/functions/fnc_initSource.sqf index 51daa5f03e..c484c151f4 100644 --- a/addons/refuel/functions/fnc_initSource.sqf +++ b/addons/refuel/functions/fnc_initSource.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Dystopian * Adds refuel menu to object. @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" if (!hasInterface) exitWith {}; diff --git a/addons/refuel/functions/fnc_makeJerryCan.sqf b/addons/refuel/functions/fnc_makeJerryCan.sqf index 96fc30adce..4c4cd22aa1 100644 --- a/addons/refuel/functions/fnc_makeJerryCan.sqf +++ b/addons/refuel/functions/fnc_makeJerryCan.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: GitHawk * Makes an object into a jerry can. @@ -14,7 +15,6 @@ * * Public: Yes */ -#include "script_component.hpp" params [["_target", objNull, [objNull]], ["_fuelAmount", 20, [0]]]; diff --git a/addons/refuel/functions/fnc_makeSource.sqf b/addons/refuel/functions/fnc_makeSource.sqf index 05707e5301..7b2179adab 100644 --- a/addons/refuel/functions/fnc_makeSource.sqf +++ b/addons/refuel/functions/fnc_makeSource.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Dystopian * Makes an object into a refuel source. @@ -16,7 +17,6 @@ * * Public: Yes */ -#include "script_component.hpp" if (!isServer) exitWith {}; diff --git a/addons/refuel/functions/fnc_moduleRefuelSettings.sqf b/addons/refuel/functions/fnc_moduleRefuelSettings.sqf index 9e3e953160..fabdad1706 100644 --- a/addons/refuel/functions/fnc_moduleRefuelSettings.sqf +++ b/addons/refuel/functions/fnc_moduleRefuelSettings.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: GitHawk * Module for adjusting the refuel settings. @@ -16,8 +17,6 @@ * Public: No */ -#include "script_component.hpp" - params ["_logic", "", ["_activated", false, [false]]]; if !(_activated) exitWith {}; diff --git a/addons/refuel/functions/fnc_onMouseButtonDown.sqf b/addons/refuel/functions/fnc_onMouseButtonDown.sqf index 5c1951b280..2111be99e8 100644 --- a/addons/refuel/functions/fnc_onMouseButtonDown.sqf +++ b/addons/refuel/functions/fnc_onMouseButtonDown.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Dystopian * Mouse button down event. @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" private _button = _this select 1; private _unit = ACE_player; diff --git a/addons/refuel/functions/fnc_readFuelCounter.sqf b/addons/refuel/functions/fnc_readFuelCounter.sqf index 70c6a2799b..cc851a549f 100644 --- a/addons/refuel/functions/fnc_readFuelCounter.sqf +++ b/addons/refuel/functions/fnc_readFuelCounter.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: GitHawk * Reads the fuel counter. @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params [["_unit", objNull, [objNull]], ["_source", objNull, [objNull]]]; diff --git a/addons/refuel/functions/fnc_refuel.sqf b/addons/refuel/functions/fnc_refuel.sqf index f23e0aae5b..4717f1206c 100644 --- a/addons/refuel/functions/fnc_refuel.sqf +++ b/addons/refuel/functions/fnc_refuel.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: GitHawk * Refuels the vehicle. @@ -17,8 +18,6 @@ * Public: No */ -#include "script_component.hpp" - params [["_unit", objNull, [objNull]], ["_sink", objNull, [objNull]], ["_nozzle", objNull, [objNull]], ["_connectToPoint", [0,0,0], [[]], 3]]; private _config = configFile >> "CfgVehicles" >> typeOf _sink; diff --git a/addons/refuel/functions/fnc_returnNozzle.sqf b/addons/refuel/functions/fnc_returnNozzle.sqf index 5da5935fd2..3cc2f773f0 100644 --- a/addons/refuel/functions/fnc_returnNozzle.sqf +++ b/addons/refuel/functions/fnc_returnNozzle.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: GitHawk, Jonpas * Returns the nozzle back to source vehicle. @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params [["_unit", objNull, [objNull]], ["_source", objNull, [objNull]]]; diff --git a/addons/refuel/functions/fnc_setFuel.sqf b/addons/refuel/functions/fnc_setFuel.sqf index 0732160f4c..f95596f4f1 100644 --- a/addons/refuel/functions/fnc_setFuel.sqf +++ b/addons/refuel/functions/fnc_setFuel.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: GitHawk * Set the remaining fuel amount. @@ -14,7 +15,6 @@ * * Public: Yes */ -#include "script_component.hpp" params [["_source", objNull, [objNull]], ["_fuel", nil, [0]]]; diff --git a/addons/refuel/functions/fnc_startNozzleInHandsPFH.sqf b/addons/refuel/functions/fnc_startNozzleInHandsPFH.sqf index 95c853a217..7f4d936ed3 100644 --- a/addons/refuel/functions/fnc_startNozzleInHandsPFH.sqf +++ b/addons/refuel/functions/fnc_startNozzleInHandsPFH.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Dystopian * PFH while nozzle is in hands. @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" #define DROP_NOZZLE [_unit, _nozzle] call FUNC(dropNozzle); #define UNHOLSTER_WEAPON \ diff --git a/addons/refuel/functions/fnc_takeNozzle.sqf b/addons/refuel/functions/fnc_takeNozzle.sqf index 5049adfee6..83e38c1be6 100644 --- a/addons/refuel/functions/fnc_takeNozzle.sqf +++ b/addons/refuel/functions/fnc_takeNozzle.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: GitHawk * Take a fuel nozzle either from a fuel truck/station or from the ground. @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params [ ["_unit", objNull, [objNull]], diff --git a/addons/refuel/functions/fnc_turnOff.sqf b/addons/refuel/functions/fnc_turnOff.sqf index 067d59c51e..1448a0d145 100644 --- a/addons/refuel/functions/fnc_turnOff.sqf +++ b/addons/refuel/functions/fnc_turnOff.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: GitHawk * Turn off a fuel nozzle. @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params [["_unit", objNull, [objNull]], ["_nozzle", objNull, [objNull]]]; diff --git a/addons/refuel/functions/fnc_turnOn.sqf b/addons/refuel/functions/fnc_turnOn.sqf index e57cd3725a..4cbbc0033d 100644 --- a/addons/refuel/functions/fnc_turnOn.sqf +++ b/addons/refuel/functions/fnc_turnOn.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: GitHawk * Turn on a fuel nozzle. @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params [["_unit", objNull, [objNull]], ["_nozzle", objNull, [objNull]]]; diff --git a/addons/reload/functions/fnc_canCheckAmmo.sqf b/addons/reload/functions/fnc_canCheckAmmo.sqf index 7f38e3fbfa..a0aa0c5c70 100644 --- a/addons/reload/functions/fnc_canCheckAmmo.sqf +++ b/addons/reload/functions/fnc_canCheckAmmo.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: CAA-Picard * Check if the player can check the ammo of the target. @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params ["", "_target"]; diff --git a/addons/reload/functions/fnc_checkAmmo.sqf b/addons/reload/functions/fnc_checkAmmo.sqf index 90500b867f..156ca30a32 100644 --- a/addons/reload/functions/fnc_checkAmmo.sqf +++ b/addons/reload/functions/fnc_checkAmmo.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 and esteldunedain * Count the ammo of the currently loaded magazine or count rifle grenades. Play animation and display message. @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" #define COUNT_BARS 12 diff --git a/addons/reload/functions/fnc_displayAmmo.sqf b/addons/reload/functions/fnc_displayAmmo.sqf index 36ee8c1528..9b018131d4 100644 --- a/addons/reload/functions/fnc_displayAmmo.sqf +++ b/addons/reload/functions/fnc_displayAmmo.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 and esteldunedain * Display the ammo of the currently loaded magazine of the target or count rifle grenades. @@ -14,8 +15,6 @@ * Public: No */ -#include "script_component.hpp" - #define COUNT_BARS 12 params ["_target"]; diff --git a/addons/reload/functions/fnc_getAmmoToLinkBelt.sqf b/addons/reload/functions/fnc_getAmmoToLinkBelt.sqf index decb922d80..3701b32d8b 100644 --- a/addons/reload/functions/fnc_getAmmoToLinkBelt.sqf +++ b/addons/reload/functions/fnc_getAmmoToLinkBelt.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: esteldunedain, phyma * Check if the target has an MG equiped with belt system that the player can link @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_player", "_target"]; diff --git a/addons/reload/functions/fnc_startLinkingBelt.sqf b/addons/reload/functions/fnc_startLinkingBelt.sqf index aac6ed4561..54fc1921d7 100644 --- a/addons/reload/functions/fnc_startLinkingBelt.sqf +++ b/addons/reload/functions/fnc_startLinkingBelt.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: esteldunedain * Start linking the belt @@ -15,8 +16,6 @@ * Public: No */ -#include "script_component.hpp" - params ["_player", "_target"]; if (vehicle _target != _target) exitWith {false}; diff --git a/addons/reloadlaunchers/functions/fnc_addMissileReloadActions.sqf b/addons/reloadlaunchers/functions/fnc_addMissileReloadActions.sqf index a3caa76152..42af3e5027 100644 --- a/addons/reloadlaunchers/functions/fnc_addMissileReloadActions.sqf +++ b/addons/reloadlaunchers/functions/fnc_addMissileReloadActions.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Create one action per reloadable missile @@ -15,7 +16,6 @@ * Public: No * */ -#include "script_component.hpp" params ["_target", "_unit"]; TRACE_2("params",_target,_unit); diff --git a/addons/reloadlaunchers/functions/fnc_canLoad.sqf b/addons/reloadlaunchers/functions/fnc_canLoad.sqf index 2e578b1be7..af08ed8013 100644 --- a/addons/reloadlaunchers/functions/fnc_canLoad.sqf +++ b/addons/reloadlaunchers/functions/fnc_canLoad.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Check of the unit can reload the launcher of target unit. @@ -16,7 +17,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_unit", "_target", "_weapon", "_magazine"]; TRACE_4("params",_unit,_target,_weapon,_magazine); diff --git a/addons/reloadlaunchers/functions/fnc_getLoadableMissiles.sqf b/addons/reloadlaunchers/functions/fnc_getLoadableMissiles.sqf index 2dc8cf5925..6bded89110 100644 --- a/addons/reloadlaunchers/functions/fnc_getLoadableMissiles.sqf +++ b/addons/reloadlaunchers/functions/fnc_getLoadableMissiles.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Return all magazine types from reloaders inventory that are compatible with given weapon. @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_unit", "_weapon"]; TRACE_2("params",_unit,_weapon); diff --git a/addons/reloadlaunchers/functions/fnc_load.sqf b/addons/reloadlaunchers/functions/fnc_load.sqf index 2017ecf94e..27d4cafbf2 100644 --- a/addons/reloadlaunchers/functions/fnc_load.sqf +++ b/addons/reloadlaunchers/functions/fnc_load.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Reload a launcher @@ -16,7 +17,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_unit", "_target", "_weapon", "_magazine"]; TRACE_4("params",_unit,_target,_weapon,_magazine); diff --git a/addons/reloadlaunchers/functions/fnc_reloadLauncher.sqf b/addons/reloadlaunchers/functions/fnc_reloadLauncher.sqf index cd2295d7d0..58f6b6556a 100644 --- a/addons/reloadlaunchers/functions/fnc_reloadLauncher.sqf +++ b/addons/reloadlaunchers/functions/fnc_reloadLauncher.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Reload a launcher @@ -16,7 +17,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_unit","_target","_weapon","_magazine"]; TRACE_4("params",_unit,_target,_weapon,_magazine); diff --git a/addons/repair/functions/fnc_addRepairActions.sqf b/addons/repair/functions/fnc_addRepairActions.sqf index ed8528a4bc..5761206b3e 100644 --- a/addons/repair/functions/fnc_addRepairActions.sqf +++ b/addons/repair/functions/fnc_addRepairActions.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2, SilentSpike * Checks if the vehicles class already has the actions initialized, otherwise add all available repair options. Calleed from init EH. @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" if (!hasInterface) exitWith {}; diff --git a/addons/repair/functions/fnc_addSpareParts.sqf b/addons/repair/functions/fnc_addSpareParts.sqf index 63fe11fb6d..c83397ed4b 100644 --- a/addons/repair/functions/fnc_addSpareParts.sqf +++ b/addons/repair/functions/fnc_addSpareParts.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Jonpas * Adds spare parts to the vehicle. Before SettingsInitialized only collect for later execution. @@ -16,7 +17,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_vehicle", ["_amount", 1], ["_part", ""], ["_force", false]]; TRACE_2("params",_vehicle,_amount); diff --git a/addons/repair/functions/fnc_canMiscRepair.sqf b/addons/repair/functions/fnc_canMiscRepair.sqf index c26cfdb42a..b9fe842a19 100644 --- a/addons/repair/functions/fnc_canMiscRepair.sqf +++ b/addons/repair/functions/fnc_canMiscRepair.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Jonpas * Check if misc repair action can be done, called from callbackSuccess. @@ -16,8 +17,6 @@ * Public: No */ -#include "script_component.hpp" - params ["_caller", "_target", "_hitPointIndex"]; (getAllHitPointsDamage _target) params ["_allHitPoints", "", "_allHitPointDamages"]; diff --git a/addons/repair/functions/fnc_canRemove.sqf b/addons/repair/functions/fnc_canRemove.sqf index 9f06e8d148..77fc7b0eb4 100644 --- a/addons/repair/functions/fnc_canRemove.sqf +++ b/addons/repair/functions/fnc_canRemove.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Check if the unit can remove given wheel/track of the vehicle. @@ -15,7 +16,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_unit", "_target", "_hitPoint"]; TRACE_3("params",_unit,_target,_hitPoint); diff --git a/addons/repair/functions/fnc_canRepair.sqf b/addons/repair/functions/fnc_canRepair.sqf index a54e2d3ce4..93d5eef7a0 100644 --- a/addons/repair/functions/fnc_canRepair.sqf +++ b/addons/repair/functions/fnc_canRepair.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Glowbal * Check if the repair action can be performed. @@ -16,7 +17,6 @@ * * Public: Yes */ -#include "script_component.hpp" params ["_caller", "_target", "_hitPoint", "_className"]; TRACE_4("params",_caller,_target,_hitPoint,_className); diff --git a/addons/repair/functions/fnc_canRepairTrack.sqf b/addons/repair/functions/fnc_canRepairTrack.sqf index e1ff4a5628..8559ff1a9c 100644 --- a/addons/repair/functions/fnc_canRepairTrack.sqf +++ b/addons/repair/functions/fnc_canRepairTrack.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Check if the unit can replace given track of the vehicle. @@ -15,7 +16,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_unit", "_target", "_hitPoint"]; TRACE_3("params",_unit,_target,_hitPoint); diff --git a/addons/repair/functions/fnc_canReplaceTrack.sqf b/addons/repair/functions/fnc_canReplaceTrack.sqf index a272a0d176..d975c60efb 100644 --- a/addons/repair/functions/fnc_canReplaceTrack.sqf +++ b/addons/repair/functions/fnc_canReplaceTrack.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Check if the unit can replace given track of the vehicle. @@ -15,7 +16,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_unit", "_target", "_hitPoint"]; TRACE_3("params",_unit,_target,_hitPoint); diff --git a/addons/repair/functions/fnc_canReplaceWheel.sqf b/addons/repair/functions/fnc_canReplaceWheel.sqf index 0b7f7ad4e7..54e8e8cdf6 100644 --- a/addons/repair/functions/fnc_canReplaceWheel.sqf +++ b/addons/repair/functions/fnc_canReplaceWheel.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Check if the unit can replace given wheel of the vehicle. @@ -15,7 +16,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_unit", "_target", "_hitPoint"]; TRACE_3("params",_unit,_target,_hitPoint); diff --git a/addons/repair/functions/fnc_doFullRepair.sqf b/addons/repair/functions/fnc_doFullRepair.sqf index 492ceb01a0..fb248e6a2f 100644 --- a/addons/repair/functions/fnc_doFullRepair.sqf +++ b/addons/repair/functions/fnc_doFullRepair.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Glowbal * Fully repairs vehicle. @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params ["", "_vehicle"]; TRACE_1("params",_vehicle); diff --git a/addons/repair/functions/fnc_doRemoveTrack.sqf b/addons/repair/functions/fnc_doRemoveTrack.sqf index ca6ac58ffd..d15993752f 100644 --- a/addons/repair/functions/fnc_doRemoveTrack.sqf +++ b/addons/repair/functions/fnc_doRemoveTrack.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Called by repair action / progress bar. Raise events to set the new hitpoint damage. @@ -15,7 +16,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_unit", "_vehicle", "_hitPoint"]; TRACE_3("params",_unit,_vehicle,_hitPoint); diff --git a/addons/repair/functions/fnc_doRemoveWheel.sqf b/addons/repair/functions/fnc_doRemoveWheel.sqf index dafe603a18..127859a5b9 100644 --- a/addons/repair/functions/fnc_doRemoveWheel.sqf +++ b/addons/repair/functions/fnc_doRemoveWheel.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Called by repair action / progress bar. Raise events to set the new hitpoint damage. @@ -15,7 +16,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_unit", "_vehicle", "_hitPoint"]; TRACE_3("params",_unit,_vehicle,_hitPoint); diff --git a/addons/repair/functions/fnc_doRepair.sqf b/addons/repair/functions/fnc_doRepair.sqf index 64056fb999..c17858d8b3 100644 --- a/addons/repair/functions/fnc_doRepair.sqf +++ b/addons/repair/functions/fnc_doRepair.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Called by repair action / progress bar. Raise events to set the new hitpoint damage. @@ -15,7 +16,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_unit", "_vehicle", "_hitPointIndex"]; TRACE_3("params",_unit,_vehicle,_hitPointIndex); diff --git a/addons/repair/functions/fnc_doRepairTrack.sqf b/addons/repair/functions/fnc_doRepairTrack.sqf index c5c94fd6e8..71d06b60f2 100644 --- a/addons/repair/functions/fnc_doRepairTrack.sqf +++ b/addons/repair/functions/fnc_doRepairTrack.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Called by repair action / progress bar. Raise events to set the new hitpoint damage. @@ -19,7 +20,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_unit", "_vehicle", "_hitPoint", "", "", "", "_claimedObjects"]; TRACE_4("params",_unit,_vehicle,_hitPoint,_claimedObjects); diff --git a/addons/repair/functions/fnc_doReplaceTrack.sqf b/addons/repair/functions/fnc_doReplaceTrack.sqf index c85899e169..60dd486f44 100644 --- a/addons/repair/functions/fnc_doReplaceTrack.sqf +++ b/addons/repair/functions/fnc_doReplaceTrack.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Replaces a track. @@ -19,7 +20,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_unit", "_vehicle", "_hitPoint", "", "", "", "_claimedObjects"]; TRACE_4("params",_unit,_vehicle,_hitPoint,_claimedObjects); diff --git a/addons/repair/functions/fnc_doReplaceWheel.sqf b/addons/repair/functions/fnc_doReplaceWheel.sqf index 4bc3ca93dd..e42c7cabf2 100644 --- a/addons/repair/functions/fnc_doReplaceWheel.sqf +++ b/addons/repair/functions/fnc_doReplaceWheel.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Repairs a vehicle's wheel with a ACE_wheel spare part object. @@ -19,7 +20,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_unit", "_vehicle", "_hitPoint", "", "", "", "_claimedObjects"]; TRACE_4("params",_unit,_vehicle,_hitPoint,_claimedObjects); diff --git a/addons/repair/functions/fnc_getClaimObjects.sqf b/addons/repair/functions/fnc_getClaimObjects.sqf index 18b2e9f7ef..a654952417 100644 --- a/addons/repair/functions/fnc_getClaimObjects.sqf +++ b/addons/repair/functions/fnc_getClaimObjects.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: PabstMirror * Returns array of required nearby repair objects (wheels/tracks). @@ -15,7 +16,6 @@ * * Public: Yes */ -#include "script_component.hpp" params ["_unit", "_maxRange", "_objectsToClaim"]; TRACE_3("params",_unit,_maxRange,_objectsToClaim); diff --git a/addons/repair/functions/fnc_getHitPointString.sqf b/addons/repair/functions/fnc_getHitPointString.sqf index da039c34ff..8394b4f5ac 100644 --- a/addons/repair/functions/fnc_getHitPointString.sqf +++ b/addons/repair/functions/fnc_getHitPointString.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Jonpas * Finds the localized string of the given hitpoint name or uses default text if none found. @@ -17,7 +18,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_hitPoint", "_textLocalized", "_textDefault", ["_trackArray", []]]; diff --git a/addons/repair/functions/fnc_getPostRepairDamage.sqf b/addons/repair/functions/fnc_getPostRepairDamage.sqf index 22eaf7a5f9..d8ed7d3804 100644 --- a/addons/repair/functions/fnc_getPostRepairDamage.sqf +++ b/addons/repair/functions/fnc_getPostRepairDamage.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Returns the damage threshold based on settings and unit type. @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_unit"]; TRACE_1("params",_unit); diff --git a/addons/repair/functions/fnc_getWheelHitPointsWithSelections.sqf b/addons/repair/functions/fnc_getWheelHitPointsWithSelections.sqf index 5b40710c19..fe072859b2 100644 --- a/addons/repair/functions/fnc_getWheelHitPointsWithSelections.sqf +++ b/addons/repair/functions/fnc_getWheelHitPointsWithSelections.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Returns the wheel hitpoints and their selections. @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_vehicle"]; TRACE_1("params",_vehicle); diff --git a/addons/repair/functions/fnc_hasItems.sqf b/addons/repair/functions/fnc_hasItems.sqf index 0b06be8d49..9b54647c8d 100644 --- a/addons/repair/functions/fnc_hasItems.sqf +++ b/addons/repair/functions/fnc_hasItems.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Glowbal * Check if the engineer has all items. @@ -14,7 +15,6 @@ * * Public: Yes */ -#include "script_component.hpp" params ["_unit", "_items"]; TRACE_2("params",_unit,_items); diff --git a/addons/repair/functions/fnc_isEngineer.sqf b/addons/repair/functions/fnc_isEngineer.sqf index f7482760af..6a80b1012e 100644 --- a/addons/repair/functions/fnc_isEngineer.sqf +++ b/addons/repair/functions/fnc_isEngineer.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Glowbal, KoffeinFlummi, commy2 * Check if a unit is any engineer class. @@ -14,7 +15,6 @@ * * Public: Yes */ -#include "script_component.hpp" params ["_unit", ["_engineerN", 1]]; diff --git a/addons/repair/functions/fnc_isInRepairFacility.sqf b/addons/repair/functions/fnc_isInRepairFacility.sqf index c27fd8638e..10ef95ed66 100644 --- a/addons/repair/functions/fnc_isInRepairFacility.sqf +++ b/addons/repair/functions/fnc_isInRepairFacility.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Glowbal * Checks if a unit is in a repair facility. @@ -13,7 +14,6 @@ * * Public: Yes */ -#include "script_component.hpp" params ["_object"]; TRACE_1("params",_object); diff --git a/addons/repair/functions/fnc_isNearRepairVehicle.sqf b/addons/repair/functions/fnc_isNearRepairVehicle.sqf index 763d146970..1243c0f95b 100644 --- a/addons/repair/functions/fnc_isNearRepairVehicle.sqf +++ b/addons/repair/functions/fnc_isNearRepairVehicle.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: KoffeinFlummi * Checks if a unit is near an engineering vehicle. @@ -13,7 +14,6 @@ * * Public: Yes */ -#include "script_component.hpp" params ["_unit"]; TRACE_1("params",_unit); diff --git a/addons/repair/functions/fnc_isRepairVehicle.sqf b/addons/repair/functions/fnc_isRepairVehicle.sqf index ff3ac7ed1c..6e7ddcab27 100644 --- a/addons/repair/functions/fnc_isRepairVehicle.sqf +++ b/addons/repair/functions/fnc_isRepairVehicle.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Glowbal * Check if vehicle is a engineering vehicle. @@ -13,7 +14,6 @@ * * Public: Yes */ -#include "script_component.hpp" params ["_vehicle"]; TRACE_1("params",_vehicle); diff --git a/addons/repair/functions/fnc_modifyInteraction.sqf b/addons/repair/functions/fnc_modifyInteraction.sqf index 5795f0c584..235afd9223 100644 --- a/addons/repair/functions/fnc_modifyInteraction.sqf +++ b/addons/repair/functions/fnc_modifyInteraction.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: PabstMirror, mharis001 * Modifies the base interaction point for repair items to show its current damage. @@ -16,7 +17,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_target", "", "", "_actionData"]; diff --git a/addons/repair/functions/fnc_modifySelectionInteraction.sqf b/addons/repair/functions/fnc_modifySelectionInteraction.sqf index b4e3ed031b..66d7ae5e4b 100644 --- a/addons/repair/functions/fnc_modifySelectionInteraction.sqf +++ b/addons/repair/functions/fnc_modifySelectionInteraction.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: 654wak654, mharis001 * Modifies interaction icon color of vehicle selection to show its current damage. @@ -16,7 +17,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_target", "", "_args", "_actionData"]; diff --git a/addons/repair/functions/fnc_moduleAddSpareParts.sqf b/addons/repair/functions/fnc_moduleAddSpareParts.sqf index 5d24de86f0..a70f821ffc 100644 --- a/addons/repair/functions/fnc_moduleAddSpareParts.sqf +++ b/addons/repair/functions/fnc_moduleAddSpareParts.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Jonpas * Adds spare parts to a vehicle. @@ -15,7 +16,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_logic"]; diff --git a/addons/repair/functions/fnc_moduleAssignEngineer.sqf b/addons/repair/functions/fnc_moduleAssignEngineer.sqf index fcdb08d4f1..1949da087a 100644 --- a/addons/repair/functions/fnc_moduleAssignEngineer.sqf +++ b/addons/repair/functions/fnc_moduleAssignEngineer.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Glowbal * Assign an engineer role to a unit. @@ -15,7 +16,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_logic"]; diff --git a/addons/repair/functions/fnc_moduleAssignRepairFacility.sqf b/addons/repair/functions/fnc_moduleAssignRepairFacility.sqf index 9f0b514f1d..c071058ad6 100644 --- a/addons/repair/functions/fnc_moduleAssignRepairFacility.sqf +++ b/addons/repair/functions/fnc_moduleAssignRepairFacility.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Glowbal * Assign a repair facility. @@ -15,7 +16,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_logic"]; diff --git a/addons/repair/functions/fnc_moduleAssignRepairVehicle.sqf b/addons/repair/functions/fnc_moduleAssignRepairVehicle.sqf index 63b5e3756f..4f5c601cce 100644 --- a/addons/repair/functions/fnc_moduleAssignRepairVehicle.sqf +++ b/addons/repair/functions/fnc_moduleAssignRepairVehicle.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Glowbal * Assign a repair vehicle. @@ -15,7 +16,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_logic"]; diff --git a/addons/repair/functions/fnc_moduleRepairSettings.sqf b/addons/repair/functions/fnc_moduleRepairSettings.sqf index 4bbd505006..831b9a2619 100644 --- a/addons/repair/functions/fnc_moduleRepairSettings.sqf +++ b/addons/repair/functions/fnc_moduleRepairSettings.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Adjusts repair damage settings. @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_logic"]; diff --git a/addons/repair/functions/fnc_normalizeHitPoints.sqf b/addons/repair/functions/fnc_normalizeHitPoints.sqf index cb06eeaeae..fb07147a6a 100644 --- a/addons/repair/functions/fnc_normalizeHitPoints.sqf +++ b/addons/repair/functions/fnc_normalizeHitPoints.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Used to normalize dependant hitpoints. May overwrite some global variables that are named like hitpoints or "Total" though... @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_vehicle"]; TRACE_2("params",_vehicle, typeOf _vehicle); diff --git a/addons/repair/functions/fnc_repair.sqf b/addons/repair/functions/fnc_repair.sqf index aeaafb4f97..9363f53671 100644 --- a/addons/repair/functions/fnc_repair.sqf +++ b/addons/repair/functions/fnc_repair.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Glowbal, KoffeinFlummi * Starts the repair process. @@ -16,7 +17,6 @@ * * Public: Yes */ -#include "script_component.hpp" params ["_caller", "_target", "_hitPoint", "_className"]; TRACE_4("params",_caller,_target,_hitPoint,_className); diff --git a/addons/repair/functions/fnc_repair_failure.sqf b/addons/repair/functions/fnc_repair_failure.sqf index c433b29f92..83cce85e0d 100644 --- a/addons/repair/functions/fnc_repair_failure.sqf +++ b/addons/repair/functions/fnc_repair_failure.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: KoffeinFlummi, Glowbal * Callback when repair fails. @@ -20,7 +21,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_args"]; _args params ["_caller", "_target","_selectionName","_className","","_usersOfItems", "_claimedObjects"]; diff --git a/addons/repair/functions/fnc_repair_success.sqf b/addons/repair/functions/fnc_repair_success.sqf index c2fa40bfbb..a86be84244 100644 --- a/addons/repair/functions/fnc_repair_success.sqf +++ b/addons/repair/functions/fnc_repair_success.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: KoffeinFlummi, Glowbal * Callback when repair completes. @@ -20,7 +21,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_args"]; _args params ["_caller", "_target","_selectionName","_className","","","_claimedObjects"]; diff --git a/addons/repair/functions/fnc_setDamage.sqf b/addons/repair/functions/fnc_setDamage.sqf index 78c7cae709..fbae505fae 100644 --- a/addons/repair/functions/fnc_setDamage.sqf +++ b/addons/repair/functions/fnc_setDamage.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Sets the structural damage of a vehicle without altering the hitPoints, requires local vehicle. @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_vehicle", "_damage"]; TRACE_2("params",_vehicle,_damage); diff --git a/addons/repair/functions/fnc_setHitPointDamage.sqf b/addons/repair/functions/fnc_setHitPointDamage.sqf index 771a1c9dce..f0313315e9 100644 --- a/addons/repair/functions/fnc_setHitPointDamage.sqf +++ b/addons/repair/functions/fnc_setHitPointDamage.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Set the hitpoint damage and change the structural damage acordingly, requires local vehicle. @@ -17,7 +18,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_vehicle", "_hitPointIndex", "_hitPointDamage", ["_useEffects", true]]; TRACE_4("params",_vehicle,typeOf _vehicle,_hitPointIndex,_hitPointDamage); diff --git a/addons/repair/functions/fnc_spawnObject.sqf b/addons/repair/functions/fnc_spawnObject.sqf index e927a19651..9dce6a7e01 100644 --- a/addons/repair/functions/fnc_spawnObject.sqf +++ b/addons/repair/functions/fnc_spawnObject.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Spawns an object of specified string, at specified position with specified damage taken. @@ -15,7 +16,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_item", "_position", ["_damage", 0]]; TRACE_3("params",_item,_position,_damage); diff --git a/addons/repair/functions/fnc_useItem.sqf b/addons/repair/functions/fnc_useItem.sqf index de3950fa22..760be7a39b 100644 --- a/addons/repair/functions/fnc_useItem.sqf +++ b/addons/repair/functions/fnc_useItem.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Glowbal * Use Equipment if any is available. @@ -14,7 +15,6 @@ * * Public: Yes */ -#include "script_component.hpp" params ["_unit", "_item"]; TRACE_2("params",_unit,_item); diff --git a/addons/repair/functions/fnc_useItems.sqf b/addons/repair/functions/fnc_useItems.sqf index 86b4400272..b6da87aecc 100644 --- a/addons/repair/functions/fnc_useItems.sqf +++ b/addons/repair/functions/fnc_useItems.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Glowbal * Use Equipment items if any is available. @@ -14,7 +15,6 @@ * * Public: Yes */ -#include "script_component.hpp" params ["_unit", "_items"]; TRACE_2("params",_unit,_items); diff --git a/addons/respawn/functions/fnc_canMoveRallypoint.sqf b/addons/respawn/functions/fnc_canMoveRallypoint.sqf index 174d76c69d..f37ad34265 100644 --- a/addons/respawn/functions/fnc_canMoveRallypoint.sqf +++ b/addons/respawn/functions/fnc_canMoveRallypoint.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Checks if a unit can move a rally point. @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_unit", "_side"]; diff --git a/addons/respawn/functions/fnc_handleInitPostServer.sqf b/addons/respawn/functions/fnc_handleInitPostServer.sqf index 9f43ed0445..4de502a9ea 100644 --- a/addons/respawn/functions/fnc_handleInitPostServer.sqf +++ b/addons/respawn/functions/fnc_handleInitPostServer.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Handle XEH Init Post on Server. @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_unit"]; diff --git a/addons/respawn/functions/fnc_handleKilled.sqf b/addons/respawn/functions/fnc_handleKilled.sqf index 6ca816e8a4..0a6fcd8ce8 100644 --- a/addons/respawn/functions/fnc_handleKilled.sqf +++ b/addons/respawn/functions/fnc_handleKilled.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: bux578 * Handles the XEH killed event. @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_unit"]; diff --git a/addons/respawn/functions/fnc_handlePlayerChanged.sqf b/addons/respawn/functions/fnc_handlePlayerChanged.sqf index 97592db06f..9fc71af9b7 100644 --- a/addons/respawn/functions/fnc_handlePlayerChanged.sqf +++ b/addons/respawn/functions/fnc_handlePlayerChanged.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Handle player changed event. Updates visibility of Rallypoint markers. @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_newUnit"]; diff --git a/addons/respawn/functions/fnc_handleRespawn.sqf b/addons/respawn/functions/fnc_handleRespawn.sqf index 3b1ae1c86f..a8c65056b3 100644 --- a/addons/respawn/functions/fnc_handleRespawn.sqf +++ b/addons/respawn/functions/fnc_handleRespawn.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: bux578 * Handles the XEH Respawn event. @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_unit"]; diff --git a/addons/respawn/functions/fnc_initRallypoint.sqf b/addons/respawn/functions/fnc_initRallypoint.sqf index 4715783ba3..0286813cef 100644 --- a/addons/respawn/functions/fnc_initRallypoint.sqf +++ b/addons/respawn/functions/fnc_initRallypoint.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Init code for rallypoints. @@ -15,7 +16,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_rallypoint", "_respawnMarker", "_side"]; diff --git a/addons/respawn/functions/fnc_module.sqf b/addons/respawn/functions/fnc_module.sqf index 97e6e91ccc..72b4003bbc 100644 --- a/addons/respawn/functions/fnc_module.sqf +++ b/addons/respawn/functions/fnc_module.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: KoffeinFlummi, bux578, esteldunedain, commy2 * Initializes the respawn module. @@ -15,7 +16,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_logic", "_units", "_activated"]; diff --git a/addons/respawn/functions/fnc_moduleFriendlyFire.sqf b/addons/respawn/functions/fnc_moduleFriendlyFire.sqf index 9709c85d66..2801e26b26 100644 --- a/addons/respawn/functions/fnc_moduleFriendlyFire.sqf +++ b/addons/respawn/functions/fnc_moduleFriendlyFire.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Initializes the friendly fire module. @@ -15,7 +16,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_logic", "_units", "_activated"]; diff --git a/addons/respawn/functions/fnc_moduleRallypoint.sqf b/addons/respawn/functions/fnc_moduleRallypoint.sqf index 72744ba712..a06220fec8 100644 --- a/addons/respawn/functions/fnc_moduleRallypoint.sqf +++ b/addons/respawn/functions/fnc_moduleRallypoint.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Initializes the Rallypoint module. @@ -15,7 +16,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_logic", "_units", "_activated"]; diff --git a/addons/respawn/functions/fnc_moveRallypoint.sqf b/addons/respawn/functions/fnc_moveRallypoint.sqf index 3ee1f7fbdb..d0e191829e 100644 --- a/addons/respawn/functions/fnc_moveRallypoint.sqf +++ b/addons/respawn/functions/fnc_moveRallypoint.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Moves a rallypoint to the players location. @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_unit", "_side"]; diff --git a/addons/respawn/functions/fnc_restoreGear.sqf b/addons/respawn/functions/fnc_restoreGear.sqf index 64b7437d15..990fa77ea8 100644 --- a/addons/respawn/functions/fnc_restoreGear.sqf +++ b/addons/respawn/functions/fnc_restoreGear.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: bux578, commy2 * Restores previously saved gear. @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_unit", "_allGear", "_activeWeaponAndMuzzle"]; TRACE_3("restoreGear",_unit, count _allGear, _activeWeaponAndMuzzle); diff --git a/addons/respawn/functions/fnc_showFriendlyFireMessage.sqf b/addons/respawn/functions/fnc_showFriendlyFireMessage.sqf index 388302150d..a20c9926f5 100644 --- a/addons/respawn/functions/fnc_showFriendlyFireMessage.sqf +++ b/addons/respawn/functions/fnc_showFriendlyFireMessage.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Shows a message in system chat of who killed whom. @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_unit", "_killer"]; diff --git a/addons/respawn/functions/fnc_teleportToRallypoint.sqf b/addons/respawn/functions/fnc_teleportToRallypoint.sqf index 9f2da46640..6c8a697279 100644 --- a/addons/respawn/functions/fnc_teleportToRallypoint.sqf +++ b/addons/respawn/functions/fnc_teleportToRallypoint.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Teleports a unit to a rallypoint @@ -15,7 +16,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_unit", "_side", "_rallypoint"]; diff --git a/addons/respawn/functions/fnc_updateRallypoint.sqf b/addons/respawn/functions/fnc_updateRallypoint.sqf index 4a71f4284e..363e12972b 100644 --- a/addons/respawn/functions/fnc_updateRallypoint.sqf +++ b/addons/respawn/functions/fnc_updateRallypoint.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Updates marker position and texts. @@ -15,7 +16,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_rallypoint", "_side", "_position"]; diff --git a/addons/safemode/functions/fnc_lockSafety.sqf b/addons/safemode/functions/fnc_lockSafety.sqf index 927b5c5d96..e3c1b71f30 100644 --- a/addons/safemode/functions/fnc_lockSafety.sqf +++ b/addons/safemode/functions/fnc_lockSafety.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Put weapon on safety, or take it off safety if safety is already put on. @@ -15,7 +16,6 @@ * * Public: No */ -#include "script_component.hpp" // don't immediately switch back if (inputAction "nextWeapon" > 0) exitWith {}; diff --git a/addons/safemode/functions/fnc_playChangeFiremodeSound.sqf b/addons/safemode/functions/fnc_playChangeFiremodeSound.sqf index 50998d93fb..d013d29696 100644 --- a/addons/safemode/functions/fnc_playChangeFiremodeSound.sqf +++ b/addons/safemode/functions/fnc_playChangeFiremodeSound.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Play weapon firemode change sound. @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_unit", "_weapon"]; diff --git a/addons/safemode/functions/fnc_setSafeModeVisual.sqf b/addons/safemode/functions/fnc_setSafeModeVisual.sqf index cc11be3806..587ac882d3 100644 --- a/addons/safemode/functions/fnc_setSafeModeVisual.sqf +++ b/addons/safemode/functions/fnc_setSafeModeVisual.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Show firemode indicator, representing safety lock @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_show"]; diff --git a/addons/safemode/functions/fnc_unlockSafety.sqf b/addons/safemode/functions/fnc_unlockSafety.sqf index 58ecba5189..5a787277e4 100644 --- a/addons/safemode/functions/fnc_unlockSafety.sqf +++ b/addons/safemode/functions/fnc_unlockSafety.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Take weapon of safety lock. @@ -15,7 +16,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_unit", "_weapon", "_muzzle"]; diff --git a/addons/sandbag/functions/fnc_canDeploy.sqf b/addons/sandbag/functions/fnc_canDeploy.sqf index d22fef72ee..88ecd03093 100644 --- a/addons/sandbag/functions/fnc_canDeploy.sqf +++ b/addons/sandbag/functions/fnc_canDeploy.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Ruthberg, commy2 * Checks if the player can deploy a sandbag. @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_unit"]; diff --git a/addons/sandbag/functions/fnc_deploy.sqf b/addons/sandbag/functions/fnc_deploy.sqf index da22483835..b336cee0a0 100644 --- a/addons/sandbag/functions/fnc_deploy.sqf +++ b/addons/sandbag/functions/fnc_deploy.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Garth 'L-H' de Wet, Ruthberg, edited by commy2 for better MP and eventual AI support * Starts the deploy process for sandbags. @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_unit"]; diff --git a/addons/sandbag/functions/fnc_deployCancel.sqf b/addons/sandbag/functions/fnc_deployCancel.sqf index bd5e1a0d86..6c5fb1e88a 100644 --- a/addons/sandbag/functions/fnc_deployCancel.sqf +++ b/addons/sandbag/functions/fnc_deployCancel.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Garth 'L-H' de Wet, Ruthberg, edited by commy2 for better MP and eventual AI support * Cancels sandbag deployment @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_unit", "_key"]; diff --git a/addons/sandbag/functions/fnc_deployConfirm.sqf b/addons/sandbag/functions/fnc_deployConfirm.sqf index 29fca46f54..e8abb586ee 100644 --- a/addons/sandbag/functions/fnc_deployConfirm.sqf +++ b/addons/sandbag/functions/fnc_deployConfirm.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Garth 'L-H' de Wet, Ruthberg, edited by commy2 for better MP and eventual AI support * Confirms sandbag deployment @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_unit"]; diff --git a/addons/sandbag/functions/fnc_handleInteractMenuOpened.sqf b/addons/sandbag/functions/fnc_handleInteractMenuOpened.sqf index 4aef8f7ec8..7683520c84 100644 --- a/addons/sandbag/functions/fnc_handleInteractMenuOpened.sqf +++ b/addons/sandbag/functions/fnc_handleInteractMenuOpened.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Handle opening of interaction menu. @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_unit"]; diff --git a/addons/sandbag/functions/fnc_handleKilled.sqf b/addons/sandbag/functions/fnc_handleKilled.sqf index b991af1e4b..b778de6cc6 100644 --- a/addons/sandbag/functions/fnc_handleKilled.sqf +++ b/addons/sandbag/functions/fnc_handleKilled.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Handle death. @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_unit"]; diff --git a/addons/sandbag/functions/fnc_handlePlayerChanged.sqf b/addons/sandbag/functions/fnc_handlePlayerChanged.sqf index 2828979bc1..2ba996f760 100644 --- a/addons/sandbag/functions/fnc_handlePlayerChanged.sqf +++ b/addons/sandbag/functions/fnc_handlePlayerChanged.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Handle player changes. @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_newPlayer", "_oldPlayer"]; diff --git a/addons/sandbag/functions/fnc_handlePlayerInventoryChanged.sqf b/addons/sandbag/functions/fnc_handlePlayerInventoryChanged.sqf index c83c4158c7..53674d8e86 100644 --- a/addons/sandbag/functions/fnc_handlePlayerInventoryChanged.sqf +++ b/addons/sandbag/functions/fnc_handlePlayerInventoryChanged.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Handle the InventoryChanged event. @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_unit"]; diff --git a/addons/sandbag/functions/fnc_handleScrollWheel.sqf b/addons/sandbag/functions/fnc_handleScrollWheel.sqf index 20d403a7a1..515e40053b 100644 --- a/addons/sandbag/functions/fnc_handleScrollWheel.sqf +++ b/addons/sandbag/functions/fnc_handleScrollWheel.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Garth 'L-H' de Wet, Ruthberg * Handles sandbag rotation @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" if (GVAR(deployPFH) == -1) exitWith {false}; diff --git a/addons/sandbag/functions/fnc_handleUnconscious.sqf b/addons/sandbag/functions/fnc_handleUnconscious.sqf index e225dac7c3..9b514007fb 100644 --- a/addons/sandbag/functions/fnc_handleUnconscious.sqf +++ b/addons/sandbag/functions/fnc_handleUnconscious.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Handle unconsciousness. @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_unit"]; diff --git a/addons/sandbag/functions/fnc_pickup.sqf b/addons/sandbag/functions/fnc_pickup.sqf index f7eaca9b72..7db56cdfbe 100644 --- a/addons/sandbag/functions/fnc_pickup.sqf +++ b/addons/sandbag/functions/fnc_pickup.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Ruthberg * Pick up sandbag @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_unit", "_sandbag"]; diff --git a/addons/scopes/XEH_postInit.sqf b/addons/scopes/XEH_postInit.sqf index 075ea48a76..a7720c62f5 100644 --- a/addons/scopes/XEH_postInit.sqf +++ b/addons/scopes/XEH_postInit.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: KoffeinFlummi, esteldunedain, Ruthberg * @@ -5,7 +6,6 @@ * Defines key bindings * */ -#include "script_component.hpp" if (!hasInterface) exitWith {}; diff --git a/addons/scopes/functions/fnc_adjustScope.sqf b/addons/scopes/functions/fnc_adjustScope.sqf index 8c48ee654b..1d99e3605f 100644 --- a/addons/scopes/functions/fnc_adjustScope.sqf +++ b/addons/scopes/functions/fnc_adjustScope.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: KoffeinFlummi, Ruthberg * Changes the adjustment for the current scope @@ -15,7 +16,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_unit", "_turretAndDirection", "_majorStep"]; TRACE_3("adjustScope",_unit,_turretAndDirection,_majorStep); diff --git a/addons/scopes/functions/fnc_adjustZero.sqf b/addons/scopes/functions/fnc_adjustZero.sqf index b551d6b2c7..56c3404a7c 100644 --- a/addons/scopes/functions/fnc_adjustZero.sqf +++ b/addons/scopes/functions/fnc_adjustZero.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: KoffeinFlummi, Ruthberg * Updates the zero adjustment of the current scope @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_unit"]; diff --git a/addons/scopes/functions/fnc_applyScopeAdjustment.sqf b/addons/scopes/functions/fnc_applyScopeAdjustment.sqf index f4d6959754..e64abb30fc 100644 --- a/addons/scopes/functions/fnc_applyScopeAdjustment.sqf +++ b/addons/scopes/functions/fnc_applyScopeAdjustment.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: KoffeinFlummi, Ruthberg * Applies the adjustment for the current scope @@ -16,7 +17,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_unit", "_elevation", "_windage", "_zero"]; diff --git a/addons/scopes/functions/fnc_calculateZeroAngleCorrection.sqf b/addons/scopes/functions/fnc_calculateZeroAngleCorrection.sqf index 4573a1c97a..017c617ebc 100644 --- a/addons/scopes/functions/fnc_calculateZeroAngleCorrection.sqf +++ b/addons/scopes/functions/fnc_calculateZeroAngleCorrection.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Ruthberg * Calculates the zero angle correction for the new zero range based on current zero range and bore height (distance between bore- and sight axis) @@ -18,7 +19,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_oldZeroRange", "_newZeroRange", "_boreHeight"/*in cm*/, "_weapon", "_ammo", "_magazine", "_advancedBallistics"]; diff --git a/addons/scopes/functions/fnc_canAdjustZero.sqf b/addons/scopes/functions/fnc_canAdjustZero.sqf index 996e6ae7fc..d9c2903cbd 100644 --- a/addons/scopes/functions/fnc_canAdjustZero.sqf +++ b/addons/scopes/functions/fnc_canAdjustZero.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: KoffeinFlummi, Ruthberg * Checks if the unit can change the zero adjustment of the current scope @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_unit"]; diff --git a/addons/scopes/functions/fnc_canResetZero.sqf b/addons/scopes/functions/fnc_canResetZero.sqf index fe9def4a19..c398294684 100644 --- a/addons/scopes/functions/fnc_canResetZero.sqf +++ b/addons/scopes/functions/fnc_canResetZero.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: KoffeinFlummi, Ruthberg * Checks if the unit can reset the zero adjustment of the current scope @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_unit"]; diff --git a/addons/scopes/functions/fnc_firedEH.sqf b/addons/scopes/functions/fnc_firedEH.sqf index b183109071..8870592885 100644 --- a/addons/scopes/functions/fnc_firedEH.sqf +++ b/addons/scopes/functions/fnc_firedEH.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: KoffeinFlummi, esteldunedain, Ruthberg * Adjusts the flight path of the bullet according to the zeroing. Called from the unified fired EH only for local and non-local players on foot. @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" //IGNORE_PRIVATE_WARNING ["_unit", "_weapon", "_muzzle", "_mode", "_ammo", "_magazine", "_projectile", "_vehicle", "_gunner", "_turret"]; TRACE_10("firedEH:",_unit, _weapon, _muzzle, _mode, _ammo, _magazine, _projectile, _vehicle, _gunner, _turret); diff --git a/addons/scopes/functions/fnc_getBaseAngle.sqf b/addons/scopes/functions/fnc_getBaseAngle.sqf index d529fef2f4..da5e965938 100644 --- a/addons/scopes/functions/fnc_getBaseAngle.sqf +++ b/addons/scopes/functions/fnc_getBaseAngle.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Ruthberg * Gets the base angle of the weapon & optic combination with the given weapon index @@ -14,7 +15,6 @@ * * Public: Yes */ -#include "script_component.hpp" params ["_unit", "_weaponIndex"]; diff --git a/addons/scopes/functions/fnc_getBoreHeight.sqf b/addons/scopes/functions/fnc_getBoreHeight.sqf index b76a9c7f9e..8926585989 100644 --- a/addons/scopes/functions/fnc_getBoreHeight.sqf +++ b/addons/scopes/functions/fnc_getBoreHeight.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Ruthberg * Gets the bore height of the weapon & optic combination with the given weapon index @@ -14,7 +15,6 @@ * * Public: Yes */ -#include "script_component.hpp" params ["_unit", "_weaponIndex"]; diff --git a/addons/scopes/functions/fnc_getCurrentZeroRange.sqf b/addons/scopes/functions/fnc_getCurrentZeroRange.sqf index 946e2e0b2b..6425fe047a 100644 --- a/addons/scopes/functions/fnc_getCurrentZeroRange.sqf +++ b/addons/scopes/functions/fnc_getCurrentZeroRange.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Ruthberg * Gets the zero range of the currently used optic @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_unit"]; diff --git a/addons/scopes/functions/fnc_getOptics.sqf b/addons/scopes/functions/fnc_getOptics.sqf index 64ad73ebdd..c9c1216d99 100644 --- a/addons/scopes/functions/fnc_getOptics.sqf +++ b/addons/scopes/functions/fnc_getOptics.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Gets the optic classnames of all currently equipped weapons. @@ -15,7 +16,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_unit"]; diff --git a/addons/scopes/functions/fnc_initModuleSettings.sqf b/addons/scopes/functions/fnc_initModuleSettings.sqf index db5d5cd8a5..b0bf38492d 100644 --- a/addons/scopes/functions/fnc_initModuleSettings.sqf +++ b/addons/scopes/functions/fnc_initModuleSettings.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Glowbal, Ruthberg * Module for adjusting the scopes settings @@ -15,7 +16,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_logic","_units", "_activated"]; diff --git a/addons/scopes/functions/fnc_inventoryCheck.sqf b/addons/scopes/functions/fnc_inventoryCheck.sqf index fa0fa426c6..68a76e6ffe 100644 --- a/addons/scopes/functions/fnc_inventoryCheck.sqf +++ b/addons/scopes/functions/fnc_inventoryCheck.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: KoffeinFlummi, Commy2, Ruthberg * Check if weapon optics changed and reset zeroing if needed @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_player"]; diff --git a/addons/scopes/functions/fnc_resetZero.sqf b/addons/scopes/functions/fnc_resetZero.sqf index 8d083cf2ee..4f4510a55d 100644 --- a/addons/scopes/functions/fnc_resetZero.sqf +++ b/addons/scopes/functions/fnc_resetZero.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: KoffeinFlummi, Ruthberg * Resets the zero adjustment of the current scope @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_unit"]; diff --git a/addons/scopes/functions/fnc_showZeroing.sqf b/addons/scopes/functions/fnc_showZeroing.sqf index 533d68f7e1..ada869b5fd 100644 --- a/addons/scopes/functions/fnc_showZeroing.sqf +++ b/addons/scopes/functions/fnc_showZeroing.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: KoffeinFlummi, esteldunedain * Display the adjustment knobs, update their value and fade them out later @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" disableSerialization; diff --git a/addons/slideshow/functions/fnc_addSlideActions.sqf b/addons/slideshow/functions/fnc_addSlideActions.sqf index 177627bb7b..6acd304d32 100644 --- a/addons/slideshow/functions/fnc_addSlideActions.sqf +++ b/addons/slideshow/functions/fnc_addSlideActions.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Jonpas * Adds controller slide actions. @@ -17,7 +18,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_objects", "_images", "_names", "_controller", "_currentSlideshow"]; diff --git a/addons/slideshow/functions/fnc_autoTransition.sqf b/addons/slideshow/functions/fnc_autoTransition.sqf index fda7b8ce1b..50e8b1d13d 100644 --- a/addons/slideshow/functions/fnc_autoTransition.sqf +++ b/addons/slideshow/functions/fnc_autoTransition.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Jonpas * Handles automatic slide transitions using waitAndExecute in a PFH-like manner resulting in no performance loss. @@ -16,7 +17,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_objects", "_images", "_varString", "_duration"]; diff --git a/addons/slideshow/functions/fnc_createSlideshow.sqf b/addons/slideshow/functions/fnc_createSlideshow.sqf index b2bd602e29..965a823941 100644 --- a/addons/slideshow/functions/fnc_createSlideshow.sqf +++ b/addons/slideshow/functions/fnc_createSlideshow.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Jonpas, DaC * Prepares necessary variables and default image. @@ -18,7 +19,6 @@ * * Public: Yes */ -#include "script_component.hpp" params [ ["_objects", [], [[]] ], diff --git a/addons/slideshow/functions/fnc_moduleInit.sqf b/addons/slideshow/functions/fnc_moduleInit.sqf index caef4cb2d8..b3cbf8bf43 100644 --- a/addons/slideshow/functions/fnc_moduleInit.sqf +++ b/addons/slideshow/functions/fnc_moduleInit.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Jonpas * Initializes the module. @@ -15,7 +16,6 @@ * * Public: No */ -#include "script_component.hpp" // Exit on Headless Client if (!hasInterface && !isDedicated) exitWith {}; diff --git a/addons/spectator/functions/fnc_cam.sqf b/addons/spectator/functions/fnc_cam.sqf index 992476d53f..d61fff40c1 100644 --- a/addons/spectator/functions/fnc_cam.sqf +++ b/addons/spectator/functions/fnc_cam.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Nelson Duarte, SilentSpike * Handles camera initialisation and destruction @@ -14,8 +15,6 @@ * Public: No */ -#include "script_component.hpp" - params ["_init"]; TRACE_1("cam",_init); diff --git a/addons/spectator/functions/fnc_cam_prepareTarget.sqf b/addons/spectator/functions/fnc_cam_prepareTarget.sqf index 81bec1504e..236924b255 100644 --- a/addons/spectator/functions/fnc_cam_prepareTarget.sqf +++ b/addons/spectator/functions/fnc_cam_prepareTarget.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Nelson Duarte, SilentSpike * Moves the spectator camera to a position relative to the camera focus. @@ -15,8 +16,6 @@ * Public: No */ -#include "script_component.hpp" - private _focus = vehicle (param [0, objNull, [objNull]]); TRACE_1("cam_prepareTarget",_focus); diff --git a/addons/spectator/functions/fnc_cam_resetTarget.sqf b/addons/spectator/functions/fnc_cam_resetTarget.sqf index 94f934d6d6..5286d944e3 100644 --- a/addons/spectator/functions/fnc_cam_resetTarget.sqf +++ b/addons/spectator/functions/fnc_cam_resetTarget.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Nelson Duarte, SilentSpike * Removes the current camera interest and detaches dummy target. @@ -14,8 +15,6 @@ * Public: No */ -#include "script_component.hpp" - private _camera = GVAR(camera); private _dummy = GVAR(camDummy); diff --git a/addons/spectator/functions/fnc_cam_setCameraMode.sqf b/addons/spectator/functions/fnc_cam_setCameraMode.sqf index 02238ed91e..3943823f8a 100644 --- a/addons/spectator/functions/fnc_cam_setCameraMode.sqf +++ b/addons/spectator/functions/fnc_cam_setCameraMode.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Nelson Duarte, AACO, SilentSpike * Function used to select the camera mode @@ -16,8 +17,6 @@ * Public: No */ -#include "script_component.hpp" - params ["_newMode"]; private _oldMode = GVAR(camMode); diff --git a/addons/spectator/functions/fnc_cam_setTarget.sqf b/addons/spectator/functions/fnc_cam_setTarget.sqf index 51cd80215a..4587af8c34 100644 --- a/addons/spectator/functions/fnc_cam_setTarget.sqf +++ b/addons/spectator/functions/fnc_cam_setTarget.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Nelson Duarte, SilentSpike * Sets the current camera interest using dummy target. @@ -13,8 +14,6 @@ * * Public: No */ - -#include "script_component.hpp" #define CAMERA_TARGET_CHANGE_TIME 0.5 params ["_object"]; diff --git a/addons/spectator/functions/fnc_cam_setVisionMode.sqf b/addons/spectator/functions/fnc_cam_setVisionMode.sqf index c9eed499fe..ccc761934d 100644 --- a/addons/spectator/functions/fnc_cam_setVisionMode.sqf +++ b/addons/spectator/functions/fnc_cam_setVisionMode.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: SilentSpike * Function used to select the camera vision mode @@ -14,8 +15,6 @@ * Public: No */ -#include "script_component.hpp" - params ["_newVision"]; private _oldVision = GVAR(camVision); diff --git a/addons/spectator/functions/fnc_cam_tick.sqf b/addons/spectator/functions/fnc_cam_tick.sqf index 1ba9ee2797..3ec0dbe5e6 100644 --- a/addons/spectator/functions/fnc_cam_tick.sqf +++ b/addons/spectator/functions/fnc_cam_tick.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Nelson Duarte, AACO, SilentSpike * Function used to perform camera ticks @@ -19,8 +20,6 @@ * Public: No */ -#include "script_component.hpp" - BEGIN_COUNTER(camTick); private _cameraMode = GVAR(camMode); private _camTarget = GVAR(camFocus); diff --git a/addons/spectator/functions/fnc_cam_toggleSlow.sqf b/addons/spectator/functions/fnc_cam_toggleSlow.sqf index e689351ce8..47ad2a2106 100644 --- a/addons/spectator/functions/fnc_cam_toggleSlow.sqf +++ b/addons/spectator/functions/fnc_cam_toggleSlow.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Nelson Duarte, SilentSpike * Function used to set camera slow speed mode @@ -14,8 +15,6 @@ * Public: No */ -#include "script_component.hpp" - params ["_slowSpeed"]; if !(GVAR(camSlow) isEqualTo _slowSpeed) then { diff --git a/addons/spectator/functions/fnc_compat_counter.sqf b/addons/spectator/functions/fnc_compat_counter.sqf index 8a54d6dbdf..158bcbd0a5 100644 --- a/addons/spectator/functions/fnc_compat_counter.sqf +++ b/addons/spectator/functions/fnc_compat_counter.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: SilentSpike * Handles integrating the counter respawn template into the spectator UI @@ -15,8 +16,6 @@ * * Public: No */ - -#include "script_component.hpp" #define IDC_COUNTER_TITLE 1001 #define IDC_COUNTER_BACK 1002 #define IDC_COUNTER_TEXT 1003 diff --git a/addons/spectator/functions/fnc_compat_spectatorBI.sqf b/addons/spectator/functions/fnc_compat_spectatorBI.sqf index 0024664c88..f8817468f1 100644 --- a/addons/spectator/functions/fnc_compat_spectatorBI.sqf +++ b/addons/spectator/functions/fnc_compat_spectatorBI.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: SilentSpike * Handles "compatibility" (i.e. override) for BI spectator respawn types 1, 4 & 5 @@ -16,8 +17,6 @@ * Public: No */ -#include "script_component.hpp" - private _respawn = getMissionConfigValue ["respawn",0]; if (_respawn isEqualType "") then { _respawn = ["","bird","","","group","side"] find (toLower _respawn); }; if !(_respawn in [1,4,5]) exitWith {}; diff --git a/addons/spectator/functions/fnc_compat_zeus.sqf b/addons/spectator/functions/fnc_compat_zeus.sqf index f379e549ce..a8f190bdd4 100644 --- a/addons/spectator/functions/fnc_compat_zeus.sqf +++ b/addons/spectator/functions/fnc_compat_zeus.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: SilentSpike * Handles compatibility with curator interface (i.e. re-opens spectator if applicable) @@ -16,8 +17,6 @@ * Public: No */ -#include "script_component.hpp" - params ["_display"]; _display displayAddEventHandler ["Unload",{ diff --git a/addons/spectator/functions/fnc_getCameraAttributes.sqf b/addons/spectator/functions/fnc_getCameraAttributes.sqf index 3f43a9003a..d9e53082ed 100644 --- a/addons/spectator/functions/fnc_getCameraAttributes.sqf +++ b/addons/spectator/functions/fnc_getCameraAttributes.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: SilentSpike * Returns the current spectator camera attributes (see setCameraAttributes for details). @@ -14,8 +15,6 @@ * Public: Yes */ -#include "script_component.hpp" - if !(isNil QGVAR(camera)) then { [GVAR(camMode), GVAR(camFocus), GVAR(camVision), getPosATL GVAR(camera), getDirVisual GVAR(camera)] } else { diff --git a/addons/spectator/functions/fnc_getGroupIcon.sqf b/addons/spectator/functions/fnc_getGroupIcon.sqf index fdc2772edc..a408df73dc 100644 --- a/addons/spectator/functions/fnc_getGroupIcon.sqf +++ b/addons/spectator/functions/fnc_getGroupIcon.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: SilentSpike * Function used to get an appropriate icon for provided group. Approximate. @@ -14,8 +15,6 @@ * * Public: No */ - -#include "script_component.hpp" #define ICON_PATH(var1) QUOTE(a3\ui_f\data\Map\Markers\NATO\var1) // Military icons diff --git a/addons/spectator/functions/fnc_getTargetEntities.sqf b/addons/spectator/functions/fnc_getTargetEntities.sqf index 80ee72fe03..162967a1aa 100644 --- a/addons/spectator/functions/fnc_getTargetEntities.sqf +++ b/addons/spectator/functions/fnc_getTargetEntities.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: SilentSpike * Gets the possible entities to spectate based on settings. @@ -15,8 +16,6 @@ * Public: No */ -#include "script_component.hpp" - // Include dead units if specified (used by entity list) private _entities = allUnits; if (param [0,false]) then { _entities append allDeadMen; }; diff --git a/addons/spectator/functions/fnc_handleFired.sqf b/addons/spectator/functions/fnc_handleFired.sqf index 4b0d640585..b2efb97a5d 100644 --- a/addons/spectator/functions/fnc_handleFired.sqf +++ b/addons/spectator/functions/fnc_handleFired.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Nelson Duarte, AACO, SilentSpike * Function used to add projectiles to be drawn when a unit fires @@ -14,8 +15,6 @@ * Public: No */ -#include "script_component.hpp" - params [ "_unit", ["_weapon", "", [""]], diff --git a/addons/spectator/functions/fnc_moduleSpectatorSettings.sqf b/addons/spectator/functions/fnc_moduleSpectatorSettings.sqf index 4a7c891497..267ce5615f 100644 --- a/addons/spectator/functions/fnc_moduleSpectatorSettings.sqf +++ b/addons/spectator/functions/fnc_moduleSpectatorSettings.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: SilentSpike * Read spectator settings from module @@ -16,8 +17,6 @@ * Public: No */ -#include "script_component.hpp" - params ["_logic", "_units", "_activated"]; if !(_activated) exitWith {}; diff --git a/addons/spectator/functions/fnc_players.sqf b/addons/spectator/functions/fnc_players.sqf index 3525b835d5..f79c6ce5e9 100644 --- a/addons/spectator/functions/fnc_players.sqf +++ b/addons/spectator/functions/fnc_players.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: SilentSpike * Return all of the player entities who are currently in ace spectator @@ -14,6 +15,4 @@ * Public: Yes */ -#include "script_component.hpp" - allPlayers select { GETVAR(_x,GVAR(isSet),false) } diff --git a/addons/spectator/functions/fnc_respawnTemplate.sqf b/addons/spectator/functions/fnc_respawnTemplate.sqf index d5b91bbd2e..9cd54ac005 100644 --- a/addons/spectator/functions/fnc_respawnTemplate.sqf +++ b/addons/spectator/functions/fnc_respawnTemplate.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: SilentSpike * The ace_spectator respawn template, compatible with types 1,2,3,4 & 5 @@ -20,8 +21,6 @@ * Public: No */ -#include "script_component.hpp" - params [["_newCorpse",objNull,[objNull]], ["_oldKiller",objNull,[objNull]], ["_respawn",0,[0]], ["_respawnDelay",0,[0]]]; TRACE_4("respawnTemplate",_newCorpse,_oldKiller,_respawn,_respawnDelay); diff --git a/addons/spectator/functions/fnc_setCameraAttributes.sqf b/addons/spectator/functions/fnc_setCameraAttributes.sqf index c9a272407b..2ee5140d80 100644 --- a/addons/spectator/functions/fnc_setCameraAttributes.sqf +++ b/addons/spectator/functions/fnc_setCameraAttributes.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: SilentSpike * Sets the spectator camera attributes as desired. Local effect. @@ -32,8 +33,6 @@ * Public: Yes */ -#include "script_component.hpp" - params [ ["_mode",nil,[0]], ["_focus",nil,[objNull,true]], diff --git a/addons/spectator/functions/fnc_setFocus.sqf b/addons/spectator/functions/fnc_setFocus.sqf index e2054ecfe6..f524341a1f 100644 --- a/addons/spectator/functions/fnc_setFocus.sqf +++ b/addons/spectator/functions/fnc_setFocus.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: AACO, SilentSpike * Function used to set the camera focus @@ -14,8 +15,6 @@ * Public: No */ -#include "script_component.hpp" - params [["_newFocus", objNull, [objNull,true]]]; // If boolean provided then first find a focus diff --git a/addons/spectator/functions/fnc_setSpectator.sqf b/addons/spectator/functions/fnc_setSpectator.sqf index ca829559e7..d9942cc3ab 100644 --- a/addons/spectator/functions/fnc_setSpectator.sqf +++ b/addons/spectator/functions/fnc_setSpectator.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: SilentSpike * Enter/exit spectator mode for the local player @@ -19,8 +20,6 @@ * Public: Yes */ -#include "script_component.hpp" - params [["_set",true,[true]], ["_force",true,[true]], ["_hide",true,[true]]]; TRACE_3("Params",_set,_force,_hide); diff --git a/addons/spectator/functions/fnc_switchFocus.sqf b/addons/spectator/functions/fnc_switchFocus.sqf index 444bd72b6d..8083a15e0f 100644 --- a/addons/spectator/functions/fnc_switchFocus.sqf +++ b/addons/spectator/functions/fnc_switchFocus.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Nelson Duarte, SilentSpike * Function used to switch to next or previous camera focus @@ -14,8 +15,6 @@ * Public: No */ -#include "script_component.hpp" - private _next = param [0, true]; private _entities = [true] call FUNC(getTargetEntities); private _focus = GVAR(camFocus); diff --git a/addons/spectator/functions/fnc_ui.sqf b/addons/spectator/functions/fnc_ui.sqf index 475f794deb..c135c74a69 100644 --- a/addons/spectator/functions/fnc_ui.sqf +++ b/addons/spectator/functions/fnc_ui.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: SilentSpike * Handles UI initialisation and destruction @@ -14,8 +15,6 @@ * Public: No */ -#include "script_component.hpp" - params ["_init"]; TRACE_1("ui",_init); diff --git a/addons/spectator/functions/fnc_ui_draw3D.sqf b/addons/spectator/functions/fnc_ui_draw3D.sqf index 3a60c28d64..744e1bfe5e 100644 --- a/addons/spectator/functions/fnc_ui_draw3D.sqf +++ b/addons/spectator/functions/fnc_ui_draw3D.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Nelson Duarte, AACO, SilentSpike * Function used to draw the 3D icons and track the cursor object @@ -13,8 +14,6 @@ * * Public: No */ - -#include "script_component.hpp" #define HEIGHT_OFFSET 1.5 BEGIN_COUNTER(updateCursor); diff --git a/addons/spectator/functions/fnc_ui_fadeList.sqf b/addons/spectator/functions/fnc_ui_fadeList.sqf index dbc5344228..c365ca4824 100644 --- a/addons/spectator/functions/fnc_ui_fadeList.sqf +++ b/addons/spectator/functions/fnc_ui_fadeList.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Nelson Duarte, AACO * Function used to fade/unfade the entitiy list @@ -14,8 +15,6 @@ * Public: No */ -#include "script_component.hpp" - params ["_fadeList"]; if (GVAR(uiVisible)) then { diff --git a/addons/spectator/functions/fnc_ui_getTreeDataIndex.sqf b/addons/spectator/functions/fnc_ui_getTreeDataIndex.sqf index 529751a09f..73d6cf8e89 100644 --- a/addons/spectator/functions/fnc_ui_getTreeDataIndex.sqf +++ b/addons/spectator/functions/fnc_ui_getTreeDataIndex.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Nelson Duarte, AACO * Function used to find the tree path of an entity @@ -14,8 +15,6 @@ * Public: No */ -#include "script_component.hpp" - params [["_data", "", [""]]]; scopeName QGVAR(getTreeDataIndex); diff --git a/addons/spectator/functions/fnc_ui_handleChildDestroyed.sqf b/addons/spectator/functions/fnc_ui_handleChildDestroyed.sqf index f2dcab47ef..abebcbc69f 100644 --- a/addons/spectator/functions/fnc_ui_handleChildDestroyed.sqf +++ b/addons/spectator/functions/fnc_ui_handleChildDestroyed.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Nelson Duarte * Function used to handle child destroyed event @@ -18,8 +19,6 @@ * Public: No */ -#include "script_component.hpp" - params ["_display","_child","_exitCode"]; if (_exitCode == 104) then { diff --git a/addons/spectator/functions/fnc_ui_handleKeyDown.sqf b/addons/spectator/functions/fnc_ui_handleKeyDown.sqf index 2ac7a049b7..aa10af0358 100644 --- a/addons/spectator/functions/fnc_ui_handleKeyDown.sqf +++ b/addons/spectator/functions/fnc_ui_handleKeyDown.sqf @@ -1,3 +1,5 @@ +#include "script_component.hpp" +#include "\A3\ui_f\hpp\defineDIKCodes.inc" /* * Author: Nelson Duarte, AACO, SilentSpike * Function used to handle key down event @@ -18,9 +20,6 @@ * Public: No */ -#include "script_component.hpp" -#include "\A3\ui_f\hpp\defineDIKCodes.inc" - params ["","_key","_shift","_ctrl","_alt"]; // Handle map toggle diff --git a/addons/spectator/functions/fnc_ui_handleKeyUp.sqf b/addons/spectator/functions/fnc_ui_handleKeyUp.sqf index 672f2f7bb8..1ab7213aa1 100644 --- a/addons/spectator/functions/fnc_ui_handleKeyUp.sqf +++ b/addons/spectator/functions/fnc_ui_handleKeyUp.sqf @@ -1,3 +1,5 @@ +#include "script_component.hpp" +#include "\A3\ui_f\hpp\defineDIKCodes.inc" /* * Author: Nelson Duarte, SilentSpike * Function used to handle key up event @@ -18,9 +20,6 @@ * Public: No */ -#include "script_component.hpp" -#include "\A3\ui_f\hpp\defineDIKCodes.inc" - params ["","_key","_shift","_ctrl","_alt"]; if (_key == DIK_LALT) exitWith { diff --git a/addons/spectator/functions/fnc_ui_handleListClick.sqf b/addons/spectator/functions/fnc_ui_handleListClick.sqf index 9616e77cac..225623668d 100644 --- a/addons/spectator/functions/fnc_ui_handleListClick.sqf +++ b/addons/spectator/functions/fnc_ui_handleListClick.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Nelson Duarte, AACO, SilentSpike * Function used to handle list single/double clicks @@ -18,7 +19,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_dblClick","_params"]; _params params ["_list","_index"]; diff --git a/addons/spectator/functions/fnc_ui_handleLoad.sqf b/addons/spectator/functions/fnc_ui_handleLoad.sqf index 1afa5ce123..bcaf90a699 100644 --- a/addons/spectator/functions/fnc_ui_handleLoad.sqf +++ b/addons/spectator/functions/fnc_ui_handleLoad.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: SilentSpike, Jonpas * Function used to handle load event. @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_display"]; diff --git a/addons/spectator/functions/fnc_ui_handleMapClick.sqf b/addons/spectator/functions/fnc_ui_handleMapClick.sqf index 6e74ed0e97..6d4e17e401 100644 --- a/addons/spectator/functions/fnc_ui_handleMapClick.sqf +++ b/addons/spectator/functions/fnc_ui_handleMapClick.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Nelson Duarte, AACO * Function used to handle map mouse click events @@ -17,8 +18,6 @@ * Public: No */ -#include "script_component.hpp" - params ["", "", "_x", "_y"]; if (isNull GVAR(uiMapHighlighted)) then { diff --git a/addons/spectator/functions/fnc_ui_handleMapDraw.sqf b/addons/spectator/functions/fnc_ui_handleMapDraw.sqf index 40ad5c3f9a..0602c7b4d2 100644 --- a/addons/spectator/functions/fnc_ui_handleMapDraw.sqf +++ b/addons/spectator/functions/fnc_ui_handleMapDraw.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Nelson Duarte, AACO * Function used to handle map draw @@ -13,8 +14,6 @@ * * Public: No */ - -#include "script_component.hpp" #define MAP_MIN_ENTITY_DISTANCE 30 // Moved timer into map controls group, update here diff --git a/addons/spectator/functions/fnc_ui_handleMouseButtonDblClick.sqf b/addons/spectator/functions/fnc_ui_handleMouseButtonDblClick.sqf index f880daf81b..ec7632e207 100644 --- a/addons/spectator/functions/fnc_ui_handleMouseButtonDblClick.sqf +++ b/addons/spectator/functions/fnc_ui_handleMouseButtonDblClick.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Nelson Duarte, AACO, SilentSpike * Function used to handle mouse button double clicks @@ -18,8 +19,6 @@ * Public: No */ -#include "script_component.hpp" - params ["", "_button"]; if (_button == 0 && {!isNull GVAR(cursorObject)}) then { diff --git a/addons/spectator/functions/fnc_ui_handleMouseButtonDown.sqf b/addons/spectator/functions/fnc_ui_handleMouseButtonDown.sqf index a6bb64d744..da74c071ba 100644 --- a/addons/spectator/functions/fnc_ui_handleMouseButtonDown.sqf +++ b/addons/spectator/functions/fnc_ui_handleMouseButtonDown.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Nelson Duarte, AACO, SilentSpike * Function used to handle mouse down event @@ -21,8 +22,6 @@ * Public: No */ -#include "script_component.hpp" - params ["", "_button"]; // Left click diff --git a/addons/spectator/functions/fnc_ui_handleMouseMoving.sqf b/addons/spectator/functions/fnc_ui_handleMouseMoving.sqf index af3f1ede62..de652f8845 100644 --- a/addons/spectator/functions/fnc_ui_handleMouseMoving.sqf +++ b/addons/spectator/functions/fnc_ui_handleMouseMoving.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Nelson Duarte, AACO * Function used to handle mouse moving event @@ -16,8 +17,6 @@ * Public: No */ -#include "script_component.hpp" - if (GVAR(holdingRMB) && { GVAR(camMode) == MODE_FOLLOW }) then { params ["", "_deltaX", "_deltaY"]; diff --git a/addons/spectator/functions/fnc_ui_handleMouseZChanged.sqf b/addons/spectator/functions/fnc_ui_handleMouseZChanged.sqf index 5e54cb8b72..8b109d430c 100644 --- a/addons/spectator/functions/fnc_ui_handleMouseZChanged.sqf +++ b/addons/spectator/functions/fnc_ui_handleMouseZChanged.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Nelson Duarte, AACO * Function used to handle mouse scroll event @@ -14,8 +15,6 @@ * * Public: No */ - -#include "script_component.hpp" #define FOLLOW_CAMERA_MAX_DISTANCE 5 if (GVAR(camMode) == MODE_FOLLOW) then { diff --git a/addons/spectator/functions/fnc_ui_toggleMap.sqf b/addons/spectator/functions/fnc_ui_toggleMap.sqf index 23114fe4cb..c968f39512 100644 --- a/addons/spectator/functions/fnc_ui_toggleMap.sqf +++ b/addons/spectator/functions/fnc_ui_toggleMap.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Nelson Duarte, AACO * Function used to toggle the map @@ -14,8 +15,6 @@ * Public: No */ -#include "script_component.hpp" - if (GVAR(uiMapVisible)) then { CTRL_MAP ctrlShow false; CTRL_MAP_GROUP ctrlShow false; diff --git a/addons/spectator/functions/fnc_ui_toggleUI.sqf b/addons/spectator/functions/fnc_ui_toggleUI.sqf index b15e8b1962..7e6716ba5e 100644 --- a/addons/spectator/functions/fnc_ui_toggleUI.sqf +++ b/addons/spectator/functions/fnc_ui_toggleUI.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Nelson Duarte, AACO, SilentSpike * Function used to toggle the whole user interface @@ -14,8 +15,6 @@ * Public: No */ -#include "script_component.hpp" - private _visible = !GVAR(uiVisible); { diff --git a/addons/spectator/functions/fnc_ui_updateCamButtons.sqf b/addons/spectator/functions/fnc_ui_updateCamButtons.sqf index d110aac4ea..77a8b3ca17 100644 --- a/addons/spectator/functions/fnc_ui_updateCamButtons.sqf +++ b/addons/spectator/functions/fnc_ui_updateCamButtons.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: SilentSpike * Used to update the docked camera buttons @@ -15,8 +16,6 @@ * Public: No */ -#include "script_component.hpp" - // These correspond to the camera mode indices #define ENUM_IDCs [IDC_FREE, IDC_FPS, IDC_FOLLOW] #define ENUM_ACTIVE [CAM_ICON_FREE_SELECTED, CAM_ICON_FPS_SELECTED, CAM_ICON_FOLLOW_SELECTED] diff --git a/addons/spectator/functions/fnc_ui_updateHelp.sqf b/addons/spectator/functions/fnc_ui_updateHelp.sqf index 65c9408ace..f715cb1eca 100644 --- a/addons/spectator/functions/fnc_ui_updateHelp.sqf +++ b/addons/spectator/functions/fnc_ui_updateHelp.sqf @@ -1,3 +1,5 @@ +#include "script_component.hpp" +#include "\A3\ui_f\hpp\defineDIKCodes.inc" /* * Author: Nelson Duarte, SilentSpike * Updates spectator UI help element @@ -17,9 +19,6 @@ * * Public: No */ - -#include "script_component.hpp" -#include "\A3\ui_f\hpp\defineDIKCodes.inc" #define MAX_CONTROLS_HELP_ENTRIES 12 if !(GVAR(uiHelpVisible)) exitWith {}; diff --git a/addons/spectator/functions/fnc_ui_updateIconsToDraw.sqf b/addons/spectator/functions/fnc_ui_updateIconsToDraw.sqf index 4c79d5ecf4..db3065c360 100644 --- a/addons/spectator/functions/fnc_ui_updateIconsToDraw.sqf +++ b/addons/spectator/functions/fnc_ui_updateIconsToDraw.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Nelson Duarte, AACO, SilentSpike * Function used update the things to 3D draw @@ -14,8 +15,6 @@ * Public: No */ -#include "script_component.hpp" - private _iconsToDraw = []; private _entitiesToDraw = []; diff --git a/addons/spectator/functions/fnc_ui_updateListEntities.sqf b/addons/spectator/functions/fnc_ui_updateListEntities.sqf index e5ee48005a..640f860ec0 100644 --- a/addons/spectator/functions/fnc_ui_updateListEntities.sqf +++ b/addons/spectator/functions/fnc_ui_updateListEntities.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Nelson Duarte, AACO, SilentSpike * Updates spectator UI list of units/groups @@ -14,8 +15,6 @@ * Public: No */ -#include "script_component.hpp" - private _newUnits = []; private _newGroups = []; // Always show the 4 main sides in this intuative order diff --git a/addons/spectator/functions/fnc_ui_updateListFocus.sqf b/addons/spectator/functions/fnc_ui_updateListFocus.sqf index 1e9dcafaec..3ac112e2cb 100644 --- a/addons/spectator/functions/fnc_ui_updateListFocus.sqf +++ b/addons/spectator/functions/fnc_ui_updateListFocus.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Nelson Duarte, AACO, SilentSpike * Function used to update the list current selection @@ -14,6 +15,4 @@ * Public: No */ -#include "script_component.hpp" - CTRL_LIST tvSetCurSel ([[GVAR(camFocus)] call BIS_fnc_objectVar] call FUNC(ui_getTreeDataIndex)); diff --git a/addons/spectator/functions/fnc_ui_updateWidget.sqf b/addons/spectator/functions/fnc_ui_updateWidget.sqf index 068bff7cb0..32337eae3d 100644 --- a/addons/spectator/functions/fnc_ui_updateWidget.sqf +++ b/addons/spectator/functions/fnc_ui_updateWidget.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Nelson Duarte, SilentSpike * Updates spectator UI unit info widget @@ -13,8 +14,6 @@ * * Public: No */ - -#include "script_component.hpp" #define IMG_COMMANDER "a3\Ui_f\data\IGUI\Cfg\CommandBar\imageCommander_ca.paa" #define IMG_DRIVER "a3\Ui_f\data\IGUI\Cfg\CommandBar\imageDriver_ca.paa" #define IMG_GUNNER "a3\Ui_f\data\IGUI\Cfg\CommandBar\imageGunner_ca.paa" diff --git a/addons/spectator/functions/fnc_updateCameraModes.sqf b/addons/spectator/functions/fnc_updateCameraModes.sqf index 2931fe5295..f6408c786d 100644 --- a/addons/spectator/functions/fnc_updateCameraModes.sqf +++ b/addons/spectator/functions/fnc_updateCameraModes.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: SilentSpike * Adds or removes spectator camera modes from the selection available to the local player. @@ -21,8 +22,6 @@ * Public: Yes */ -#include "script_component.hpp" - if !(EGVAR(common,settingsInitFinished)) exitWith { EGVAR(common,runAtSettingsInitialized) pushBack [DFUNC(updateCameraModes),_this]; }; diff --git a/addons/spectator/functions/fnc_updateSides.sqf b/addons/spectator/functions/fnc_updateSides.sqf index ec4606b951..1f612a3080 100644 --- a/addons/spectator/functions/fnc_updateSides.sqf +++ b/addons/spectator/functions/fnc_updateSides.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: SilentSpike * Adds or removes sides from the selection available to spectate. Local effect. @@ -17,8 +18,6 @@ * Public: Yes */ -#include "script_component.hpp" - params [["_addSides",[],[[]]], ["_removeSides",[],[[]]]]; // Add and remove sides diff --git a/addons/spectator/functions/fnc_updateUnits.sqf b/addons/spectator/functions/fnc_updateUnits.sqf index 85ad1739ff..a32198c3de 100644 --- a/addons/spectator/functions/fnc_updateUnits.sqf +++ b/addons/spectator/functions/fnc_updateUnits.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: SilentSpike * Adds and removed units from the spectator list. Local effect. @@ -15,8 +16,6 @@ * Public: Yes */ -#include "script_component.hpp" - // Function only matters on player clients if (!hasInterface) exitWith {}; diff --git a/addons/spectator/functions/fnc_updateVisionModes.sqf b/addons/spectator/functions/fnc_updateVisionModes.sqf index 56b6696752..eb0e07f256 100644 --- a/addons/spectator/functions/fnc_updateVisionModes.sqf +++ b/addons/spectator/functions/fnc_updateVisionModes.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: SilentSpike * Adds or removes spectator vision modes from the selection available to the local player. @@ -29,8 +30,6 @@ * Public: Yes */ -#include "script_component.hpp" - if !(EGVAR(common,settingsInitFinished)) exitWith { EGVAR(common,runAtSettingsInitialized) pushBack [DFUNC(updateVisionModes),_this]; }; diff --git a/addons/spottingscope/functions/fnc_animateReticle.sqf b/addons/spottingscope/functions/fnc_animateReticle.sqf index 7fbf71fe23..adca733814 100644 --- a/addons/spottingscope/functions/fnc_animateReticle.sqf +++ b/addons/spottingscope/functions/fnc_animateReticle.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Animate scripted reticle of spotting scope. @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" disableSerialization; diff --git a/addons/spottingscope/functions/fnc_pickup.sqf b/addons/spottingscope/functions/fnc_pickup.sqf index 1a15bd7880..2e8a5cc9e2 100644 --- a/addons/spottingscope/functions/fnc_pickup.sqf +++ b/addons/spottingscope/functions/fnc_pickup.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Rocko, Ruthberg * Pick up spotting scope @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_spottingScope", "_unit"]; diff --git a/addons/spottingscope/functions/fnc_place.sqf b/addons/spottingscope/functions/fnc_place.sqf index 06f0e0d63a..ddf02d7e1e 100644 --- a/addons/spottingscope/functions/fnc_place.sqf +++ b/addons/spottingscope/functions/fnc_place.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Rocko, Ruthberg * Place down spotting scope @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_unit", "_scopeClass"]; diff --git a/addons/switchunits/XEH_postInit.sqf b/addons/switchunits/XEH_postInit.sqf index 3e4fbdf46b..cffac8b57f 100644 --- a/addons/switchunits/XEH_postInit.sqf +++ b/addons/switchunits/XEH_postInit.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: bux578 * Initializes the SwitchUnits pbo. @@ -14,8 +15,6 @@ * Public: No */ -#include "script_component.hpp" - if (missionNamespace getVariable [QGVAR(EnableSwitchUnits), false]) then { [player] call FUNC(startSwitchUnits); diff --git a/addons/switchunits/functions/fnc_addMapFunction.sqf b/addons/switchunits/functions/fnc_addMapFunction.sqf index 3a7b20601c..28d9f05b78 100644 --- a/addons/switchunits/functions/fnc_addMapFunction.sqf +++ b/addons/switchunits/functions/fnc_addMapFunction.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: bux578 * Adds a mapClick Eventhandler @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_unit", "_sides"]; diff --git a/addons/switchunits/functions/fnc_handleMapClick.sqf b/addons/switchunits/functions/fnc_handleMapClick.sqf index db016ac8f3..4e8a527445 100644 --- a/addons/switchunits/functions/fnc_handleMapClick.sqf +++ b/addons/switchunits/functions/fnc_handleMapClick.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: bux578 * Switches to a unit close to a clicked map position @@ -16,7 +17,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_faction", "_pos"]; _faction params ["", "_sides"]; diff --git a/addons/switchunits/functions/fnc_initPlayer.sqf b/addons/switchunits/functions/fnc_initPlayer.sqf index 7b0c8f2603..e4d663f746 100644 --- a/addons/switchunits/functions/fnc_initPlayer.sqf +++ b/addons/switchunits/functions/fnc_initPlayer.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: bux578 * Initializes the player @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_playerUnit", "_sides"]; diff --git a/addons/switchunits/functions/fnc_isValidAi.sqf b/addons/switchunits/functions/fnc_isValidAi.sqf index 0b6a35c257..39fd0db94d 100644 --- a/addons/switchunits/functions/fnc_isValidAi.sqf +++ b/addons/switchunits/functions/fnc_isValidAi.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: bux578 * Checks if AI is a valid target for switching. @@ -13,7 +14,6 @@ * * Public: Yes */ -#include "script_component.hpp" params ["_unit"]; diff --git a/addons/switchunits/functions/fnc_markAiOnMap.sqf b/addons/switchunits/functions/fnc_markAiOnMap.sqf index 5d7eac6f1a..5dc1017c48 100644 --- a/addons/switchunits/functions/fnc_markAiOnMap.sqf +++ b/addons/switchunits/functions/fnc_markAiOnMap.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: bux578 * Creates markers for AI units for given sides. @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_sidesToShow"]; diff --git a/addons/switchunits/functions/fnc_module.sqf b/addons/switchunits/functions/fnc_module.sqf index c7762855a4..a2346ff2f4 100644 --- a/addons/switchunits/functions/fnc_module.sqf +++ b/addons/switchunits/functions/fnc_module.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: bux578 * Initializes the SwitchUnits module @@ -15,7 +16,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_logic", "_units", "_activated"]; diff --git a/addons/switchunits/functions/fnc_nearestPlayers.sqf b/addons/switchunits/functions/fnc_nearestPlayers.sqf index f20d5fcf02..9f60c1a6b7 100644 --- a/addons/switchunits/functions/fnc_nearestPlayers.sqf +++ b/addons/switchunits/functions/fnc_nearestPlayers.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: bux578 * Returns an array of alive players in a given radius around a given location @@ -14,7 +15,6 @@ * * Public: Yes */ -#include "script_component.hpp" params ["_position", "_radius"]; diff --git a/addons/switchunits/functions/fnc_startSwitchUnits.sqf b/addons/switchunits/functions/fnc_startSwitchUnits.sqf index 8d4707f040..759ae3cbf4 100644 --- a/addons/switchunits/functions/fnc_startSwitchUnits.sqf +++ b/addons/switchunits/functions/fnc_startSwitchUnits.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: bux578 * Starts the SwitchUnits functionality @@ -14,8 +15,6 @@ * Public: No */ -#include "script_component.hpp" - params ["_player"]; if (GVAR(EnableSwitchUnits)) then { diff --git a/addons/switchunits/functions/fnc_switchBack.sqf b/addons/switchunits/functions/fnc_switchBack.sqf index 4c3d05ae54..9762547545 100644 --- a/addons/switchunits/functions/fnc_switchBack.sqf +++ b/addons/switchunits/functions/fnc_switchBack.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: bux578 * Switches back to the original player unit @@ -14,7 +15,6 @@ * * Public: Yes */ -#include "script_component.hpp" params ["_originalPlayerUnit"]; diff --git a/addons/switchunits/functions/fnc_switchUnit.sqf b/addons/switchunits/functions/fnc_switchUnit.sqf index 84b766de4d..ab2867c3ef 100644 --- a/addons/switchunits/functions/fnc_switchUnit.sqf +++ b/addons/switchunits/functions/fnc_switchUnit.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: bux578 * Switches to the new given player unit @@ -13,7 +14,6 @@ * * Public: Yes */ -#include "script_component.hpp" params ["_unit"]; diff --git a/addons/tacticalladder/functions/fnc_cancelTLdeploy.sqf b/addons/tacticalladder/functions/fnc_cancelTLdeploy.sqf index 9dcd597230..dac503a828 100644 --- a/addons/tacticalladder/functions/fnc_cancelTLdeploy.sqf +++ b/addons/tacticalladder/functions/fnc_cancelTLdeploy.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Rocko, Ruthberg, commy2 * Cancel tactical ladder deployment @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" #define __ANIMS ["extract_1","extract_2","extract_3","extract_4","extract_5","extract_6","extract_7","extract_8","extract_9","extract_10","extract_11"] diff --git a/addons/tacticalladder/functions/fnc_confirmTLdeploy.sqf b/addons/tacticalladder/functions/fnc_confirmTLdeploy.sqf index 9f1c5c14bb..755d13d132 100644 --- a/addons/tacticalladder/functions/fnc_confirmTLdeploy.sqf +++ b/addons/tacticalladder/functions/fnc_confirmTLdeploy.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Rocko, Ruthberg, commy2 * Confirm tactical ladder deployment @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_unit", "_ladder"]; diff --git a/addons/tacticalladder/functions/fnc_deployTL.sqf b/addons/tacticalladder/functions/fnc_deployTL.sqf index 9df416dca7..1005cf5100 100644 --- a/addons/tacticalladder/functions/fnc_deployTL.sqf +++ b/addons/tacticalladder/functions/fnc_deployTL.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Rocko, Ruthberg * Deploy tactical ladder @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_unit"]; diff --git a/addons/tacticalladder/functions/fnc_handleInteractMenuOpened.sqf b/addons/tacticalladder/functions/fnc_handleInteractMenuOpened.sqf index 421329909e..54963d00ae 100644 --- a/addons/tacticalladder/functions/fnc_handleInteractMenuOpened.sqf +++ b/addons/tacticalladder/functions/fnc_handleInteractMenuOpened.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Handle opening of interaction menu. @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_unit"]; diff --git a/addons/tacticalladder/functions/fnc_handleKilled.sqf b/addons/tacticalladder/functions/fnc_handleKilled.sqf index 9a03e5b4a6..a67b41368e 100644 --- a/addons/tacticalladder/functions/fnc_handleKilled.sqf +++ b/addons/tacticalladder/functions/fnc_handleKilled.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Handle death. @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_unit"]; diff --git a/addons/tacticalladder/functions/fnc_handlePlayerChanged.sqf b/addons/tacticalladder/functions/fnc_handlePlayerChanged.sqf index a19cfeb107..25be5fe7bf 100644 --- a/addons/tacticalladder/functions/fnc_handlePlayerChanged.sqf +++ b/addons/tacticalladder/functions/fnc_handlePlayerChanged.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Handle player changes. @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" if (isNull GETGVAR(ladder,objNull)) exitWith {}; diff --git a/addons/tacticalladder/functions/fnc_handleScrollWheel.sqf b/addons/tacticalladder/functions/fnc_handleScrollWheel.sqf index ea8156a81d..4e46b61d4e 100644 --- a/addons/tacticalladder/functions/fnc_handleScrollWheel.sqf +++ b/addons/tacticalladder/functions/fnc_handleScrollWheel.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Rocko, Ruthberg * Handles lengthening and tilting of the ladder @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_scroll"]; diff --git a/addons/tacticalladder/functions/fnc_handleUnconscious.sqf b/addons/tacticalladder/functions/fnc_handleUnconscious.sqf index fe1bae5770..ed966a9f72 100644 --- a/addons/tacticalladder/functions/fnc_handleUnconscious.sqf +++ b/addons/tacticalladder/functions/fnc_handleUnconscious.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Handle unconsciousness. @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_unit"]; diff --git a/addons/tacticalladder/functions/fnc_isLadderEmpty.sqf b/addons/tacticalladder/functions/fnc_isLadderEmpty.sqf index 8267faf3c4..47c646ef29 100644 --- a/addons/tacticalladder/functions/fnc_isLadderEmpty.sqf +++ b/addons/tacticalladder/functions/fnc_isLadderEmpty.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Jonpas * Checks if Tactical Ladder is empty (no one climbing it). @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_ladder"]; diff --git a/addons/tacticalladder/functions/fnc_pickupTL.sqf b/addons/tacticalladder/functions/fnc_pickupTL.sqf index d8e313a17b..76cbea27d6 100644 --- a/addons/tacticalladder/functions/fnc_pickupTL.sqf +++ b/addons/tacticalladder/functions/fnc_pickupTL.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Rocko, Ruthberg, commy2 * Pick up tactical ladder @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_unit", "_ladder"]; diff --git a/addons/tacticalladder/functions/fnc_positionTL.sqf b/addons/tacticalladder/functions/fnc_positionTL.sqf index a52211884c..bbfd877c2f 100644 --- a/addons/tacticalladder/functions/fnc_positionTL.sqf +++ b/addons/tacticalladder/functions/fnc_positionTL.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Rocko, Ruthberg * Position tactical ladder @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" #define __ANIMS ["extract_1","extract_2","extract_3","extract_4","extract_5","extract_6","extract_7","extract_8","extract_9","extract_10","extract_11"] diff --git a/addons/tagging/functions/fnc_addCustomTag.sqf b/addons/tagging/functions/fnc_addCustomTag.sqf index b29fa7af88..4a0fdf6ced 100644 --- a/addons/tagging/functions/fnc_addCustomTag.sqf +++ b/addons/tagging/functions/fnc_addCustomTag.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Jonpas * Adds custom tag. Has to be executed on one machine only. @@ -17,7 +18,6 @@ * * Public: Yes */ -#include "script_component.hpp" params [ ["_identifier", "", [""]], diff --git a/addons/tagging/functions/fnc_addTagActions.sqf b/addons/tagging/functions/fnc_addTagActions.sqf index 82acf253ad..692fccd194 100644 --- a/addons/tagging/functions/fnc_addTagActions.sqf +++ b/addons/tagging/functions/fnc_addTagActions.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Jonpas * Compiles tags from ACE_Tags and returns children actions. @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_unit"]; diff --git a/addons/tagging/functions/fnc_applyCustomTag.sqf b/addons/tagging/functions/fnc_applyCustomTag.sqf index f03230e9da..123ce8df4c 100644 --- a/addons/tagging/functions/fnc_applyCustomTag.sqf +++ b/addons/tagging/functions/fnc_applyCustomTag.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Jonpas * Applies custom tag to the cache. @@ -17,7 +18,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_identifier", "_displayName", "_requiredItem"]; diff --git a/addons/tagging/functions/fnc_checkTaggable.sqf b/addons/tagging/functions/fnc_checkTaggable.sqf index e4328687a9..473d2e390e 100644 --- a/addons/tagging/functions/fnc_checkTaggable.sqf +++ b/addons/tagging/functions/fnc_checkTaggable.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: BaerMitUmlaut, esteldunedain * Checks if there is a taggable surface within 2.5m in front of the player. @@ -14,8 +15,6 @@ * Public: No */ -#include "script_component.hpp" - [_this, { params ["_unit"]; diff --git a/addons/tagging/functions/fnc_compileConfigTags.sqf b/addons/tagging/functions/fnc_compileConfigTags.sqf index 75e1cd2607..35b8f2d4c7 100644 --- a/addons/tagging/functions/fnc_compileConfigTags.sqf +++ b/addons/tagging/functions/fnc_compileConfigTags.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Jonpas * Compiles and caches tags from ACE_Tags config. @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" { private _failure = false; diff --git a/addons/tagging/functions/fnc_createTag.sqf b/addons/tagging/functions/fnc_createTag.sqf index c579c6e05f..296fc4503f 100644 --- a/addons/tagging/functions/fnc_createTag.sqf +++ b/addons/tagging/functions/fnc_createTag.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: BaerMitUmlaut, esteldunedain * Creates a tag and handle its destruction. Only execute on the server. @@ -18,8 +19,6 @@ * Public: No */ -#include "script_component.hpp" - params ["_tagPosASL", "_vectorDirAndUp", "_texture", "_object", "_unit"]; TRACE_5("createTag:",_tagPosASL,_vectorDirAndUp,_texture,_object,_unit); diff --git a/addons/tagging/functions/fnc_moduleInit.sqf b/addons/tagging/functions/fnc_moduleInit.sqf index 7430ce4981..3f1048e1e5 100644 --- a/addons/tagging/functions/fnc_moduleInit.sqf +++ b/addons/tagging/functions/fnc_moduleInit.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Jonpas * Initializes the Tagging module. @@ -15,7 +16,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_logic", "", "_activated"]; diff --git a/addons/tagging/functions/fnc_quickTag.sqf b/addons/tagging/functions/fnc_quickTag.sqf index 63a93e9946..dde4c02729 100644 --- a/addons/tagging/functions/fnc_quickTag.sqf +++ b/addons/tagging/functions/fnc_quickTag.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Jonpas * Selects random tag and applies it. @@ -14,8 +15,6 @@ * Public: No */ -#include "script_component.hpp" - // Exit if Quick Tag disabled if (GVAR(quickTag) == 0) exitWith {}; diff --git a/addons/tagging/functions/fnc_tag.sqf b/addons/tagging/functions/fnc_tag.sqf index 4893037117..2f129ece28 100644 --- a/addons/tagging/functions/fnc_tag.sqf +++ b/addons/tagging/functions/fnc_tag.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: BaerMitUmlaut, esteldunedain * Creates a tag on a wall that is on the closest surface within 2m on front of the unit. @@ -15,8 +16,6 @@ * Public: Yes */ -#include "script_component.hpp" - params [ ["_unit", objNull, [objNull]], ["_texture", "", [""]] diff --git a/addons/tagging/functions/fnc_tagTestingThread.sqf b/addons/tagging/functions/fnc_tagTestingThread.sqf index a21cf69f2b..dcfb5e0bac 100644 --- a/addons/tagging/functions/fnc_tagTestingThread.sqf +++ b/addons/tagging/functions/fnc_tagTestingThread.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: esteldunedain * Checks if tags are still leaning on an object periodically. @@ -14,8 +15,6 @@ * Public: No */ -#include "script_component.hpp" - GVAR(tagsToTest) = GVAR(tagsToTest) select { _x params ["_tag", "_tagPosASL", "_vectorDirAndUp"]; diff --git a/addons/trenches/functions/fnc_canContinueDiggingTrench.sqf b/addons/trenches/functions/fnc_canContinueDiggingTrench.sqf index 782c434dfd..97fee957b0 100644 --- a/addons/trenches/functions/fnc_canContinueDiggingTrench.sqf +++ b/addons/trenches/functions/fnc_canContinueDiggingTrench.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: SzwedzikPL * Checks if a unit can continue digging a trench @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_trench", "_unit"]; diff --git a/addons/trenches/functions/fnc_canDigTrench.sqf b/addons/trenches/functions/fnc_canDigTrench.sqf index 0749cbf574..d6bf05993d 100644 --- a/addons/trenches/functions/fnc_canDigTrench.sqf +++ b/addons/trenches/functions/fnc_canDigTrench.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Ruthberg, commy2, esteldunedain * Checks if a unit can dig a trench. @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_unit"]; diff --git a/addons/trenches/functions/fnc_canRemoveTrench.sqf b/addons/trenches/functions/fnc_canRemoveTrench.sqf index 73cf04f547..23347fc310 100644 --- a/addons/trenches/functions/fnc_canRemoveTrench.sqf +++ b/addons/trenches/functions/fnc_canRemoveTrench.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: SzwedzikPL * Checks if a unit can remove a trench @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_trench", "_unit"]; diff --git a/addons/trenches/functions/fnc_continueDiggingTrench.sqf b/addons/trenches/functions/fnc_continueDiggingTrench.sqf index de961c73ff..efedfa031b 100644 --- a/addons/trenches/functions/fnc_continueDiggingTrench.sqf +++ b/addons/trenches/functions/fnc_continueDiggingTrench.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Garth 'L-H' de Wet, Ruthberg, edited by commy2 for better MP and eventual AI support, esteldunedain * Continue process of digging trench. @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_trench", "_unit"]; TRACE_2("continueDiggingTrench",_trench,_unit); diff --git a/addons/trenches/functions/fnc_handleInteractMenuOpened.sqf b/addons/trenches/functions/fnc_handleInteractMenuOpened.sqf index 5e68b6f60f..1a27e28d60 100644 --- a/addons/trenches/functions/fnc_handleInteractMenuOpened.sqf +++ b/addons/trenches/functions/fnc_handleInteractMenuOpened.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Handle opening of interaction menu. @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_unit"]; diff --git a/addons/trenches/functions/fnc_handleKilled.sqf b/addons/trenches/functions/fnc_handleKilled.sqf index 6b57e20c91..1142ad0f3b 100644 --- a/addons/trenches/functions/fnc_handleKilled.sqf +++ b/addons/trenches/functions/fnc_handleKilled.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Handle death. @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_unit"]; diff --git a/addons/trenches/functions/fnc_handlePlayerChanged.sqf b/addons/trenches/functions/fnc_handlePlayerChanged.sqf index f4ebb8e2d5..77a152e421 100644 --- a/addons/trenches/functions/fnc_handlePlayerChanged.sqf +++ b/addons/trenches/functions/fnc_handlePlayerChanged.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Handle player changes. @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_newPlayer", "_oldPlayer"]; diff --git a/addons/trenches/functions/fnc_handlePlayerInventoryChanged.sqf b/addons/trenches/functions/fnc_handlePlayerInventoryChanged.sqf index fa3b935074..682cbae81e 100644 --- a/addons/trenches/functions/fnc_handlePlayerInventoryChanged.sqf +++ b/addons/trenches/functions/fnc_handlePlayerInventoryChanged.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Handle the InventoryChanged event. @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_unit"]; diff --git a/addons/trenches/functions/fnc_handleScrollWheel.sqf b/addons/trenches/functions/fnc_handleScrollWheel.sqf index 5dbe661417..242b79f1f0 100644 --- a/addons/trenches/functions/fnc_handleScrollWheel.sqf +++ b/addons/trenches/functions/fnc_handleScrollWheel.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Garth 'L-H' de Wet, Ruthberg * Handles sandbag rotation @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" if (GVAR(digPFH) == -1) exitWith {false}; diff --git a/addons/trenches/functions/fnc_handleUnconscious.sqf b/addons/trenches/functions/fnc_handleUnconscious.sqf index c1f282d6c3..6f600cecdf 100644 --- a/addons/trenches/functions/fnc_handleUnconscious.sqf +++ b/addons/trenches/functions/fnc_handleUnconscious.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Handle unconsciousness. @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_unit"]; diff --git a/addons/trenches/functions/fnc_placeCancel.sqf b/addons/trenches/functions/fnc_placeCancel.sqf index 1eaf7298a1..36bf5c8023 100644 --- a/addons/trenches/functions/fnc_placeCancel.sqf +++ b/addons/trenches/functions/fnc_placeCancel.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Garth 'L-H' de Wet, Ruthberg, edited by commy2 for better MP and eventual AI support * Cancels trench dig @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_unit", "_key"]; diff --git a/addons/trenches/functions/fnc_placeConfirm.sqf b/addons/trenches/functions/fnc_placeConfirm.sqf index 08c774d8c9..25d675d09b 100644 --- a/addons/trenches/functions/fnc_placeConfirm.sqf +++ b/addons/trenches/functions/fnc_placeConfirm.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Garth 'L-H' de Wet, Ruthberg, edited by commy2 for better MP and eventual AI support and esteldunedain * Confirms trench dig @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_unit"]; diff --git a/addons/trenches/functions/fnc_placeTrench.sqf b/addons/trenches/functions/fnc_placeTrench.sqf index 94826fb346..0f52786561 100644 --- a/addons/trenches/functions/fnc_placeTrench.sqf +++ b/addons/trenches/functions/fnc_placeTrench.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Garth 'L-H' de Wet, Ruthberg, edited by commy2 for better MP and eventual AI support, esteldunedain * Starts the place process for trench. @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_unit", "_trenchClass"]; diff --git a/addons/trenches/functions/fnc_removeTrench.sqf b/addons/trenches/functions/fnc_removeTrench.sqf index d22db5d27e..3a549eb16f 100644 --- a/addons/trenches/functions/fnc_removeTrench.sqf +++ b/addons/trenches/functions/fnc_removeTrench.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Garth 'L-H' de Wet, Ruthberg, edited by commy2 for better MP and eventual AI support and esteldunedain * Removes trench @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_trench", "_unit"]; TRACE_2("removeTrench",_trench,_unit); diff --git a/addons/trenches/functions/fnc_setTrenchPlacement.sqf b/addons/trenches/functions/fnc_setTrenchPlacement.sqf index 49c1efdaae..c314914efe 100644 --- a/addons/trenches/functions/fnc_setTrenchPlacement.sqf +++ b/addons/trenches/functions/fnc_setTrenchPlacement.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Garth 'L-H' de Wet, Ruthberg, edited by commy2 for better MP and eventual AI support and esteldunedain * Sets trench placement @@ -18,7 +19,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_unit", "_trench", "_trenchId", "_pos", "_vecDirAndUp", "_progress"]; diff --git a/addons/tripod/functions/fnc_adjust.sqf b/addons/tripod/functions/fnc_adjust.sqf index b81f9fa961..42af65be74 100644 --- a/addons/tripod/functions/fnc_adjust.sqf +++ b/addons/tripod/functions/fnc_adjust.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Ruthberg * Adjust tripod height @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_unit", "_tripod"]; diff --git a/addons/tripod/functions/fnc_handleInteractMenuOpened.sqf b/addons/tripod/functions/fnc_handleInteractMenuOpened.sqf index 014eed55d4..0103c0a590 100644 --- a/addons/tripod/functions/fnc_handleInteractMenuOpened.sqf +++ b/addons/tripod/functions/fnc_handleInteractMenuOpened.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Handle opening of interaction menu. @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_unit"]; diff --git a/addons/tripod/functions/fnc_handleKilled.sqf b/addons/tripod/functions/fnc_handleKilled.sqf index 90dd388617..1ce7ce5e0b 100644 --- a/addons/tripod/functions/fnc_handleKilled.sqf +++ b/addons/tripod/functions/fnc_handleKilled.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Handle death. @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_unit"]; diff --git a/addons/tripod/functions/fnc_handlePlayerChanged.sqf b/addons/tripod/functions/fnc_handlePlayerChanged.sqf index 3d37b7949f..506699c293 100644 --- a/addons/tripod/functions/fnc_handlePlayerChanged.sqf +++ b/addons/tripod/functions/fnc_handlePlayerChanged.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Handle player changes. @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_newPlayer", "_oldPlayer"]; diff --git a/addons/tripod/functions/fnc_handleScrollWheel.sqf b/addons/tripod/functions/fnc_handleScrollWheel.sqf index 1589bbc476..d1cc67272c 100644 --- a/addons/tripod/functions/fnc_handleScrollWheel.sqf +++ b/addons/tripod/functions/fnc_handleScrollWheel.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Garth 'L-H' de Wet, Ruthberg * Handles sandbag rotation @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_scroll"]; diff --git a/addons/tripod/functions/fnc_handleUnconscious.sqf b/addons/tripod/functions/fnc_handleUnconscious.sqf index 01558d6389..632be51e0d 100644 --- a/addons/tripod/functions/fnc_handleUnconscious.sqf +++ b/addons/tripod/functions/fnc_handleUnconscious.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Handle unconsciousness. @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_unit"]; diff --git a/addons/tripod/functions/fnc_pickup.sqf b/addons/tripod/functions/fnc_pickup.sqf index dc8b990515..931efaddfa 100644 --- a/addons/tripod/functions/fnc_pickup.sqf +++ b/addons/tripod/functions/fnc_pickup.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Rocko, Ruthberg * Pick up tripod @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_unit", "_tripod"]; diff --git a/addons/tripod/functions/fnc_place.sqf b/addons/tripod/functions/fnc_place.sqf index 0b63daeeec..c903c0148d 100644 --- a/addons/tripod/functions/fnc_place.sqf +++ b/addons/tripod/functions/fnc_place.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Rocko, Ruthberg * Place down tripod @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_unit", "_tripodClass"]; diff --git a/addons/ui/functions/fnc_compileConfigUI.sqf b/addons/ui/functions/fnc_compileConfigUI.sqf index 3de21d8ff4..0baaa8ca5c 100644 --- a/addons/ui/functions/fnc_compileConfigUI.sqf +++ b/addons/ui/functions/fnc_compileConfigUI.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Jonpas * Compiles and caches UI from ACE_UI config. @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" { private _failure = false; diff --git a/addons/ui/functions/fnc_moduleInit.sqf b/addons/ui/functions/fnc_moduleInit.sqf index a8328c653d..b1295a6c10 100644 --- a/addons/ui/functions/fnc_moduleInit.sqf +++ b/addons/ui/functions/fnc_moduleInit.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Jonpas * Initializes the UI module. @@ -15,7 +16,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_logic", "_units", "_activated"]; diff --git a/addons/ui/functions/fnc_setAdvancedElement.sqf b/addons/ui/functions/fnc_setAdvancedElement.sqf index 6e931894e6..0b5a174c5a 100644 --- a/addons/ui/functions/fnc_setAdvancedElement.sqf +++ b/addons/ui/functions/fnc_setAdvancedElement.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Jonpas * Sets advanced visible element of the UI using displays and controls. @@ -16,7 +17,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_element", "_show", ["_showHint", false, [true]], ["_force", false, [true]] ]; diff --git a/addons/ui/functions/fnc_setElementVisibility.sqf b/addons/ui/functions/fnc_setElementVisibility.sqf index 4cbdf1a0bc..f6c4525828 100644 --- a/addons/ui/functions/fnc_setElementVisibility.sqf +++ b/addons/ui/functions/fnc_setElementVisibility.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Jonpas * Setter for toggling advanced element visibility. @@ -16,7 +17,6 @@ * * Public: Yes */ -#include "script_component.hpp" params [ ["_source", "", [""]], diff --git a/addons/ui/functions/fnc_setElements.sqf b/addons/ui/functions/fnc_setElements.sqf index 1d296ba7d8..8e7da0eb3d 100644 --- a/addons/ui/functions/fnc_setElements.sqf +++ b/addons/ui/functions/fnc_setElements.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Jonpas * Sets basic visible elements of the UI using showHUD setter. @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" params [["_showHint", false]]; diff --git a/addons/vector/functions/fnc_adjustBrightness.sqf b/addons/vector/functions/fnc_adjustBrightness.sqf index b31cc5361c..2cf2d5a923 100644 --- a/addons/vector/functions/fnc_adjustBrightness.sqf +++ b/addons/vector/functions/fnc_adjustBrightness.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * @@ -14,8 +15,6 @@ * Public: No */ -#include "script_component.hpp" - disableSerialization; private _dlgVector = GETUVAR(ACE_dlgVector,displayNull); diff --git a/addons/vector/functions/fnc_clearDisplay.sqf b/addons/vector/functions/fnc_clearDisplay.sqf index 3ec3ef7eb6..b54a3f534f 100644 --- a/addons/vector/functions/fnc_clearDisplay.sqf +++ b/addons/vector/functions/fnc_clearDisplay.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Clears the vectors control items. @@ -14,8 +15,6 @@ * Public: No */ -#include "script_component.hpp" - disableSerialization; private _dlgVector = GETUVAR(ACE_dlgVector,displayNull); diff --git a/addons/vector/functions/fnc_convertToTexturesDegree.sqf b/addons/vector/functions/fnc_convertToTexturesDegree.sqf index 0a4fc349d3..17754244f1 100644 --- a/addons/vector/functions/fnc_convertToTexturesDegree.sqf +++ b/addons/vector/functions/fnc_convertToTexturesDegree.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * converts azimuth into array of textures for the vectors scripted info control @@ -14,8 +15,6 @@ * Public: No */ -#include "script_component.hpp" - params ["_number"]; if (GVAR(useMil)) then { diff --git a/addons/vector/functions/fnc_convertToTexturesDistance.sqf b/addons/vector/functions/fnc_convertToTexturesDistance.sqf index 0140e45a2e..cb2f1ba990 100644 --- a/addons/vector/functions/fnc_convertToTexturesDistance.sqf +++ b/addons/vector/functions/fnc_convertToTexturesDistance.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * converts rangefinder distance into array of textures for the vectors scripted info control @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_number"]; _number = round _number; diff --git a/addons/vector/functions/fnc_convertToTexturesFOS.sqf b/addons/vector/functions/fnc_convertToTexturesFOS.sqf index 58ce94547b..eb9e6f840c 100644 --- a/addons/vector/functions/fnc_convertToTexturesFOS.sqf +++ b/addons/vector/functions/fnc_convertToTexturesFOS.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * converts rangefinder distance into array of textures for the vectors scripted info control @@ -14,8 +15,6 @@ * * Public: No */ - -#include "script_component.hpp" params ["_number", "_coordinate"]; _number = round (_number select _coordinate); diff --git a/addons/vector/functions/fnc_dataTransfer.sqf b/addons/vector/functions/fnc_dataTransfer.sqf index 4a91a0636d..a1ee95df0c 100644 --- a/addons/vector/functions/fnc_dataTransfer.sqf +++ b/addons/vector/functions/fnc_dataTransfer.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: PabstMirror * Data transfer over a connected cable. Based on page 14 of pdf. @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" private _distance = call FUNC(getDistance); private _direction = call FUNC(getDirection); diff --git a/addons/vector/functions/fnc_getDirection.sqf b/addons/vector/functions/fnc_getDirection.sqf index 4b67cfed28..1103a55458 100644 --- a/addons/vector/functions/fnc_getDirection.sqf +++ b/addons/vector/functions/fnc_getDirection.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * @@ -14,14 +15,9 @@ * Public: No */ -// by commy2 -#include "script_component.hpp" - /* -private "_dlgVector"; - disableSerialization; -_dlgVector = GETUVAR(ACE_dlgVector, displayNull); +private _dlgVector = GETUVAR(ACE_dlgVector, displayNull); [ round parseNumber ctrlText (_dlgVector displayCtrl 156), diff --git a/addons/vector/functions/fnc_getDistance.sqf b/addons/vector/functions/fnc_getDistance.sqf index 7b62b5727b..8c38cc619f 100644 --- a/addons/vector/functions/fnc_getDistance.sqf +++ b/addons/vector/functions/fnc_getDistance.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * @@ -14,8 +15,6 @@ * Public: No */ -#include "script_component.hpp" - #define MIN_DISTANCE 10 #define MAX_DISTANCE [6000, 9000] select GVAR(useFeet) diff --git a/addons/vector/functions/fnc_getFallOfShot.sqf b/addons/vector/functions/fnc_getFallOfShot.sqf index db906ac660..8ff1f38332 100644 --- a/addons/vector/functions/fnc_getFallOfShot.sqf +++ b/addons/vector/functions/fnc_getFallOfShot.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * @@ -14,8 +15,6 @@ * Public: No */ -#include "script_component.hpp" - private _distanceP1 = GVAR(pData) select 0; private _directionP1 = GVAR(pData) select 1; private _azimuthP1 = _directionP1 select 0; diff --git a/addons/vector/functions/fnc_getHeightDistance.sqf b/addons/vector/functions/fnc_getHeightDistance.sqf index 003aefea51..768436677c 100644 --- a/addons/vector/functions/fnc_getHeightDistance.sqf +++ b/addons/vector/functions/fnc_getHeightDistance.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * @@ -14,8 +15,6 @@ * Public: No */ -#include "script_component.hpp" - private _distance = call FUNC(getDistance); private _direction = call FUNC(getDirection); diff --git a/addons/vector/functions/fnc_getRelativeAzimuthDistance.sqf b/addons/vector/functions/fnc_getRelativeAzimuthDistance.sqf index ce6716e4d3..2abcd8238d 100644 --- a/addons/vector/functions/fnc_getRelativeAzimuthDistance.sqf +++ b/addons/vector/functions/fnc_getRelativeAzimuthDistance.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * @@ -14,8 +15,6 @@ * Public: No */ -#include "script_component.hpp" - private _distanceP1 = GVAR(pData) select 0; private _directionP1 = GVAR(pData) select 1; private _azimuthP1 = _directionP1 select 0; diff --git a/addons/vector/functions/fnc_getRelativeDistance.sqf b/addons/vector/functions/fnc_getRelativeDistance.sqf index f6815ea552..71abfda53d 100644 --- a/addons/vector/functions/fnc_getRelativeDistance.sqf +++ b/addons/vector/functions/fnc_getRelativeDistance.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * @@ -14,8 +15,6 @@ * Public: No */ -#include "script_component.hpp" - private _distanceP1 = GVAR(pData) select 0; private _directionP1 = GVAR(pData) select 1; private _azimuthP1 = _directionP1 select 0; diff --git a/addons/vector/functions/fnc_getRelativeHeightLength.sqf b/addons/vector/functions/fnc_getRelativeHeightLength.sqf index 99cb828232..2bd6e4795c 100644 --- a/addons/vector/functions/fnc_getRelativeHeightLength.sqf +++ b/addons/vector/functions/fnc_getRelativeHeightLength.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * @@ -14,8 +15,6 @@ * Public: No */ -#include "script_component.hpp" - private _distanceP1 = GVAR(pData) select 0; private _directionP1 = GVAR(pData) select 1; private _azimuthP1 = _directionP1 select 0; diff --git a/addons/vector/functions/fnc_illuminate.sqf b/addons/vector/functions/fnc_illuminate.sqf index 8ecc10690f..18535d2861 100644 --- a/addons/vector/functions/fnc_illuminate.sqf +++ b/addons/vector/functions/fnc_illuminate.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * @@ -14,8 +15,6 @@ * Public: No */ -#include "script_component.hpp" - disableSerialization; private _dlgVector = GETUVAR(ACE_dlgVector,displayNull); diff --git a/addons/vector/functions/fnc_nextMode.sqf b/addons/vector/functions/fnc_nextMode.sqf index 8e6d596f58..74250ca1f2 100644 --- a/addons/vector/functions/fnc_nextMode.sqf +++ b/addons/vector/functions/fnc_nextMode.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * @@ -14,8 +15,6 @@ * Public: No */ -#include "script_component.hpp" - switch (_this select 0) do { case ("settings"): { switch (GVAR(configTemp)) do { diff --git a/addons/vector/functions/fnc_onKeyDown.sqf b/addons/vector/functions/fnc_onKeyDown.sqf index 194a3b74af..6a58ff96fc 100644 --- a/addons/vector/functions/fnc_onKeyDown.sqf +++ b/addons/vector/functions/fnc_onKeyDown.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Handles pressing the special vector keys. @@ -14,8 +15,6 @@ * Public: No */ -#include "script_component.hpp" - // set vector config settings switch (GVAR(modeReticle)) do { case (0): { diff --git a/addons/vector/functions/fnc_onKeyHold.sqf b/addons/vector/functions/fnc_onKeyHold.sqf index fdfa22d2b5..cefdc3236b 100644 --- a/addons/vector/functions/fnc_onKeyHold.sqf +++ b/addons/vector/functions/fnc_onKeyHold.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * PFH executed while holding a vector key down. @@ -15,8 +16,6 @@ * Public: No */ -#include "script_component.hpp" - if (!((currentWeapon ACE_player) isKindOf ["ACE_Vector", configFile >> "CfgWeapons"])) exitWith { [_this select 1] call CBA_fnc_removePerFrameHandler; diff --git a/addons/vector/functions/fnc_onKeyUp.sqf b/addons/vector/functions/fnc_onKeyUp.sqf index 6896026b50..2e315d7c0e 100644 --- a/addons/vector/functions/fnc_onKeyUp.sqf +++ b/addons/vector/functions/fnc_onKeyUp.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Handles releasing the special vector keys. @@ -14,8 +15,6 @@ * Public: No */ -#include "script_component.hpp" - private _fnc_setPFH = { if (GVAR(holdKeyHandler) > -1) then { [GVAR(holdKeyHandler)] call CBA_fnc_removePerFrameHandler; diff --git a/addons/vector/functions/fnc_showAzimuth.sqf b/addons/vector/functions/fnc_showAzimuth.sqf index 59166e1f4c..4a0854f3d5 100644 --- a/addons/vector/functions/fnc_showAzimuth.sqf +++ b/addons/vector/functions/fnc_showAzimuth.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * @@ -14,8 +15,6 @@ * Public: No */ -#include "script_component.hpp" - disableSerialization; private _dlgVector = GETUVAR(ACE_dlgVector,displayNull); diff --git a/addons/vector/functions/fnc_showAzimuthInclination.sqf b/addons/vector/functions/fnc_showAzimuthInclination.sqf index d6b8740e2a..15e206fbbd 100644 --- a/addons/vector/functions/fnc_showAzimuthInclination.sqf +++ b/addons/vector/functions/fnc_showAzimuthInclination.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * @@ -14,8 +15,6 @@ * Public: No */ -#include "script_component.hpp" - disableSerialization; private _dlgVector = GETUVAR(ACE_dlgVector,displayNull); diff --git a/addons/vector/functions/fnc_showCenter.sqf b/addons/vector/functions/fnc_showCenter.sqf index 8142a2c3be..fef128240f 100644 --- a/addons/vector/functions/fnc_showCenter.sqf +++ b/addons/vector/functions/fnc_showCenter.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Shows or hides the vectors center square thingy. @@ -14,8 +15,6 @@ * Public: No */ -#include "script_component.hpp" - ((GETUVAR(ACE_dlgVector,displayNull)) displayCtrl 1301) ctrlSetText (["", QPATHTOF(rsc\vector_center.paa)] select (_this select 0)); [GVAR(illuminate)] call FUNC(illuminate); diff --git a/addons/vector/functions/fnc_showDistance.sqf b/addons/vector/functions/fnc_showDistance.sqf index ffabeb9824..447622355c 100644 --- a/addons/vector/functions/fnc_showDistance.sqf +++ b/addons/vector/functions/fnc_showDistance.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * @@ -14,8 +15,6 @@ * Public: No */ -#include "script_component.hpp" - disableSerialization; private _dlgVector = GETUVAR(ACE_dlgVector,displayNull); diff --git a/addons/vector/functions/fnc_showFallOfShot.sqf b/addons/vector/functions/fnc_showFallOfShot.sqf index 459f1dcaed..3df9fa8357 100644 --- a/addons/vector/functions/fnc_showFallOfShot.sqf +++ b/addons/vector/functions/fnc_showFallOfShot.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * @@ -14,8 +15,6 @@ * Public: No */ -#include "script_component.hpp" - GVAR(FOSState) = _this select 0; disableSerialization; diff --git a/addons/vector/functions/fnc_showHeightDistance.sqf b/addons/vector/functions/fnc_showHeightDistance.sqf index cbe0b7b86d..7c8c0cc02e 100644 --- a/addons/vector/functions/fnc_showHeightDistance.sqf +++ b/addons/vector/functions/fnc_showHeightDistance.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * @@ -14,8 +15,6 @@ * Public: No */ -#include "script_component.hpp" - disableSerialization; private _dlgVector = GETUVAR(ACE_dlgVector,displayNull); diff --git a/addons/vector/functions/fnc_showP1.sqf b/addons/vector/functions/fnc_showP1.sqf index 3975399bcb..2d587e03d1 100644 --- a/addons/vector/functions/fnc_showP1.sqf +++ b/addons/vector/functions/fnc_showP1.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Shows or hides the 1-P text line. @@ -14,8 +15,6 @@ * Public: No */ -#include "script_component.hpp" - disableSerialization; private _dlgVector = GETUVAR(ACE_dlgVector,displayNull); diff --git a/addons/vector/functions/fnc_showRelativeAzimuthDistance.sqf b/addons/vector/functions/fnc_showRelativeAzimuthDistance.sqf index a9426be05c..82f1f7eaf6 100644 --- a/addons/vector/functions/fnc_showRelativeAzimuthDistance.sqf +++ b/addons/vector/functions/fnc_showRelativeAzimuthDistance.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * @@ -14,8 +15,6 @@ * Public: No */ -#include "script_component.hpp" - disableSerialization; private _dlgVector = GETUVAR(ACE_dlgVector,displayNull); diff --git a/addons/vector/functions/fnc_showRelativeDistance.sqf b/addons/vector/functions/fnc_showRelativeDistance.sqf index e0853efa03..0bd4d23ec0 100644 --- a/addons/vector/functions/fnc_showRelativeDistance.sqf +++ b/addons/vector/functions/fnc_showRelativeDistance.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * @@ -14,8 +15,6 @@ * Public: No */ -#include "script_component.hpp" - disableSerialization; private _dlgVector = GETUVAR(ACE_dlgVector,displayNull); diff --git a/addons/vector/functions/fnc_showRelativeHeightLength.sqf b/addons/vector/functions/fnc_showRelativeHeightLength.sqf index 13bd8061e1..fe9823e170 100644 --- a/addons/vector/functions/fnc_showRelativeHeightLength.sqf +++ b/addons/vector/functions/fnc_showRelativeHeightLength.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * @@ -14,8 +15,6 @@ * Public: No */ -#include "script_component.hpp" - disableSerialization; private _dlgVector = GETUVAR(ACE_dlgVector,displayNull); diff --git a/addons/vector/functions/fnc_showReticle.sqf b/addons/vector/functions/fnc_showReticle.sqf index aeecfc5ef3..5fd1729c4f 100644 --- a/addons/vector/functions/fnc_showReticle.sqf +++ b/addons/vector/functions/fnc_showReticle.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Shows or hides the electronic reticle. @@ -14,8 +15,6 @@ * Public: No */ -#include "script_component.hpp" - ((GETUVAR(ACE_dlgVector,displayNull)) displayCtrl 1302) ctrlSetText (["", QPATHTOF(rsc\vector_crosshair.paa)] select (_this select 0)); [GVAR(illuminate)] call FUNC(illuminate); diff --git a/addons/vector/functions/fnc_showText.sqf b/addons/vector/functions/fnc_showText.sqf index 66628d8d44..a8556e7a58 100644 --- a/addons/vector/functions/fnc_showText.sqf +++ b/addons/vector/functions/fnc_showText.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * @@ -14,8 +15,6 @@ * Public: No */ -#include "script_component.hpp" - disableSerialization; private _dlgVector = GETUVAR(ACE_dlgVector,displayNull); diff --git a/addons/vehiclelock/functions/fnc_addKeyForVehicle.sqf b/addons/vehiclelock/functions/fnc_addKeyForVehicle.sqf index c7408bf5f5..e88105e398 100644 --- a/addons/vehiclelock/functions/fnc_addKeyForVehicle.sqf +++ b/addons/vehiclelock/functions/fnc_addKeyForVehicle.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: PabstMirror * Adds a key to a unit that will open a vehicle @@ -16,7 +17,6 @@ * * Public: Yes */ -#include "script_component.hpp" if (!params [["_unit", objNull, [objNull]], ["_veh", objNull, [objNull]], ["_useCustom", false, [false]]]) exitWith { ERROR("Input wrong type"); diff --git a/addons/vehiclelock/functions/fnc_getVehicleSideKey.sqf b/addons/vehiclelock/functions/fnc_getVehicleSideKey.sqf index 6642b12f8d..5e78e55edb 100644 --- a/addons/vehiclelock/functions/fnc_getVehicleSideKey.sqf +++ b/addons/vehiclelock/functions/fnc_getVehicleSideKey.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: PabstMirror * Returns the side specifc key for a vehicle @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_veh"]; TRACE_1("params",_veh); diff --git a/addons/vehiclelock/functions/fnc_handleVehicleInitPost.sqf b/addons/vehiclelock/functions/fnc_handleVehicleInitPost.sqf index 652cecadb8..e79a7b1573 100644 --- a/addons/vehiclelock/functions/fnc_handleVehicleInitPost.sqf +++ b/addons/vehiclelock/functions/fnc_handleVehicleInitPost.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: PabstMirror * For every lockable vehicle, sets the starting lock state to a sane value. @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" if (!isServer) exitWith {}; diff --git a/addons/vehiclelock/functions/fnc_hasKeyForVehicle.sqf b/addons/vehiclelock/functions/fnc_hasKeyForVehicle.sqf index 081cdfd899..149ece1f95 100644 --- a/addons/vehiclelock/functions/fnc_hasKeyForVehicle.sqf +++ b/addons/vehiclelock/functions/fnc_hasKeyForVehicle.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: PabstMirror * Returns if user has a valid key for the vehicle @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_unit", "_veh"]; TRACE_2("params",_unit,_veh); diff --git a/addons/vehiclelock/functions/fnc_lockpick.sqf b/addons/vehiclelock/functions/fnc_lockpick.sqf index 50e47a2e66..66ed89fa6f 100644 --- a/addons/vehiclelock/functions/fnc_lockpick.sqf +++ b/addons/vehiclelock/functions/fnc_lockpick.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: PabstMirror * Handles lockpick functionality. Three different functions: @@ -18,7 +19,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_unit", "_veh", "_funcType"]; TRACE_3("params",_unit,_veh,_funcType); diff --git a/addons/vehiclelock/functions/fnc_moduleInit.sqf b/addons/vehiclelock/functions/fnc_moduleInit.sqf index cf9d1eb79c..16e81e85ea 100644 --- a/addons/vehiclelock/functions/fnc_moduleInit.sqf +++ b/addons/vehiclelock/functions/fnc_moduleInit.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: PabstMirror * Function for setup module. Sets default lockpick strength and default lock state. @@ -15,7 +16,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_logic", "_syncedUnits", "_activated"]; TRACE_3("params",_logic,_syncedUnits,_activated); diff --git a/addons/vehiclelock/functions/fnc_moduleSync.sqf b/addons/vehiclelock/functions/fnc_moduleSync.sqf index 569f4a0691..f65ad5399d 100644 --- a/addons/vehiclelock/functions/fnc_moduleSync.sqf +++ b/addons/vehiclelock/functions/fnc_moduleSync.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: PabstMirror * Function for sync module. Assigns keys for all synced vehicles to any players that are synced. @@ -15,7 +16,6 @@ * * Public: No */ -#include "script_component.hpp" if (!isServer) exitWith {}; diff --git a/addons/vehiclelock/functions/fnc_onOpenInventory.sqf b/addons/vehiclelock/functions/fnc_onOpenInventory.sqf index fb8972ef1d..836cccc21d 100644 --- a/addons/vehiclelock/functions/fnc_onOpenInventory.sqf +++ b/addons/vehiclelock/functions/fnc_onOpenInventory.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: PabstMirror * Handles the inventory opening. @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_unit", "_container"]; TRACE_2("params",_unit,_container); diff --git a/addons/vehiclelock/functions/fnc_serverSetupCustomKeyEH.sqf b/addons/vehiclelock/functions/fnc_serverSetupCustomKeyEH.sqf index 957619a057..7018e67bcb 100644 --- a/addons/vehiclelock/functions/fnc_serverSetupCustomKeyEH.sqf +++ b/addons/vehiclelock/functions/fnc_serverSetupCustomKeyEH.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: PabstMirror * On the server: Adds a key (magazineDetail name) to approved keys for a vehicle. @@ -14,7 +15,6 @@ * * Public: Yes */ -#include "script_component.hpp" params ["_veh", "_key"]; TRACE_2("params",_veh,_key); diff --git a/addons/vehiclelock/functions/fnc_setVehicleLockEH.sqf b/addons/vehiclelock/functions/fnc_setVehicleLockEH.sqf index 113a4ad505..8f38d48f37 100644 --- a/addons/vehiclelock/functions/fnc_setVehicleLockEH.sqf +++ b/addons/vehiclelock/functions/fnc_setVehicleLockEH.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: PabstMirror * Sets a vehicle lock state because of a "ace_vehiclelock_setVehicleLock" event @@ -14,7 +15,6 @@ * * Public: Yes */ -#include "script_component.hpp" params ["_veh", "_isLocked"]; TRACE_2("params",_veh,_isLocked); diff --git a/addons/vehicles/functions/fnc_speedLimiter.sqf b/addons/vehicles/functions/fnc_speedLimiter.sqf index 07af1dd4c3..da2f7bf19a 100644 --- a/addons/vehicles/functions/fnc_speedLimiter.sqf +++ b/addons/vehicles/functions/fnc_speedLimiter.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Toggle speed limiter for Driver in Vehicle. @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_driver", "_vehicle"]; diff --git a/addons/vehicles/functions/fnc_startEngine.sqf b/addons/vehicles/functions/fnc_startEngine.sqf index 8b0d0f17bb..b5e414b039 100644 --- a/addons/vehicles/functions/fnc_startEngine.sqf +++ b/addons/vehicles/functions/fnc_startEngine.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Delays engine start of vehicle. @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_vehicle", "_isEngineOn"]; diff --git a/addons/viewdistance/functions/fnc_adaptViewDistance.sqf b/addons/viewdistance/functions/fnc_adaptViewDistance.sqf index 0277b96244..d83b8ae746 100644 --- a/addons/viewdistance/functions/fnc_adaptViewDistance.sqf +++ b/addons/viewdistance/functions/fnc_adaptViewDistance.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Winter * Sets the player's current view distance according to whether s/he is on foot, in a land vehicle or in an air vehicle. @@ -14,8 +15,6 @@ * Public: No */ -#include "script_component.hpp" - params ["_showPrompt"]; if (!GVAR(enabled) || isNull ACE_player) exitWith {}; diff --git a/addons/viewdistance/functions/fnc_changeViewDistance.sqf b/addons/viewdistance/functions/fnc_changeViewDistance.sqf index c5f39ff2f8..40d07cf100 100644 --- a/addons/viewdistance/functions/fnc_changeViewDistance.sqf +++ b/addons/viewdistance/functions/fnc_changeViewDistance.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Winter * Sets the player's current view distance according to allowed values. @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_indexRequested", "_showPrompt"]; diff --git a/addons/viewdistance/functions/fnc_initModule.sqf b/addons/viewdistance/functions/fnc_initModule.sqf index ad6b3852b4..b33b6b532c 100644 --- a/addons/viewdistance/functions/fnc_initModule.sqf +++ b/addons/viewdistance/functions/fnc_initModule.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Winter * Initializes the view distance limiter module. @@ -16,8 +17,6 @@ * Public: No */ -#include "script_component.hpp" - params ["_logic", "_units", "_activated"]; if (!_activated) exitWith { diff --git a/addons/viewdistance/functions/fnc_returnObjectCoeff.sqf b/addons/viewdistance/functions/fnc_returnObjectCoeff.sqf index 257dca2995..5cc17be8bb 100644 --- a/addons/viewdistance/functions/fnc_returnObjectCoeff.sqf +++ b/addons/viewdistance/functions/fnc_returnObjectCoeff.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Winter * Returns the object view distance coefficient according to the given index @@ -14,8 +15,6 @@ * Public: No */ -#include "script_component.hpp" - params ["_index"]; switch (_index) do { diff --git a/addons/viewdistance/functions/fnc_returnValue.sqf b/addons/viewdistance/functions/fnc_returnValue.sqf index 35c0894520..480a9ce7ae 100644 --- a/addons/viewdistance/functions/fnc_returnValue.sqf +++ b/addons/viewdistance/functions/fnc_returnValue.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Winter * Returns the view distance value according to the given index. @@ -14,8 +15,6 @@ * Public: No */ -#include "script_component.hpp" - params ["_index"]; switch (_index) do { diff --git a/addons/viewdistance/functions/fnc_setFovBasedOvdPFH.sqf b/addons/viewdistance/functions/fnc_setFovBasedOvdPFH.sqf index b4338b0511..e419687ac6 100644 --- a/addons/viewdistance/functions/fnc_setFovBasedOvdPFH.sqf +++ b/addons/viewdistance/functions/fnc_setFovBasedOvdPFH.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Jonpas * Sets Object View Distance dynamically based on current Field of View, between Object View Distance (minimal value) and View Distance (maximum value) set before this PFH starts. @@ -15,8 +16,6 @@ * Public: No */ -#include "script_component.hpp" - params ["", "_idPFH"]; // Remove PFH and set Object View Distance back to what it was before diff --git a/addons/weaponselect/functions/fnc_displayGrenadeTypeAndNumber.sqf b/addons/weaponselect/functions/fnc_displayGrenadeTypeAndNumber.sqf index 288531df2c..c87047a787 100644 --- a/addons/weaponselect/functions/fnc_displayGrenadeTypeAndNumber.sqf +++ b/addons/weaponselect/functions/fnc_displayGrenadeTypeAndNumber.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: esteldunedain, commy2 * Display a grenade type and quantity. @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" if !(GVAR(DisplayText)) exitWith {}; diff --git a/addons/weaponselect/functions/fnc_fireSmokeLauncher.sqf b/addons/weaponselect/functions/fnc_fireSmokeLauncher.sqf index bb877ea3cd..f1bd108926 100644 --- a/addons/weaponselect/functions/fnc_fireSmokeLauncher.sqf +++ b/addons/weaponselect/functions/fnc_fireSmokeLauncher.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Fire Vehicle Smoke Launcher. @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_vehicle"]; diff --git a/addons/weaponselect/functions/fnc_playChangeFiremodeSound.sqf b/addons/weaponselect/functions/fnc_playChangeFiremodeSound.sqf index a7c3f13936..86945dbaac 100644 --- a/addons/weaponselect/functions/fnc_playChangeFiremodeSound.sqf +++ b/addons/weaponselect/functions/fnc_playChangeFiremodeSound.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Play weapon firemode change sound. @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_unit", "_weapon"]; diff --git a/addons/weaponselect/functions/fnc_putWeaponAway.sqf b/addons/weaponselect/functions/fnc_putWeaponAway.sqf index 0d7e93a429..e74a9c4c6b 100644 --- a/addons/weaponselect/functions/fnc_putWeaponAway.sqf +++ b/addons/weaponselect/functions/fnc_putWeaponAway.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * The unit will put its current weapon away. @@ -13,7 +14,6 @@ * * Public: Yes */ -#include "script_component.hpp" params ["_unit"]; diff --git a/addons/weaponselect/functions/fnc_selectNextGrenade.sqf b/addons/weaponselect/functions/fnc_selectNextGrenade.sqf index f4b48a1b1e..21f07639f4 100644 --- a/addons/weaponselect/functions/fnc_selectNextGrenade.sqf +++ b/addons/weaponselect/functions/fnc_selectNextGrenade.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Select the next grenade. @@ -14,7 +15,6 @@ * * Public: Yes */ -#include "script_component.hpp" params ["_unit", ["_type", 0]]; diff --git a/addons/weaponselect/functions/fnc_selectWeaponMode.sqf b/addons/weaponselect/functions/fnc_selectWeaponMode.sqf index c0a5f00a8a..8812a63525 100644 --- a/addons/weaponselect/functions/fnc_selectWeaponMode.sqf +++ b/addons/weaponselect/functions/fnc_selectWeaponMode.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * The player will select the specified weapon or will change to the next firing mode if the weapon was already selected. @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_unit", "_weapon"]; diff --git a/addons/weaponselect/functions/fnc_selectWeaponMuzzle.sqf b/addons/weaponselect/functions/fnc_selectWeaponMuzzle.sqf index 3d7f05e954..ff2d48baf4 100644 --- a/addons/weaponselect/functions/fnc_selectWeaponMuzzle.sqf +++ b/addons/weaponselect/functions/fnc_selectWeaponMuzzle.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * The player will select the specified weapon and change to the first additional muzzle. E.g. the grenade launcher of a assault rifle. @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_unit", "_weapon"]; diff --git a/addons/weaponselect/functions/fnc_selectWeaponVehicle.sqf b/addons/weaponselect/functions/fnc_selectWeaponVehicle.sqf index 883588ee4b..b3fa528532 100644 --- a/addons/weaponselect/functions/fnc_selectWeaponVehicle.sqf +++ b/addons/weaponselect/functions/fnc_selectWeaponVehicle.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Select weapon for unit in vehicle. @@ -15,7 +16,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_unit", "_vehicle", "_index"]; diff --git a/addons/weaponselect/functions/fnc_throwGrenade.sqf b/addons/weaponselect/functions/fnc_throwGrenade.sqf index 10a730f504..1214bdc84b 100644 --- a/addons/weaponselect/functions/fnc_throwGrenade.sqf +++ b/addons/weaponselect/functions/fnc_throwGrenade.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: commy2 * Display Grenade information on grenade throw. Called from the unified fired EH only for the local player. @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" //IGNORE_PRIVATE_WARNING ["_unit", "_weapon", "_muzzle", "_mode", "_ammo", "_magazine", "_projectile", "_vehicle", "_gunner", "_turret"]; TRACE_10("firedEH:",_unit, _weapon, _muzzle, _mode, _ammo, _magazine, _projectile, _vehicle, _gunner, _turret); diff --git a/addons/weather/functions/fnc_calculateAirDensity.sqf b/addons/weather/functions/fnc_calculateAirDensity.sqf index 61d18d7201..43da78eab9 100644 --- a/addons/weather/functions/fnc_calculateAirDensity.sqf +++ b/addons/weather/functions/fnc_calculateAirDensity.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Ruthberg * Calculates the air density @@ -15,7 +16,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_temperature", "_pressure", "_relativeHumidity"]; diff --git a/addons/weather/functions/fnc_calculateBarometricPressure.sqf b/addons/weather/functions/fnc_calculateBarometricPressure.sqf index 0749004c21..70cdf370bf 100644 --- a/addons/weather/functions/fnc_calculateBarometricPressure.sqf +++ b/addons/weather/functions/fnc_calculateBarometricPressure.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Ruthberg * Calculates the barometric pressure based on altitude and weather @@ -13,6 +14,5 @@ * * Public: No */ -#include "script_component.hpp" ((1013.25 - 10 * GVAR(currentOvercast)) * (1 - (0.0065 * (EGVAR(common,mapAltitude) + _this)) / (KELVIN(GVAR(currentTemperature)) + 0.0065 * EGVAR(common,mapAltitude))) ^ 5.255754495); diff --git a/addons/weather/functions/fnc_calculateDensityAltitude.sqf b/addons/weather/functions/fnc_calculateDensityAltitude.sqf index 8dea9849b1..fdfe57877d 100644 --- a/addons/weather/functions/fnc_calculateDensityAltitude.sqf +++ b/addons/weather/functions/fnc_calculateDensityAltitude.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Ruthberg * Calculates density altitude for a given air density @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" // Source: http://wahiduddin.net/calc/density_altitude.htm diff --git a/addons/weather/functions/fnc_calculateDewPoint.sqf b/addons/weather/functions/fnc_calculateDewPoint.sqf index 81db9565dc..5f020f47d1 100644 --- a/addons/weather/functions/fnc_calculateDewPoint.sqf +++ b/addons/weather/functions/fnc_calculateDewPoint.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Ruthberg * Calculates dew point based on temperature and relative humidity @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" #define __b 17.67 #define __c 243.5 diff --git a/addons/weather/functions/fnc_calculateHeatIndex.sqf b/addons/weather/functions/fnc_calculateHeatIndex.sqf index a4626128de..de333d801f 100644 --- a/addons/weather/functions/fnc_calculateHeatIndex.sqf +++ b/addons/weather/functions/fnc_calculateHeatIndex.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Ruthberg * Calculates heat index based on temperature and relative humidity @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" #define __C1 0.363445176 #define __C2 0.988622465 diff --git a/addons/weather/functions/fnc_calculateRoughnessLength.sqf b/addons/weather/functions/fnc_calculateRoughnessLength.sqf index 5112cf4ef5..17519c8092 100644 --- a/addons/weather/functions/fnc_calculateRoughnessLength.sqf +++ b/addons/weather/functions/fnc_calculateRoughnessLength.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Ruthberg * Calculates the terrain roughness length at a given world position @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" // Source: http://es.ucsc.edu/~jnoble/wind/extrap/index.html #define ROUGHNESS_LENGTHS [0.0002, 0.0005, 0.0024, 0.03, 0.055, 0.1, 0.2, 0.4, 0.8, 1.6] diff --git a/addons/weather/functions/fnc_calculateSpeedOfSound.sqf b/addons/weather/functions/fnc_calculateSpeedOfSound.sqf index ed968d94f0..90d524e560 100644 --- a/addons/weather/functions/fnc_calculateSpeedOfSound.sqf +++ b/addons/weather/functions/fnc_calculateSpeedOfSound.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Ruthberg * Calculates the speed of sound for a given temperature @@ -13,6 +14,5 @@ * * Public: No */ -#include "script_component.hpp" (331.3 * sqrt(1 + (_this / 273.15))) diff --git a/addons/weather/functions/fnc_calculateTemperatureAtHeight.sqf b/addons/weather/functions/fnc_calculateTemperatureAtHeight.sqf index e33b8213eb..c392b15900 100644 --- a/addons/weather/functions/fnc_calculateTemperatureAtHeight.sqf +++ b/addons/weather/functions/fnc_calculateTemperatureAtHeight.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Ruthberg * Calculates the temperature based on altitude and weather @@ -13,6 +14,5 @@ * * Public: No */ -#include "script_component.hpp" (GVAR(currentTemperature) - 0.0065 * _this) diff --git a/addons/weather/functions/fnc_calculateWetBulb.sqf b/addons/weather/functions/fnc_calculateWetBulb.sqf index a8a58b0dc3..5ebb497a16 100644 --- a/addons/weather/functions/fnc_calculateWetBulb.sqf +++ b/addons/weather/functions/fnc_calculateWetBulb.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Ruthberg * Calculates wet bulb based on temperature and relative humidity @@ -15,7 +16,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_temperature", "_pressure", "_relativeHumidity"]; diff --git a/addons/weather/functions/fnc_calculateWindChill.sqf b/addons/weather/functions/fnc_calculateWindChill.sqf index 0e17d53377..f657cba638 100644 --- a/addons/weather/functions/fnc_calculateWindChill.sqf +++ b/addons/weather/functions/fnc_calculateWindChill.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Ruthberg * Calculates wind chill based on temperature and wind speed @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_t", "_v"]; diff --git a/addons/weather/functions/fnc_calculateWindSpeed.sqf b/addons/weather/functions/fnc_calculateWindSpeed.sqf index 2f02c12852..f14d6dfbfc 100644 --- a/addons/weather/functions/fnc_calculateWindSpeed.sqf +++ b/addons/weather/functions/fnc_calculateWindSpeed.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Ruthberg * Calculates the true wind speed at a given world position @@ -16,7 +17,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_position", "_windGradientEnabled", "_terrainEffectEnabled", "_obstacleEffectEnabled"]; diff --git a/addons/weather/functions/fnc_displayWindInfo.sqf b/addons/weather/functions/fnc_displayWindInfo.sqf index a8409cb68a..35c840bf85 100644 --- a/addons/weather/functions/fnc_displayWindInfo.sqf +++ b/addons/weather/functions/fnc_displayWindInfo.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Ruthberg * Displays a wind info (colored arrow) in the top left corner of the screen @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" #define __dsp (uiNamespace getVariable "RscWindIntuitive") #define __ctrl (__dsp displayCtrl 132948) diff --git a/addons/weather/functions/fnc_getMapData.sqf b/addons/weather/functions/fnc_getMapData.sqf index dd086b8414..20a8f1df70 100644 --- a/addons/weather/functions/fnc_getMapData.sqf +++ b/addons/weather/functions/fnc_getMapData.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Ruthberg, esteldunedain * Get the weather data for the current map @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" private _worldName = toLower worldName; TRACE_1("getting map data",_worldName); diff --git a/addons/weather/functions/fnc_initModuleSettings.sqf b/addons/weather/functions/fnc_initModuleSettings.sqf index 3334392156..3b306398f9 100644 --- a/addons/weather/functions/fnc_initModuleSettings.sqf +++ b/addons/weather/functions/fnc_initModuleSettings.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Glowbal, Ruthberg * Module for adjusting the wind deflection settings @@ -16,8 +17,6 @@ * Public: No */ -#include "script_component.hpp" - params ["_logic", "_units", "_activated"]; if !(_activated) exitWith {}; diff --git a/addons/weather/functions/fnc_initWind.sqf b/addons/weather/functions/fnc_initWind.sqf index c40a6b4113..29e4e7dbe8 100644 --- a/addons/weather/functions/fnc_initWind.sqf +++ b/addons/weather/functions/fnc_initWind.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Ruthberg * Inits the wind variables on the server (on mission start) @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" private _month = date select 1; private _windDirectionProbabilities = GVAR(WindDirectionProbabilities) select (_month - 1); diff --git a/addons/weather/functions/fnc_updateHumidity.sqf b/addons/weather/functions/fnc_updateHumidity.sqf index 24e0211ec8..2660076f9f 100644 --- a/addons/weather/functions/fnc_updateHumidity.sqf +++ b/addons/weather/functions/fnc_updateHumidity.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: ACE2 Team * Smoothly updates GVAR(currentHumidity) on the server (based on time of day and map data) @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" if (rain > 0 && overcast > 0.7) then { GVAR(currentHumidity) = 1; diff --git a/addons/weather/functions/fnc_updateTemperature.sqf b/addons/weather/functions/fnc_updateTemperature.sqf index 7e597b1733..ea7a84a269 100644 --- a/addons/weather/functions/fnc_updateTemperature.sqf +++ b/addons/weather/functions/fnc_updateTemperature.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: ACE2 Team * Smoothly updates GVAR(currentTemperature) on the server (based on time of day and map data) @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" private _month = date select 1; private _timeRatio = abs(daytime - 12) / 12; diff --git a/addons/weather/functions/fnc_updateWeather.sqf b/addons/weather/functions/fnc_updateWeather.sqf index 8cb4633ef1..c573d190ce 100644 --- a/addons/weather/functions/fnc_updateWeather.sqf +++ b/addons/weather/functions/fnc_updateWeather.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: ACE2 Team, esteldunedain, Ruthberg * Updates the weather evolution on the server. Broadcasts relevant weather information to the clients. @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" missionNamespace setVariable [QGVAR(currentOvercast), overcast, true]; diff --git a/addons/weather/functions/fnc_updateWind.sqf b/addons/weather/functions/fnc_updateWind.sqf index e4c3bbb033..569179dce8 100644 --- a/addons/weather/functions/fnc_updateWind.sqf +++ b/addons/weather/functions/fnc_updateWind.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: ACE2 Team, Ruthberg * Smoothly updates wind on the server (based on time of year and map data) @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" private _speed = linearConversion [GVAR(last_wind_update), GVAR(next_wind_udpate), CBA_missionTime, GVAR(current_wind_speed), GVAR(next_wind_speed), true]; private _direction = linearConversion [GVAR(last_wind_update), GVAR(next_wind_udpate), CBA_missionTime, GVAR(current_wind_direction), GVAR(next_wind_direction), true]; diff --git a/addons/winddeflection/XEH_preInit.sqf b/addons/winddeflection/XEH_preInit.sqf index ad1c47f67c..b47cf6628d 100644 --- a/addons/winddeflection/XEH_preInit.sqf +++ b/addons/winddeflection/XEH_preInit.sqf @@ -1,13 +1,3 @@ -/** - * XEH_preInit.sqf - * @Descr: N/A - * @Author: Glowbal - * - * @Arguments: [] - * @Return: - * @PublicAPI: false - */ - #include "script_component.hpp" ADDON = false; diff --git a/addons/winddeflection/functions/fnc_handleFired.sqf b/addons/winddeflection/functions/fnc_handleFired.sqf index 2ee6735053..f43b40f455 100644 --- a/addons/winddeflection/functions/fnc_handleFired.sqf +++ b/addons/winddeflection/functions/fnc_handleFired.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Glowbal, Ruthberg * Handles wind deflection for projectiles. Called from the unified fired EH only for players on foot and their vehicles if required by settings. @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" //IGNORE_PRIVATE_WARNING ["_unit", "_weapon", "_muzzle", "_mode", "_ammo", "_magazine", "_projectile", "_vehicle", "_gunner", "_turret"]; TRACE_10("firedEH:",_unit, _weapon, _muzzle, _mode, _ammo, _magazine, _projectile, _vehicle, _gunner, _turret); diff --git a/addons/winddeflection/functions/fnc_initModuleSettings.sqf b/addons/winddeflection/functions/fnc_initModuleSettings.sqf index f74ed869c6..39e7fc6f31 100644 --- a/addons/winddeflection/functions/fnc_initModuleSettings.sqf +++ b/addons/winddeflection/functions/fnc_initModuleSettings.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Glowbal, Ruthberg * Module for adjusting the wind deflection settings @@ -16,8 +17,6 @@ * Public: No */ -#include "script_component.hpp" - params ["_logic", "_units", "_activated"]; if !(_activated) exitWith {}; diff --git a/addons/winddeflection/functions/fnc_updateTrajectoryPFH.sqf b/addons/winddeflection/functions/fnc_updateTrajectoryPFH.sqf index 8c55f6785f..e0a6b5da54 100644 --- a/addons/winddeflection/functions/fnc_updateTrajectoryPFH.sqf +++ b/addons/winddeflection/functions/fnc_updateTrajectoryPFH.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Glowbal, Ruthberg * Handles wind deflection for projectiles. @@ -14,8 +15,6 @@ * * Public: No */ -// #define ENABLE_PERFORMANCE_COUNTERS -#include "script_component.hpp" [{ // BEGIN_COUNTER(pfeh); diff --git a/addons/yardage450/functions/fnc_acquireTarget.sqf b/addons/yardage450/functions/fnc_acquireTarget.sqf index 7aa5994f78..a6fb23f3f7 100644 --- a/addons/yardage450/functions/fnc_acquireTarget.sqf +++ b/addons/yardage450/functions/fnc_acquireTarget.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Ruthberg * Fires the laser to acquire the target @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" // Reference: http://www.optcorp.com/pdf/Bushnell/YardageProSport.pdf #define MIN_DISTANCE ([9, 10] select GVAR(useYards)) diff --git a/addons/yardage450/functions/fnc_turnOn.sqf b/addons/yardage450/functions/fnc_turnOn.sqf index 59ed5c2ec8..05ae3db398 100644 --- a/addons/yardage450/functions/fnc_turnOn.sqf +++ b/addons/yardage450/functions/fnc_turnOn.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Ruthberg * Shows the Yardage 450 screen elements @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" #define __dsp (uiNamespace getVariable "ACE_RscYardage450") #define __ctrlTarget (__dsp displayCtrl 720041) diff --git a/addons/zeus/functions/fnc_addObjectToCurator.sqf b/addons/zeus/functions/fnc_addObjectToCurator.sqf index 7efa8beb64..975da83f93 100644 --- a/addons/zeus/functions/fnc_addObjectToCurator.sqf +++ b/addons/zeus/functions/fnc_addObjectToCurator.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Glowbal * Adds an object to curator upon spawn @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_object"]; diff --git a/addons/zeus/functions/fnc_bi_moduleArsenal.sqf b/addons/zeus/functions/fnc_bi_moduleArsenal.sqf index bc976c7bee..fffca62fc3 100644 --- a/addons/zeus/functions/fnc_bi_moduleArsenal.sqf +++ b/addons/zeus/functions/fnc_bi_moduleArsenal.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Bohemia Interactive * Module function to open a full arsenal on a unit @@ -16,7 +17,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_logic", "", "_activated"]; diff --git a/addons/zeus/functions/fnc_bi_moduleCurator.sqf b/addons/zeus/functions/fnc_bi_moduleCurator.sqf index 3b863a70a5..b74cc28781 100644 --- a/addons/zeus/functions/fnc_bi_moduleCurator.sqf +++ b/addons/zeus/functions/fnc_bi_moduleCurator.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Bohemia Interactive * Module function for initalizing zeus @@ -17,7 +18,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_logic", "_units", "_activated"]; diff --git a/addons/zeus/functions/fnc_bi_moduleMine.sqf b/addons/zeus/functions/fnc_bi_moduleMine.sqf index cb3be133d1..6b8866aaa4 100644 --- a/addons/zeus/functions/fnc_bi_moduleMine.sqf +++ b/addons/zeus/functions/fnc_bi_moduleMine.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Bohemia Interactive * Module function for spawning mines @@ -16,7 +17,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_logic", "_units", "_activated"]; diff --git a/addons/zeus/functions/fnc_bi_moduleProjectile.sqf b/addons/zeus/functions/fnc_bi_moduleProjectile.sqf index bbb4da0988..0ad823b9dc 100644 --- a/addons/zeus/functions/fnc_bi_moduleProjectile.sqf +++ b/addons/zeus/functions/fnc_bi_moduleProjectile.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Bohemia Interactive * Module function for spawning projectiles @@ -17,7 +18,6 @@ * * Public: No */ -#include "script_component.hpp" _logic = _this select 0; _units = _this select 1; diff --git a/addons/zeus/functions/fnc_bi_moduleRemoteControl.sqf b/addons/zeus/functions/fnc_bi_moduleRemoteControl.sqf index 687956492d..b35c8a508c 100644 --- a/addons/zeus/functions/fnc_bi_moduleRemoteControl.sqf +++ b/addons/zeus/functions/fnc_bi_moduleRemoteControl.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Bohemia Interactive * Module function for remote controlling units as zeus @@ -16,7 +17,6 @@ * * Public: No */ -#include "script_component.hpp" _logic = _this select 0; _units = _this select 1; diff --git a/addons/zeus/functions/fnc_getModuleDestination.sqf b/addons/zeus/functions/fnc_getModuleDestination.sqf index d6aa822b5a..2066d5887e 100644 --- a/addons/zeus/functions/fnc_getModuleDestination.sqf +++ b/addons/zeus/functions/fnc_getModuleDestination.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: PabstMirror * Allows zeus to click to indicate a 3d position. @@ -25,7 +26,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_object", "_code", ["_text", ""], ["_icon", "\a3\ui_f\data\IGUI\Cfg\Cursors\select_target_ca.paa"], ["_color", [1,0,0,1]], ["_angle", 0]]; diff --git a/addons/zeus/functions/fnc_handleZeusUnitAssigned.sqf b/addons/zeus/functions/fnc_handleZeusUnitAssigned.sqf index 58db9b093e..05bf5fdfb3 100644 --- a/addons/zeus/functions/fnc_handleZeusUnitAssigned.sqf +++ b/addons/zeus/functions/fnc_handleZeusUnitAssigned.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: SilentSpike * Contextually removes addons (given in ACE_Curator) from zeus based on their required addon(s) @@ -19,7 +20,6 @@ * * Public: No */ -#include "script_component.hpp" if !(isClass (configFile >> "ACE_Curator")) exitWith { ERROR("The ACE_Curator class does not exist") }; diff --git a/addons/zeus/functions/fnc_moduleAddAceArsenal.sqf b/addons/zeus/functions/fnc_moduleAddAceArsenal.sqf index 5d8bbdb72c..5bdb2803f9 100644 --- a/addons/zeus/functions/fnc_moduleAddAceArsenal.sqf +++ b/addons/zeus/functions/fnc_moduleAddAceArsenal.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: alganthe * Add a full ACE Arsenal to an object @@ -10,7 +11,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_logic"]; if (!local _logic) exitWith {}; diff --git a/addons/zeus/functions/fnc_moduleAddArsenal.sqf b/addons/zeus/functions/fnc_moduleAddArsenal.sqf index b8eed64d76..d284b9bb08 100644 --- a/addons/zeus/functions/fnc_moduleAddArsenal.sqf +++ b/addons/zeus/functions/fnc_moduleAddArsenal.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: alganthe * Add a full arsenal to an object @@ -10,7 +11,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_logic"]; if (!local _logic) exitWith {}; diff --git a/addons/zeus/functions/fnc_moduleAddOrRemoveFRIES.sqf b/addons/zeus/functions/fnc_moduleAddOrRemoveFRIES.sqf index 6f60f80947..967edc9396 100644 --- a/addons/zeus/functions/fnc_moduleAddOrRemoveFRIES.sqf +++ b/addons/zeus/functions/fnc_moduleAddOrRemoveFRIES.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: 654wak654 * Add/Removes FRIES from a helicopter. @@ -15,7 +16,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_logic"]; diff --git a/addons/zeus/functions/fnc_moduleAddSpareTrack.sqf b/addons/zeus/functions/fnc_moduleAddSpareTrack.sqf index ed633c2033..580d691996 100644 --- a/addons/zeus/functions/fnc_moduleAddSpareTrack.sqf +++ b/addons/zeus/functions/fnc_moduleAddSpareTrack.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Jonpas * Adds a Spare Track to the vehicle. @@ -15,7 +16,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_logic"]; diff --git a/addons/zeus/functions/fnc_moduleAddSpareWheel.sqf b/addons/zeus/functions/fnc_moduleAddSpareWheel.sqf index 58cd6c1063..b08af3ed9d 100644 --- a/addons/zeus/functions/fnc_moduleAddSpareWheel.sqf +++ b/addons/zeus/functions/fnc_moduleAddSpareWheel.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Jonpas * Adds a Spare Wheel to the vehicle. @@ -15,7 +16,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_logic"]; diff --git a/addons/zeus/functions/fnc_moduleCaptive.sqf b/addons/zeus/functions/fnc_moduleCaptive.sqf index fbb1255b8d..6420559a3f 100644 --- a/addons/zeus/functions/fnc_moduleCaptive.sqf +++ b/addons/zeus/functions/fnc_moduleCaptive.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: SilentSpike * Flips the capture state of the unit the module is placed on. @@ -15,7 +16,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_logic"]; diff --git a/addons/zeus/functions/fnc_moduleConfigurePylons.sqf b/addons/zeus/functions/fnc_moduleConfigurePylons.sqf index 404605451e..6371183192 100644 --- a/addons/zeus/functions/fnc_moduleConfigurePylons.sqf +++ b/addons/zeus/functions/fnc_moduleConfigurePylons.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: 654wak654 * Opens the pylon configuration menu for the aircraft module is placed on. @@ -15,7 +16,6 @@ * * Public: No */ -#include "script_component.hpp" if (canSuspend) exitWith {[FUNC(moduleConfigurePylons), _this] call CBA_fnc_directCall;}; diff --git a/addons/zeus/functions/fnc_moduleGarrison.sqf b/addons/zeus/functions/fnc_moduleGarrison.sqf index 5bc545716d..ae0dd4292e 100644 --- a/addons/zeus/functions/fnc_moduleGarrison.sqf +++ b/addons/zeus/functions/fnc_moduleGarrison.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: alganthe * Module calling the garrison function. @@ -17,7 +18,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_logic", "_pos", "_radius" ,"_mode" , "_topDownMode", "_teleport"]; diff --git a/addons/zeus/functions/fnc_moduleGlobalSetSkill.sqf b/addons/zeus/functions/fnc_moduleGlobalSetSkill.sqf index 6e275acaf8..a43ba78189 100644 --- a/addons/zeus/functions/fnc_moduleGlobalSetSkill.sqf +++ b/addons/zeus/functions/fnc_moduleGlobalSetSkill.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: SilentSpike * PV event handler to update the AI skill on all machines when set by zeus module @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_varName", "_varValue"]; _varValue params ["_general", "_accuracy", "_handling", "_spotting", "_cover", "_combat"]; diff --git a/addons/zeus/functions/fnc_moduleGroupSide.sqf b/addons/zeus/functions/fnc_moduleGroupSide.sqf index 2ef385a091..397320f0ee 100644 --- a/addons/zeus/functions/fnc_moduleGroupSide.sqf +++ b/addons/zeus/functions/fnc_moduleGroupSide.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: SilentSpike * Zeus module function to change side of a group on dialog confirmation @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_unit", "_newSide"]; private _side = side _unit; diff --git a/addons/zeus/functions/fnc_moduleHeal.sqf b/addons/zeus/functions/fnc_moduleHeal.sqf index 34f7519699..647112f67a 100644 --- a/addons/zeus/functions/fnc_moduleHeal.sqf +++ b/addons/zeus/functions/fnc_moduleHeal.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: mharis001 * Full heal unit. @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_logic"]; diff --git a/addons/zeus/functions/fnc_moduleLoadIntoCargo.sqf b/addons/zeus/functions/fnc_moduleLoadIntoCargo.sqf index f0a6968278..a5462443bb 100644 --- a/addons/zeus/functions/fnc_moduleLoadIntoCargo.sqf +++ b/addons/zeus/functions/fnc_moduleLoadIntoCargo.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: 654wak654 * Loads the object module is placed on into selected vehicle. @@ -15,7 +16,6 @@ * * Public: No */ -#include "script_component.hpp" if (canSuspend) exitWith {[FUNC(moduleLoadIntoCargo), _this] call CBA_fnc_directCall;}; diff --git a/addons/zeus/functions/fnc_moduleRemoveAceArsenal.sqf b/addons/zeus/functions/fnc_moduleRemoveAceArsenal.sqf index 83aa319480..bc6ba69d87 100644 --- a/addons/zeus/functions/fnc_moduleRemoveAceArsenal.sqf +++ b/addons/zeus/functions/fnc_moduleRemoveAceArsenal.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: alganthe * Remove ACE Arsenal from an object @@ -10,7 +11,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_logic"]; if (!local _logic) exitWith {}; diff --git a/addons/zeus/functions/fnc_moduleRemoveArsenal.sqf b/addons/zeus/functions/fnc_moduleRemoveArsenal.sqf index 97256ca67d..ec203572e4 100644 --- a/addons/zeus/functions/fnc_moduleRemoveArsenal.sqf +++ b/addons/zeus/functions/fnc_moduleRemoveArsenal.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: alganthe * Remove arsenal from an object @@ -10,7 +11,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_logic"]; if (!local _logic) exitWith {}; diff --git a/addons/zeus/functions/fnc_moduleSearchNearby.sqf b/addons/zeus/functions/fnc_moduleSearchNearby.sqf index 2145d62e17..9515ab3fdc 100644 --- a/addons/zeus/functions/fnc_moduleSearchNearby.sqf +++ b/addons/zeus/functions/fnc_moduleSearchNearby.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: SilentSpike * Commands the group the module is placed on to search the nearest building @@ -15,7 +16,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_logic"]; diff --git a/addons/zeus/functions/fnc_moduleSetEngineer.sqf b/addons/zeus/functions/fnc_moduleSetEngineer.sqf index e548c6c363..8280d75e65 100644 --- a/addons/zeus/functions/fnc_moduleSetEngineer.sqf +++ b/addons/zeus/functions/fnc_moduleSetEngineer.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: mharis001 * Zeus module function to set unit engineer skill. @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_unit", ["_engineerN", 1]]; diff --git a/addons/zeus/functions/fnc_moduleSetMedic.sqf b/addons/zeus/functions/fnc_moduleSetMedic.sqf index c213bcc25e..63b962d429 100644 --- a/addons/zeus/functions/fnc_moduleSetMedic.sqf +++ b/addons/zeus/functions/fnc_moduleSetMedic.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: SilentSpike, Glowbal * Assigns a medic role from the medical module to a unit @@ -15,7 +16,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_logic"]; diff --git a/addons/zeus/functions/fnc_moduleSetMedicalFacility.sqf b/addons/zeus/functions/fnc_moduleSetMedicalFacility.sqf index e9f39019a2..ec8106d9ff 100644 --- a/addons/zeus/functions/fnc_moduleSetMedicalFacility.sqf +++ b/addons/zeus/functions/fnc_moduleSetMedicalFacility.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: SilentSpike, Glowbal * Assigns a medic role from the medical module to a unit @@ -15,7 +16,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_logic"]; diff --git a/addons/zeus/functions/fnc_moduleSetMedicalVehicle.sqf b/addons/zeus/functions/fnc_moduleSetMedicalVehicle.sqf index a4555c5ff9..afcacc0c25 100644 --- a/addons/zeus/functions/fnc_moduleSetMedicalVehicle.sqf +++ b/addons/zeus/functions/fnc_moduleSetMedicalVehicle.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: SilentSpike, Glowbal * Assigns a medic role from the medical module to a unit @@ -15,7 +16,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_logic"]; diff --git a/addons/zeus/functions/fnc_moduleSetRepairFacility.sqf b/addons/zeus/functions/fnc_moduleSetRepairFacility.sqf index a35533f4f4..e8d5fa84a3 100644 --- a/addons/zeus/functions/fnc_moduleSetRepairFacility.sqf +++ b/addons/zeus/functions/fnc_moduleSetRepairFacility.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: mharis001 * Assigns object as repair facility. @@ -13,7 +14,6 @@ * * Public: No */ - #include "script_component.hpp" params ["_logic"]; diff --git a/addons/zeus/functions/fnc_moduleSetRepairVehicle.sqf b/addons/zeus/functions/fnc_moduleSetRepairVehicle.sqf index 485c8f8db5..79c89dfa88 100644 --- a/addons/zeus/functions/fnc_moduleSetRepairVehicle.sqf +++ b/addons/zeus/functions/fnc_moduleSetRepairVehicle.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: mharis001 * Assigns object as repair vehicle. @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_logic"]; diff --git a/addons/zeus/functions/fnc_moduleSimulation.sqf b/addons/zeus/functions/fnc_moduleSimulation.sqf index 76a275a02e..69d7abe36c 100644 --- a/addons/zeus/functions/fnc_moduleSimulation.sqf +++ b/addons/zeus/functions/fnc_moduleSimulation.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Fisher, SilentSpike * Toggle Simulation on object. @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_logic"]; diff --git a/addons/zeus/functions/fnc_moduleSuicideBomber.sqf b/addons/zeus/functions/fnc_moduleSuicideBomber.sqf index 5364692ded..c659ca7a9a 100644 --- a/addons/zeus/functions/fnc_moduleSuicideBomber.sqf +++ b/addons/zeus/functions/fnc_moduleSuicideBomber.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: mharis001 * Zeus module function to make unit a suicide bomber. @@ -17,7 +18,6 @@ * * Public: No */ -#include "script_component.hpp" #define EXPLOSIVES ["R_TBG32V_F", "M_Mo_120mm_AT", "Bo_GBU12_LGB"] #define DISTANCE_FAR 15 diff --git a/addons/zeus/functions/fnc_moduleSuppressiveFire.sqf b/addons/zeus/functions/fnc_moduleSuppressiveFire.sqf index 0dde339da6..1900e5a7a3 100644 --- a/addons/zeus/functions/fnc_moduleSuppressiveFire.sqf +++ b/addons/zeus/functions/fnc_moduleSuppressiveFire.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: bux, PabstMirror * Commands the selected unit or group to start suppressive fire on the unit, group or location the module is placed on @@ -16,7 +17,6 @@ * Public: No */ // #define DRAW_ZEUS_INFO -#include "script_component.hpp" if (canSuspend) exitWith {[FUNC(moduleSuppressiveFire), _this] call CBA_fnc_directCall;}; diff --git a/addons/zeus/functions/fnc_moduleSuppressiveFireLocal.sqf b/addons/zeus/functions/fnc_moduleSuppressiveFireLocal.sqf index 7b11b7e18f..2512269865 100644 --- a/addons/zeus/functions/fnc_moduleSuppressiveFireLocal.sqf +++ b/addons/zeus/functions/fnc_moduleSuppressiveFireLocal.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: bux, PabstMirror * Commands the selected unit or group to start suppressive fire on the unit, group or location the module is placed on @@ -15,7 +16,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_unit", "_targetASL", "_artilleryMag"]; TRACE_4("moduleSuppressiveFireLocal",_unit,local _unit,_targetASL,_artilleryMag); diff --git a/addons/zeus/functions/fnc_moduleSurrender.sqf b/addons/zeus/functions/fnc_moduleSurrender.sqf index 3c293bcfa0..5fc0ae9e0c 100644 --- a/addons/zeus/functions/fnc_moduleSurrender.sqf +++ b/addons/zeus/functions/fnc_moduleSurrender.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: SilentSpike * Flips the surrender state of the unit the module is placed on. @@ -15,7 +16,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_logic"]; diff --git a/addons/zeus/functions/fnc_moduleTeleportPlayers.sqf b/addons/zeus/functions/fnc_moduleTeleportPlayers.sqf index eb42306931..c120ee14f9 100644 --- a/addons/zeus/functions/fnc_moduleTeleportPlayers.sqf +++ b/addons/zeus/functions/fnc_moduleTeleportPlayers.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: SilentSpike * Zeus module function to teleport players on dialog confirmation @@ -15,7 +16,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_logic","_uid","_group"]; diff --git a/addons/zeus/functions/fnc_moduleToggleFlashlight.sqf b/addons/zeus/functions/fnc_moduleToggleFlashlight.sqf index c5f4c3668d..3f169028a5 100644 --- a/addons/zeus/functions/fnc_moduleToggleFlashlight.sqf +++ b/addons/zeus/functions/fnc_moduleToggleFlashlight.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: alganthe, mharis001 * Zeus module function to toggle flashlights. @@ -16,7 +17,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_logic", "_toggle", "_addGear", "_target"]; TRACE_1("params",_this); diff --git a/addons/zeus/functions/fnc_moduleToggleNvg.sqf b/addons/zeus/functions/fnc_moduleToggleNvg.sqf index 7a01c27a4a..f8627acfe6 100644 --- a/addons/zeus/functions/fnc_moduleToggleNvg.sqf +++ b/addons/zeus/functions/fnc_moduleToggleNvg.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: alganthe, mharis001 * Zeus module function to toggle NVGs. @@ -15,7 +16,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_logic", "_toggle", "_target"]; TRACE_1("params",_this); diff --git a/addons/zeus/functions/fnc_moduleUnGarrison.sqf b/addons/zeus/functions/fnc_moduleUnGarrison.sqf index 082a19b2b1..5ac9ea5dcf 100644 --- a/addons/zeus/functions/fnc_moduleUnGarrison.sqf +++ b/addons/zeus/functions/fnc_moduleUnGarrison.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: alganthe * Un-garrison a garrisoned group. @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_logic"]; diff --git a/addons/zeus/functions/fnc_moduleUnconscious.sqf b/addons/zeus/functions/fnc_moduleUnconscious.sqf index 72aa0599dd..fbba773b04 100644 --- a/addons/zeus/functions/fnc_moduleUnconscious.sqf +++ b/addons/zeus/functions/fnc_moduleUnconscious.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: SilentSpike * Flips the unconscious state of the unit the module is placed on. @@ -15,7 +16,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_logic"]; diff --git a/addons/zeus/functions/fnc_moduleZeusSettings.sqf b/addons/zeus/functions/fnc_moduleZeusSettings.sqf index 1aa4b399ef..6024126952 100644 --- a/addons/zeus/functions/fnc_moduleZeusSettings.sqf +++ b/addons/zeus/functions/fnc_moduleZeusSettings.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: SilentSpike * Module for adjusting various aspects of zeus @@ -15,7 +16,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_logic"]; diff --git a/addons/zeus/functions/fnc_showMessage.sqf b/addons/zeus/functions/fnc_showMessage.sqf index 755b9b6278..b38652eeba 100644 --- a/addons/zeus/functions/fnc_showMessage.sqf +++ b/addons/zeus/functions/fnc_showMessage.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: 654wak654 * Shows a Zeus message through the BIS function, handles localization. @@ -16,7 +17,6 @@ * * Public: Yes */ -#include "script_component.hpp" if (!(_this isEqualTypeParams [""])) exitWith {ERROR_1("First arg must be string [%1]",_this);}; diff --git a/addons/zeus/functions/fnc_ui_attributeCargo.sqf b/addons/zeus/functions/fnc_ui_attributeCargo.sqf index e973e0df76..b4fc156127 100644 --- a/addons/zeus/functions/fnc_ui_attributeCargo.sqf +++ b/addons/zeus/functions/fnc_ui_attributeCargo.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: PabstMirror, mharis001 * Initializes the ace_cargo attribute of the zeus vehicle attributes display. @@ -14,7 +15,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_control"]; TRACE_1("params",_control); diff --git a/addons/zeus/functions/fnc_ui_attributeRadius.sqf b/addons/zeus/functions/fnc_ui_attributeRadius.sqf index 3fccb19fab..d8a0c46305 100644 --- a/addons/zeus/functions/fnc_ui_attributeRadius.sqf +++ b/addons/zeus/functions/fnc_ui_attributeRadius.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: SilentSpike * Initializes the "Radius" Zeus module attribute. @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" // Generic init params ["_control"]; diff --git a/addons/zeus/functions/fnc_ui_defendArea.sqf b/addons/zeus/functions/fnc_ui_defendArea.sqf index cd3153d628..aaa05adbbf 100644 --- a/addons/zeus/functions/fnc_ui_defendArea.sqf +++ b/addons/zeus/functions/fnc_ui_defendArea.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: SilentSpike * Initializes the "Defend Area" Zeus module display. @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" // Generic init params ["_control"]; diff --git a/addons/zeus/functions/fnc_ui_editableObjects.sqf b/addons/zeus/functions/fnc_ui_editableObjects.sqf index b1a68ad6e3..b21b50ea26 100644 --- a/addons/zeus/functions/fnc_ui_editableObjects.sqf +++ b/addons/zeus/functions/fnc_ui_editableObjects.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: Fisher, SilentSpike, mharis001 * Initializes the "Editable Objects" Zeus module display. @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_control"]; diff --git a/addons/zeus/functions/fnc_ui_garrison.sqf b/addons/zeus/functions/fnc_ui_garrison.sqf index 76c3ef1414..a0843b5866 100644 --- a/addons/zeus/functions/fnc_ui_garrison.sqf +++ b/addons/zeus/functions/fnc_ui_garrison.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: alganthe, mharis001 * Initializes the "Garrison" Zeus module display. @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_control"]; diff --git a/addons/zeus/functions/fnc_ui_globalSetSkill.sqf b/addons/zeus/functions/fnc_ui_globalSetSkill.sqf index 91da3b04dc..79e7ea077d 100644 --- a/addons/zeus/functions/fnc_ui_globalSetSkill.sqf +++ b/addons/zeus/functions/fnc_ui_globalSetSkill.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: PabstMirror * Initalises the `global skill` zeus module display @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_control"]; TRACE_1("params",_control); diff --git a/addons/zeus/functions/fnc_ui_groupSide.sqf b/addons/zeus/functions/fnc_ui_groupSide.sqf index 17e6aadc15..e74ab97c9e 100644 --- a/addons/zeus/functions/fnc_ui_groupSide.sqf +++ b/addons/zeus/functions/fnc_ui_groupSide.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: SilentSpike * Initalises the `group side` zeus module display @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" #define IDCs [31201,31200,31202,31203] params ["_control"]; diff --git a/addons/zeus/functions/fnc_ui_patrolArea.sqf b/addons/zeus/functions/fnc_ui_patrolArea.sqf index 89947afb22..93cae24aa5 100644 --- a/addons/zeus/functions/fnc_ui_patrolArea.sqf +++ b/addons/zeus/functions/fnc_ui_patrolArea.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: SilentSpike * Initializes the "Patrol Area" Zeus module display. @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" // Generic init params ["_control"]; diff --git a/addons/zeus/functions/fnc_ui_searchArea.sqf b/addons/zeus/functions/fnc_ui_searchArea.sqf index 197f5c835f..db2748e629 100644 --- a/addons/zeus/functions/fnc_ui_searchArea.sqf +++ b/addons/zeus/functions/fnc_ui_searchArea.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: SilentSpike * Initializes the "Search Area" Zeus module display. @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" // Generic init params ["_control"]; diff --git a/addons/zeus/functions/fnc_ui_setEngineer.sqf b/addons/zeus/functions/fnc_ui_setEngineer.sqf index 18cd5febfa..20e8113c7a 100644 --- a/addons/zeus/functions/fnc_ui_setEngineer.sqf +++ b/addons/zeus/functions/fnc_ui_setEngineer.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: mharis001 * Initalizes the "Set Engineer" Zeus module display. @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_control"]; diff --git a/addons/zeus/functions/fnc_ui_suicideBomber.sqf b/addons/zeus/functions/fnc_ui_suicideBomber.sqf index 6ee5c6b0d8..060618e536 100644 --- a/addons/zeus/functions/fnc_ui_suicideBomber.sqf +++ b/addons/zeus/functions/fnc_ui_suicideBomber.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: mharis001 * Initializes the "Suicide Bomber" Zeus module display. @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" #define SIDE_IDCs [83580, 83581, 83582, 83583] diff --git a/addons/zeus/functions/fnc_ui_teleportPlayers.sqf b/addons/zeus/functions/fnc_ui_teleportPlayers.sqf index 99233482a4..0594554dc5 100644 --- a/addons/zeus/functions/fnc_ui_teleportPlayers.sqf +++ b/addons/zeus/functions/fnc_ui_teleportPlayers.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: SilentSpike, mharis001 * Initalizes the "Teleport Players" Zeus module display. @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_control"]; diff --git a/addons/zeus/functions/fnc_ui_toggleFlashlight.sqf b/addons/zeus/functions/fnc_ui_toggleFlashlight.sqf index b7dab0e1be..333da80ac3 100644 --- a/addons/zeus/functions/fnc_ui_toggleFlashlight.sqf +++ b/addons/zeus/functions/fnc_ui_toggleFlashlight.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: alganthe, mharis001 * Initializes the "Toggle Flashlights" Zeus module display. @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_control"]; diff --git a/addons/zeus/functions/fnc_ui_toggleNvg.sqf b/addons/zeus/functions/fnc_ui_toggleNvg.sqf index 2596ad6cd0..037c216205 100644 --- a/addons/zeus/functions/fnc_ui_toggleNvg.sqf +++ b/addons/zeus/functions/fnc_ui_toggleNvg.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: alganthe, mharis001 * Initializes the "Toggle NVGs" Zeus module display. @@ -13,7 +14,6 @@ * * Public: No */ -#include "script_component.hpp" params ["_control"]; diff --git a/addons/zeus/functions/fnc_zeusAttributes.sqf b/addons/zeus/functions/fnc_zeusAttributes.sqf index 8e80744e66..4e2b3eb897 100644 --- a/addons/zeus/functions/fnc_zeusAttributes.sqf +++ b/addons/zeus/functions/fnc_zeusAttributes.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: PabstMirror * Dummy function to include BIS script file. @@ -16,7 +17,6 @@ * * Public: No */ -#include "script_component.hpp" TRACE_1("params",_this); diff --git a/optionals/compat_rhs_afrf3/functions/fnc_onCut.sqf b/optionals/compat_rhs_afrf3/functions/fnc_onCut.sqf index 6a249a55c4..266fa5e223 100644 --- a/optionals/compat_rhs_afrf3/functions/fnc_onCut.sqf +++ b/optionals/compat_rhs_afrf3/functions/fnc_onCut.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: BaerMitUmlaut * Function for closing doors and retracting the hooks for RHS USF helos. @@ -13,8 +14,6 @@ * * Public: No */ - -#include "script_component.hpp" params ["_vehicle"]; _vehicle setVariable [QEGVAR(fastroping,doorsLocked), false, true]; diff --git a/optionals/compat_rhs_afrf3/functions/fnc_onPrepare.sqf b/optionals/compat_rhs_afrf3/functions/fnc_onPrepare.sqf index 8a9dc9471e..d5317192d1 100644 --- a/optionals/compat_rhs_afrf3/functions/fnc_onPrepare.sqf +++ b/optionals/compat_rhs_afrf3/functions/fnc_onPrepare.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: BaerMitUmlaut * Function for opening doors and extending the hook for most vanilla helos. @@ -13,8 +14,6 @@ * * Public: No */ - -#include "script_component.hpp" params ["_vehicle"]; _vehicle setVariable [QEGVAR(fastroping,doorsLocked), true, true]; diff --git a/optionals/compat_rhs_usf3/functions/fnc_canCloseDoor.sqf b/optionals/compat_rhs_usf3/functions/fnc_canCloseDoor.sqf index 2395010624..3d793f08c8 100644 --- a/optionals/compat_rhs_usf3/functions/fnc_canCloseDoor.sqf +++ b/optionals/compat_rhs_usf3/functions/fnc_canCloseDoor.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: BaerMitUmlaut * Checks if the door can be closed. @@ -15,7 +16,6 @@ * Public: No */ -#include "script_component.hpp" params ["_vehicle", "_door"]; (alive _vehicle) && diff --git a/optionals/compat_rhs_usf3/functions/fnc_onCut.sqf b/optionals/compat_rhs_usf3/functions/fnc_onCut.sqf index 8cbf1e2450..4547ca6b83 100644 --- a/optionals/compat_rhs_usf3/functions/fnc_onCut.sqf +++ b/optionals/compat_rhs_usf3/functions/fnc_onCut.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: BaerMitUmlaut * Function for closing doors and retracting the hooks for RHS USF helos. @@ -13,8 +14,6 @@ * * Public: No */ - -#include "script_component.hpp" params ["_vehicle"]; _vehicle setVariable [QEGVAR(fastroping,doorsLocked), false, true]; diff --git a/optionals/compat_rhs_usf3/functions/fnc_onPrepare.sqf b/optionals/compat_rhs_usf3/functions/fnc_onPrepare.sqf index 2adb6f2b5e..cfd23da7b3 100644 --- a/optionals/compat_rhs_usf3/functions/fnc_onPrepare.sqf +++ b/optionals/compat_rhs_usf3/functions/fnc_onPrepare.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: BaerMitUmlaut * Function for opening doors and extending the hook for most vanilla helos. @@ -13,8 +14,6 @@ * * Public: No */ - -#include "script_component.hpp" params ["_vehicle"]; _vehicle setVariable [QEGVAR(fastroping,doorsLocked), true, true]; diff --git a/optionals/nouniformrestrictions/functions/fnc_exportConfig.sqf b/optionals/nouniformrestrictions/functions/fnc_exportConfig.sqf index f5e3d0cb8b..b43a530728 100644 --- a/optionals/nouniformrestrictions/functions/fnc_exportConfig.sqf +++ b/optionals/nouniformrestrictions/functions/fnc_exportConfig.sqf @@ -1,3 +1,4 @@ +#include "script_component.hpp" /* * Author: BaerMitUmlaut, 654wak654 * Generates the CfgVehicles config to allow uniform usage on all sides. @@ -13,7 +14,6 @@ * * Public: Yes */ -#include "script_component.hpp" private _modifyClasses = []; private _baseClasses = []; diff --git a/tools/sqf_validator.py b/tools/sqf_validator.py index c824b35268..5f74806388 100644 --- a/tools/sqf_validator.py +++ b/tools/sqf_validator.py @@ -139,6 +139,13 @@ def check_sqf_syntax(filepath): if brackets_list.count('{') != brackets_list.count('}'): print("ERROR: A possible missing curly brace {{ or }} in file {0} {{ = {1} }} = {2}".format(filepath,brackets_list.count('{'),brackets_list.count('}'))) bad_count_file += 1 + pattern = re.compile('\s*(/\*[\s\S]+?\*/)\s*#include') + if pattern.match(content): + print("ERROR: A found #include after block comment in file {0}".format(filepath)) + bad_count_file += 1 + + + return bad_count_file def main(): From 5aa8c1dca0e319de3c5591bf73623b89daa427b7 Mon Sep 17 00:00:00 2001 From: commy2 Date: Tue, 18 Sep 2018 18:35:40 +0200 Subject: [PATCH 224/235] make setUnconscious not reset firing mode (#6519) --- addons/medical/functions/fnc_setUnconscious.sqf | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/addons/medical/functions/fnc_setUnconscious.sqf b/addons/medical/functions/fnc_setUnconscious.sqf index 93aaef2356..c2e43e702d 100644 --- a/addons/medical/functions/fnc_setUnconscious.sqf +++ b/addons/medical/functions/fnc_setUnconscious.sqf @@ -75,7 +75,10 @@ if (vehicle _unit == _unit) then { if (primaryWeapon _unit == "") then { _unit addWeapon "ACE_FakePrimaryWeapon"; }; - _unit selectWeapon (primaryWeapon _unit); + + if (currentWeapon _unit != primaryWeapon _unit) then { + _unit selectWeapon primaryWeapon _unit; + }; }; // We are storing the current animation, so we can use it later on when waking the unit up inside a vehicle From 7673ffab0a2e7f9aa070aee1def1e90c754f53d8 Mon Sep 17 00:00:00 2001 From: commy2 Date: Wed, 19 Sep 2018 01:23:48 +0200 Subject: [PATCH 225/235] sqf_validator compatibility with findIf command --- tools/sqf_validator.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/sqf_validator.py b/tools/sqf_validator.py index 5f74806388..4f145b5bd0 100644 --- a/tools/sqf_validator.py +++ b/tools/sqf_validator.py @@ -8,7 +8,7 @@ import sys import argparse def validKeyWordAfterCode(content, index): - keyWords = ["for", "do", "count", "each", "forEach", "else", "and", "not", "isEqualTo", "in", "call", "spawn", "execVM", "catch", "param", "select", "apply"]; + keyWords = ["for", "do", "count", "each", "forEach", "else", "and", "not", "isEqualTo", "in", "call", "spawn", "execVM", "catch", "param", "select", "apply", "findIf"]; for word in keyWords: try: subWord = content.index(word, index, index+len(word)) From a6d40549dc23429cb6129f85e1beabb0008ac562 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ozan=20E=C4=9Fitmen?= Date: Wed, 19 Sep 2018 16:24:57 +0300 Subject: [PATCH 226/235] Fix findIf typo, Don't deep copy arrays (#6587) --- addons/arsenal/functions/fnc_buttonLoadoutsSave.sqf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/addons/arsenal/functions/fnc_buttonLoadoutsSave.sqf b/addons/arsenal/functions/fnc_buttonLoadoutsSave.sqf index c35a51f797..78e02431a4 100644 --- a/addons/arsenal/functions/fnc_buttonLoadoutsSave.sqf +++ b/addons/arsenal/functions/fnc_buttonLoadoutsSave.sqf @@ -33,7 +33,7 @@ private _loadoutName = _contentPanelCtrl lnbText [_cursSelRow, 1]; private _curSelLoadout = (_contentPanelCtrl getVariable (_loadoutName + str GVAR(currentLoadoutsTab))) select 0; private _loadout = getUnitLoadout GVAR(center); -private _loadoutIndex = (+(_data)) findIf {(_x select 0) == _editBoxContent}; +private _loadoutIndex = _data findIf {(_x select 0) == _editBoxContent}; private _sharedLoadoutsVars = GVAR(sharedLoadoutsNamespace) getVariable QGVAR(sharedLoadoutsVars); // Make sure the loadout isn't yours (public tab) or being shared (my loadouts tab) @@ -155,7 +155,7 @@ switch (GVAR(currentLoadoutsTab)) do { if (is3DEN) then { - private _loadoutIndex = (+(_data)) findId {(_x select 0) == _editBoxContent}; + private _loadoutIndex = _data findIf {(_x select 0) == _editBoxContent}; for "_dataIndex" from 0 to 10 do { switch (_dataIndex) do { From 0a2f5cf23883b285d7e6796f892e8f4e8dc8bb20 Mon Sep 17 00:00:00 2001 From: Dedmen Miller Date: Wed, 19 Sep 2018 15:31:08 +0200 Subject: [PATCH 227/235] Fixed #6581 (#6586) --- addons/zeus/functions/fnc_bi_moduleProjectile.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/zeus/functions/fnc_bi_moduleProjectile.sqf b/addons/zeus/functions/fnc_bi_moduleProjectile.sqf index 0ad823b9dc..4439ad3517 100644 --- a/addons/zeus/functions/fnc_bi_moduleProjectile.sqf +++ b/addons/zeus/functions/fnc_bi_moduleProjectile.sqf @@ -157,7 +157,7 @@ if (_activated) then { _projectile setposasl _posNew; _pos = getposatl _logic; _dir = direction _logic; - missionnamespace setvariable [_dirVar,_dir]; + //missionnamespace setvariable [_dirVar,_dir]; See L37 }; sleep 0.1; isnull _projectile || isnull _logic From afbf2049eae21fd9e757c48d221f9d0e47ab74f7 Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Thu, 20 Sep 2018 14:34:59 -0500 Subject: [PATCH 228/235] Skip semi-colon test with findIf (#6584) * Skip semi-colon test with findIf * Fix #6186 * column cleanser --- tools/sqf_validator.py | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/tools/sqf_validator.py b/tools/sqf_validator.py index 4f145b5bd0..c45f0f94f2 100644 --- a/tools/sqf_validator.py +++ b/tools/sqf_validator.py @@ -8,7 +8,7 @@ import sys import argparse def validKeyWordAfterCode(content, index): - keyWords = ["for", "do", "count", "each", "forEach", "else", "and", "not", "isEqualTo", "in", "call", "spawn", "execVM", "catch", "param", "select", "apply", "findIf"]; + keyWords = ["for", "do", "count", "each", "forEach", "else", "and", "not", "isEqualTo", "in", "call", "spawn", "execVM", "catch", "param", "select", "apply", "findIf", "remoteExec"]; for word in keyWords: try: subWord = content.index(word, index, index+len(word)) @@ -47,7 +47,7 @@ def check_sqf_syntax(filepath): inStringType = ''; lastIsCurlyBrace = False - checkForSemiColumn = False + checkForSemicolon = False # Extra information so we know what line we find errors at lineNumber = 1 @@ -57,7 +57,8 @@ def check_sqf_syntax(filepath): for c in content: if (lastIsCurlyBrace): lastIsCurlyBrace = False - checkForSemiColumn = True + # Test generates false positives with binary commands that take CODE as 2nd arg (e.g. findIf) + checkForSemicolon = not re.search('findIf', content, re.IGNORECASE) if c == '\n': # Keeping track of our line numbers lineNumber += 1 # so we can print accurate line number information when we detect a possible error @@ -113,11 +114,11 @@ def check_sqf_syntax(filepath): print("ERROR: Tab detected at {0} Line number: {1}".format(filepath,lineNumber)) bad_count_file += 1 - if (checkForSemiColumn): + if (checkForSemicolon): if (c not in [' ', '\t', '\n', '/']): # keep reading until no white space or comments - checkForSemiColumn = False + checkForSemicolon = False if (c not in [']', ')', '}', ';', ',', '&', '!', '|', '='] and not validKeyWordAfterCode(content, indexOfCharacter)): # , 'f', 'd', 'c', 'e', 'a', 'n', 'i']): - print("ERROR: Possible missing semi-column ';' detected at {0} Line number: {1}".format(filepath,lineNumber)) + print("ERROR: Possible missing semicolon ';' detected at {0} Line number: {1}".format(filepath,lineNumber)) bad_count_file += 1 else: # Look for the end of our comment block From 61000df1202ef79e7621305676de1aa92cfaf944 Mon Sep 17 00:00:00 2001 From: mharis001 <34453221+mharis001@users.noreply.github.com> Date: Fri, 21 Sep 2018 16:11:02 -0400 Subject: [PATCH 229/235] Tagging - Cache required items check and use uniqueItems (#6582) * Cache required items check and use uniqueItems * Use config-case for required items --- addons/tagging/functions/fnc_addCustomTag.sqf | 1 - addons/tagging/functions/fnc_addTagActions.sqf | 2 +- addons/tagging/functions/fnc_applyCustomTag.sqf | 2 ++ addons/tagging/functions/fnc_checkTaggable.sqf | 5 +++-- addons/tagging/functions/fnc_compileConfigTags.sqf | 4 +++- addons/tagging/functions/fnc_quickTag.sqf | 2 +- 6 files changed, 10 insertions(+), 6 deletions(-) diff --git a/addons/tagging/functions/fnc_addCustomTag.sqf b/addons/tagging/functions/fnc_addCustomTag.sqf index 4a0fdf6ced..cb426493b3 100644 --- a/addons/tagging/functions/fnc_addCustomTag.sqf +++ b/addons/tagging/functions/fnc_addCustomTag.sqf @@ -48,7 +48,6 @@ if (_textures isEqualTo []) exitWith { }; _identifier = [_identifier] call CBA_fnc_removeWhitespace; -_requiredItem = toLower _requiredItem; // Add [QGVAR(applyCustomTag), [_identifier, _displayName, _requiredItem, _textures, _icon]] call CBA_fnc_globalEventJIP; diff --git a/addons/tagging/functions/fnc_addTagActions.sqf b/addons/tagging/functions/fnc_addTagActions.sqf index 692fccd194..a5fdcd219a 100644 --- a/addons/tagging/functions/fnc_addTagActions.sqf +++ b/addons/tagging/functions/fnc_addTagActions.sqf @@ -33,7 +33,7 @@ private _actions = []; }, { (_this select 2) params ["_unit", "", "", "_requiredItem"]; - _requiredItem in ((items _unit) apply {toLower _x}) + _requiredItem in (_unit call EFUNC(common,uniqueItems)) }, {}, [_unit, _class, _textures, _requiredItem] diff --git a/addons/tagging/functions/fnc_applyCustomTag.sqf b/addons/tagging/functions/fnc_applyCustomTag.sqf index 123ce8df4c..be73d85021 100644 --- a/addons/tagging/functions/fnc_applyCustomTag.sqf +++ b/addons/tagging/functions/fnc_applyCustomTag.sqf @@ -25,6 +25,8 @@ params ["_identifier", "_displayName", "_requiredItem"]; if !(GVAR(cachedTags) select {_x select 0 == _identifier} isEqualTo []) exitWith { INFO_2("Tag with selected identifier already exists: %1 (%2)",_identifier,_displayName) }; +_requiredItem = configName (configFile >> "CfgWeapons" >> _requiredItem); // Convert To config case +_this set [2, _requiredItem]; GVAR(cachedTags) pushBack _this; GVAR(cachedRequiredItems) pushBackUnique _requiredItem; diff --git a/addons/tagging/functions/fnc_checkTaggable.sqf b/addons/tagging/functions/fnc_checkTaggable.sqf index 473d2e390e..3a022ca2b7 100644 --- a/addons/tagging/functions/fnc_checkTaggable.sqf +++ b/addons/tagging/functions/fnc_checkTaggable.sqf @@ -19,7 +19,9 @@ params ["_unit"]; // Exit if no required item in inventory - if ((GVAR(cachedRequiredItems) arrayIntersect ((items _unit) apply {toLower _x})) isEqualTo []) exitWith {false}; + if ([_unit, { + GVAR(cachedRequiredItems) arrayIntersect (_unit call EFUNC(common,uniqueItems)) isEqualTo [] + }, _unit, QGVAR(checkRequiredItemsCache), 9999, "cba_events_loadoutEvent"] call EFUNC(common,cachedCall)) exitWith {false}; private _startPosASL = eyePos _unit; private _cameraPosASL = AGLToASL positionCameraToWorld [0, 0, 0]; @@ -36,7 +38,6 @@ // Exit if trying to tag a non static object TRACE_1("Obj:",_intersections); - // Exit if trying to tag a non static object if ((!isNull _object) && { // If the class is alright, do not exit if (_object isKindOf "Static") exitWith {false}; diff --git a/addons/tagging/functions/fnc_compileConfigTags.sqf b/addons/tagging/functions/fnc_compileConfigTags.sqf index 35b8f2d4c7..c9aaca9506 100644 --- a/addons/tagging/functions/fnc_compileConfigTags.sqf +++ b/addons/tagging/functions/fnc_compileConfigTags.sqf @@ -25,7 +25,7 @@ _failure = true; }; - private _requiredItem = toLower (getText (_x >> "requiredItem")); + private _requiredItem = getText (_x >> "requiredItem"); if (_requiredItem == "") then { ERROR_1("Failed compiling ACE_Tags for tag: %1 - missing requiredItem",_class); _failure = true; @@ -33,6 +33,8 @@ if (!isClass (configFile >> "CfgWeapons" >> _requiredItem)) then { ERROR_2("Failed compiling ACE_Tags for tag: %1 - requiredItem %2 does not exist",_class,_requiredItem); _failure = true; + } else { + _requiredItem = configName (configFile >> "CfgWeapons" >> _requiredItem); // convert to config case }; }; diff --git a/addons/tagging/functions/fnc_quickTag.sqf b/addons/tagging/functions/fnc_quickTag.sqf index dde4c02729..bb672ed947 100644 --- a/addons/tagging/functions/fnc_quickTag.sqf +++ b/addons/tagging/functions/fnc_quickTag.sqf @@ -48,6 +48,6 @@ if (GVAR(quickTag) == 3) then { // Tag if !(_possibleTags isEqualTo []) then { - private _availableTags = _possibleTags select {(_x select 2) in ((items _unit) apply {toLower _x})}; + private _availableTags = _possibleTags select {(_x select 2) in (_unit call EFUNC(common,uniqueItems))}; [_unit, selectRandom ((selectRandom _availableTags) select 3)] call FUNC(tag); }; From ab52ff8ddbe1e4f06636be84e4f204a4339a5a0b Mon Sep 17 00:00:00 2001 From: Mezilsa Date: Sat, 22 Sep 2018 05:32:09 +0200 Subject: [PATCH 230/235] add microdagrwaypoint precision as an option (#6437) * Make the precision of the mircoDagr less perfekt * Add strings of precision Option to stringtabel * Update stringtable.xml * Create initSettings.sqf * Update ACE_Settings.hpp * Finally * Cleaning * Update initSettings.sqf * Move other settings to sqf, simplify waypointPrecision --- addons/microdagr/ACE_Settings.hpp | 7 +----- addons/microdagr/XEH_preInit.sqf | 2 ++ .../microdagr/functions/fnc_updateDisplay.sqf | 6 ++--- addons/microdagr/initSettings.sqf | 21 +++++++++++++++++ addons/microdagr/stringtable.xml | 23 ++++++++++++++++++- 5 files changed, 49 insertions(+), 10 deletions(-) create mode 100644 addons/microdagr/initSettings.sqf diff --git a/addons/microdagr/ACE_Settings.hpp b/addons/microdagr/ACE_Settings.hpp index f1e7595b74..fa51a6535d 100644 --- a/addons/microdagr/ACE_Settings.hpp +++ b/addons/microdagr/ACE_Settings.hpp @@ -1,10 +1,5 @@ class ACE_Settings { class GVAR(mapDataAvailable) { - displayName = CSTRING(MapDataAvailable_DisplayName); - description = CSTRING(MapDataAvailable_Description); - value = 2; - typeName = "SCALAR"; - isClientSettable = 0; - values[] = {CSTRING(MapFill_None), CSTRING(MapFill_OnlyRoads), CSTRING(MapFill_Full)}; + movedToSQF = 1; }; }; diff --git a/addons/microdagr/XEH_preInit.sqf b/addons/microdagr/XEH_preInit.sqf index c6cdd0bbef..b46948b0bb 100644 --- a/addons/microdagr/XEH_preInit.sqf +++ b/addons/microdagr/XEH_preInit.sqf @@ -9,4 +9,6 @@ PREP_RECOMPILE_END; //Functions that are called for each draw of the map: GVAR(miniMapDrawHandlers) = []; +#include "initSettings.sqf" + ADDON = true; diff --git a/addons/microdagr/functions/fnc_updateDisplay.sqf b/addons/microdagr/functions/fnc_updateDisplay.sqf index d6acba711e..a78f369d56 100644 --- a/addons/microdagr/functions/fnc_updateDisplay.sqf +++ b/addons/microdagr/functions/fnc_updateDisplay.sqf @@ -89,7 +89,7 @@ case (APP_MODE_INFODISPLAY): { ([_bearing, 3, 1] call CBA_fnc_formatNumber) + "°" //degree symbol is in UTF-8 }; private _2dDistanceKm = ((getPosASL ACE_player) distance2D _targetPosLocationASL) / 1000; - _rangeText = format ["%1km", _2dDistanceKm toFixed 3]; + _rangeText = format ["%1km", _2dDistanceKm toFixed GVAR(waypointPrecision)]; private _numASL = (_targetPosLocationASL select 2) + EGVAR(common,mapAltitude); _aboveSeaLevelText = [_numASL, 5, 0] call CBA_fnc_formatNumber; _aboveSeaLevelText = if (_numASL > 0) then {"+" + _aboveSeaLevelText + " MSL"} else {_aboveSeaLevelText + " MSL"}; @@ -145,7 +145,7 @@ case (APP_MODE_COMPASS): { ([_bearing, 3, 1] call CBA_fnc_formatNumber) + "°" //degree symbol is in UTF-8 }; private _2dDistanceKm = ((getPosASL ACE_player) distance2D _targetPosLocationASL) / 1000; - _rangeText = format ["%1km", _2dDistanceKm toFixed 3]; + _rangeText = format ["%1km", _2dDistanceKm toFixed GVAR(waypointPrecision)]; }; (_display displayCtrl IDC_MODECOMPASS_BEARING) ctrlSetText _bearingText; @@ -163,7 +163,7 @@ case (APP_MODE_WAYPOINTS): { _x params ["_wpName", "_wpPos"]; _wpListBox lbAdd _wpName; private _2dDistanceKm = ((getPosASL ACE_player) distance2D _wpPos) / 1000; - _wpListBox lbSetTextRight [_forEachIndex, (format ["%1km", _2dDistanceKm toFixed 3])]; + _wpListBox lbSetTextRight [_forEachIndex, (format ["%1km", _2dDistanceKm toFixed GVAR(waypointPrecision)])]; } forEach _waypoints; _currentIndex = (_currentIndex max 0) min (count _waypoints); diff --git a/addons/microdagr/initSettings.sqf b/addons/microdagr/initSettings.sqf new file mode 100644 index 0000000000..5138637645 --- /dev/null +++ b/addons/microdagr/initSettings.sqf @@ -0,0 +1,21 @@ +// CBA Settings [ADDON: ace_microdagr]: + +[ + QGVAR(mapDataAvailable), "LIST", + [LSTRING(MapDataAvailable_DisplayName), LSTRING(MapDataAvailable_Description)], + ["ACE Uncategorized", "MicroDAGR"], + [[0,1,2],[LSTRING(MapFill_None), LSTRING(MapFill_OnlyRoads), LSTRING(MapFill_Full)],2], // [values, titles, defaultIndex] + true, // isGlobal + {[QGVAR(mapDataAvailable), _this] call EFUNC(common,cbaSettings_settingChanged)}, + true // require mission restart +] call CBA_settings_fnc_init; + +[ + QGVAR(waypointPrecision), "LIST", + [LSTRING(WaypointPrecision_DisplayName), LSTRING(WaypointPrecision_Description)], + ["ACE Uncategorized", "MicroDAGR"], + [[1, 2, 3], [LSTRING(WaypointPrecision_medium), LSTRING(WaypointPrecision_close), LSTRING(WaypointPrecision_exact)], 2], // [values, titles, defaultIndex] + true, // isGlobal + {[QGVAR(waypointPrecision), _this] call EFUNC(common,cbaSettings_settingChanged)}, + false // require mission restart +] call cba_settings_fnc_init; diff --git a/addons/microdagr/stringtable.xml b/addons/microdagr/stringtable.xml index 1d393606f3..dbe7cff87f 100644 --- a/addons/microdagr/stringtable.xml +++ b/addons/microdagr/stringtable.xml @@ -497,6 +497,27 @@ 无 (无法检视地图) 無 (無法檢視地圖) + + MicroDAGR - Waypoint Precision + MicroDAGR - Wegpunkt Genauigkeit + + + Controls how precise the waypointdistance can be displayed + Legt die Genauigkeit der Entfernung von Wegpunkten fest + + + 100m + 100m + + + 10m + 10m + + + 1m + 1m + + Controls how much data is filled on the microDAGR items. Less data restricts the map view to show less on the minimap. Moduł ten pozwala kontrolować jak duża ilość informacji jest załadowana do przedmiotów MicroDAGR. Mniejsza ilość danych ogranicza widok mapy pokazując mniej rzeczy na minimapie. @@ -511,7 +532,7 @@ アイテム上で表示されるデータ量を決定します。設定を減らすと地図上での情報が少なくなります。 MicroDAGR에 얼마나 많은 데이터가 들어있는지 정합니다. 적을 수록 지도상에도 비춰지는게 적어집니다. 设定有多少数据会显示在微型军用GPS接收器上。这些资料的多寡会反映在迷你地图的显示上。 - 設定有多少數據會顯示在微型軍用GPS接收器上。這些資料的多寡會反映在迷你地圖的顯示上 + 設定有多少數據會顯示在微型軍用GPS接收器上。這些資料的多寡會反映在迷你地圖的顯示上。 From 8648ccaba5bd2b9e51062edb211212ce2bb70a63 Mon Sep 17 00:00:00 2001 From: mharis001 <34453221+mharis001@users.noreply.github.com> Date: Fri, 21 Sep 2018 23:54:24 -0400 Subject: [PATCH 231/235] Explosives - Optimize creating explosive place actions (#6413) * Optimize explosive actions * Optimize hasExplosives function * Readability parentheses * bump * testing... * last try * for science * fix for sqf_validator --- addons/explosives/CfgVehicles.hpp | 6 +- .../functions/fnc_addExplosiveActions.sqf | 71 +++++++------------ .../functions/fnc_hasExplosives.sqf | 17 ++--- 3 files changed, 34 insertions(+), 60 deletions(-) diff --git a/addons/explosives/CfgVehicles.hpp b/addons/explosives/CfgVehicles.hpp index c183720386..97562dc836 100644 --- a/addons/explosives/CfgVehicles.hpp +++ b/addons/explosives/CfgVehicles.hpp @@ -1,4 +1,3 @@ - class CBA_Extended_EventHandlers; class CfgVehicles { @@ -15,12 +14,11 @@ class CfgVehicles { insertChildren = QUOTE([_player] call FUNC(addTransmitterActions);); class ACE_Place { displayName = CSTRING(Place); - condition = QUOTE((vehicle _player == _player) and {[_player] call FUNC(hasExplosives)}); statement = ""; - insertChildren = QUOTE([_player] call FUNC(addExplosiveActions);); + condition = "true"; exceptions[] = {"isNotSwimming"}; - showDisabled = 1; icon = QPATHTOF(UI\Place_Explosive_ca.paa); + insertChildren = QUOTE(_player call FUNC(addExplosiveActions)); }; class ACE_Cellphone { displayName = CSTRING(cellphone_displayName); diff --git a/addons/explosives/functions/fnc_addExplosiveActions.sqf b/addons/explosives/functions/fnc_addExplosiveActions.sqf index 2322e4084f..281aebf048 100644 --- a/addons/explosives/functions/fnc_addExplosiveActions.sqf +++ b/addons/explosives/functions/fnc_addExplosiveActions.sqf @@ -1,61 +1,42 @@ #include "script_component.hpp" /* - * Author: Garth 'L-H' de Wet and CAA-Picard - * Adds sub actions for all explosive magazines (from insertChildren) + * Author: Garth 'L-H' de Wet, CAA-Picard, mharis001 + * Returns children actions for explosive magazines in the player's inventory. * * Arguments: - * 0: Unit + * 0: Player * * Return Value: * Actions * * Example: - * [bob] call ace_explosives_fnc_addExplosiveActions + * [_player] call ace_explosives_fnc_addExplosiveActions * * Public: No */ -params ["_unit"]; -TRACE_1("params",_unit); +[_this, { + params ["_player"]; + TRACE_1("Creating explosive actions",_player); -private _mags = magazines _unit; -private _list = []; -private _itemCount = []; -{ - private _item = ConfigFile >> "CfgMagazines" >> _x; - if (getNumber(_item >> QGVAR(Placeable)) == 1) then { - private _index = _list find _item; - if (_index != -1) then { - _itemCount set [_index, (_itemCount select _index) + 1]; - } else { - _list pushBack _item; - _itemCount pushBack 1; + private _cfgMagazines = configFile >> "CfgMagazines"; + private _magazines = magazines _player; + private _totalCount = count _magazines; + + private _actions = []; + { + private _config = _cfgMagazines >> _x; + if (getNumber (_config >> QGVAR(Placeable)) == 1) then { + private _name = getText (_config >> "displayNameShort"); + private _picture = getText (_config >> "picture"); + if (_name isEqualTo "") then { + _name = getText (_config >> "displayName"); + }; + + private _action = [_x, format ["%1 (%2)", _name, _totalCount - count (_magazines - [_x])], _picture, {[{_this call FUNC(setupExplosive)}, _this] call CBA_fnc_execNextFrame}, {true}, {}, _x] call EFUNC(interact_menu,createAction); + _actions pushBack [_action, [], _player]; }; - }; -} forEach _mags; + } forEach (_magazines arrayIntersect _magazines); -private _children = []; - -{ - private _name = getText (_x >> "displayNameShort"); - if (_name isEqualTo "") then { - _name = getText (_x >> "displayName"); - }; - - _children pushBack - [ - [ - format ["Explosive_%1", _forEachIndex], - format [_name + " (%1)", _itemCount select _forEachIndex], - getText(_x >> "picture"), - {[{_this call FUNC(setupExplosive)}, _this] call CBA_fnc_execNextFrame}, - {true}, - {}, - (configName _x) - ] call EFUNC(interact_menu,createAction), - [], - _unit - ]; -} forEach _list; - -_children + _actions +}, ACE_player, QGVAR(explosiveActions), 3600, "cba_events_loadoutEvent"] call EFUNC(common,cachedCall); diff --git a/addons/explosives/functions/fnc_hasExplosives.sqf b/addons/explosives/functions/fnc_hasExplosives.sqf index 9c9f3a9bd0..0c824a87b2 100644 --- a/addons/explosives/functions/fnc_hasExplosives.sqf +++ b/addons/explosives/functions/fnc_hasExplosives.sqf @@ -1,16 +1,16 @@ #include "script_component.hpp" /* - * Author: Garth 'L-H' de Wet - * Whether the passed unit has any explosives on them. + * Author: Garth 'L-H' de Wet, mharis001 + * Checks if given unit has any placeable explosives on them. * * Arguments: * 0: Unit * * Return Value: - * The unit has explosives + * Has explosives * * Example: - * hasExplosives = [player] call ACE_Explosives_fnc_hasExplosives; + * [player] call ace_explosives_fnc_hasExplosives * * Public: Yes */ @@ -18,12 +18,7 @@ params ["_unit"]; TRACE_1("params",_unit); -private _result = false; +private _cfgMagazines = configFile >> "CfgMagazines"; private _magazines = magazines _unit; -{ - if (getNumber (ConfigFile >> "CfgMagazines" >> _x >> QGVAR(Placeable)) == 1) exitWith { - _result = true; - }; -} count _magazines; -_result +((_magazines arrayIntersect _magazines) findIf {getNumber (_cfgMagazines >> _x >> QGVAR(Placeable)) == 1}) > -1 From 0fd1a4c39effffcf9e2511986d3a96f7552bdc25 Mon Sep 17 00:00:00 2001 From: mharis001 <34453221+mharis001@users.noreply.github.com> Date: Sat, 22 Sep 2018 22:59:16 -0400 Subject: [PATCH 232/235] Convert CBA_fnc_uniqueUnitItems to common fnc_uniqueItems (#6593) --- addons/explosives/functions/fnc_interactEH.sqf | 4 ++-- addons/logistics_wirecutter/script_component.hpp | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/addons/explosives/functions/fnc_interactEH.sqf b/addons/explosives/functions/fnc_interactEH.sqf index 8525b84499..59ddaff432 100644 --- a/addons/explosives/functions/fnc_interactEH.sqf +++ b/addons/explosives/functions/fnc_interactEH.sqf @@ -25,7 +25,7 @@ TRACE_1("Explosives interactEH",_interactionType); if ( _interactionType != 0 || {vehicle ACE_player != ACE_player} - || {!("ACE_DefusalKit" in ([ACE_player, false, true, true, true, false] call CBA_fnc_uniqueUnitItems))} + || {!("ACE_DefusalKit" in (ACE_player call EFUNC(common,uniqueItems)))} ) exitWith {}; [{ @@ -38,7 +38,7 @@ if ( {deleteVehicle _x} forEach _addedHelpers; [_pfhID] call CBA_fnc_removePerFrameHandler; } else { - // Prevent Rare Error when ending mission with interact key down: + // Prevent Rare Error when ending mission with interact key down private _player = ACE_player; if (isNull _player) exitWith {}; private _playerPos = getPosASL _player; diff --git a/addons/logistics_wirecutter/script_component.hpp b/addons/logistics_wirecutter/script_component.hpp index f971acd88f..85af4f54c9 100644 --- a/addons/logistics_wirecutter/script_component.hpp +++ b/addons/logistics_wirecutter/script_component.hpp @@ -58,7 +58,7 @@ #define CUT_TIME_ENGINEER 7.5 #define HAS_WIRECUTTER(unit) (\ - "ACE_wirecutter" in ([ARR_6(unit, false, true, true, true, false)] call CBA_fnc_uniqueUnitItems) \ + "ACE_wirecutter" in (unit call EFUNC(common,uniqueItems)) \ || {1 == getNumber (configFile >> "CfgVehicles" >> (backpack unit) >> QGVAR(hasWirecutter))} \ || {1 == getNumber (configFile >> "CfgWeapons" >> (vest unit) >> QGVAR(hasWirecutter))} \ ) From db5e9eaad7c02f497135eb98ff44458abe4b9108 Mon Sep 17 00:00:00 2001 From: jonpas Date: Wed, 26 Sep 2018 13:56:50 +0200 Subject: [PATCH 233/235] Fix rope redeploying without FRIES - fix #5686 (#6599) --- addons/fastroping/functions/fnc_cutRopes.sqf | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/addons/fastroping/functions/fnc_cutRopes.sqf b/addons/fastroping/functions/fnc_cutRopes.sqf index 25b880e41c..ae1b58638a 100644 --- a/addons/fastroping/functions/fnc_cutRopes.sqf +++ b/addons/fastroping/functions/fnc_cutRopes.sqf @@ -38,4 +38,7 @@ private _deployedRopes = _vehicle getVariable [QGVAR(deployedRopes), []]; } count _deployedRopes; _vehicle setVariable [QGVAR(deployedRopes), [], true]; -_vehicle setVariable [QGVAR(deploymentStage), 2, true]; + +// Set new state (0 if no FRIES, 2 if FRIES for manual stowing) +private _newState = [0, 2] select (isText (configFile >> "CfgVehicles" >> typeOf _vehicle >> QGVAR(onCut))); +_vehicle setVariable [QGVAR(deploymentStage), _newState, true]; From 43c52585852205afdd4a61bf61d0c1ba9a2d2b63 Mon Sep 17 00:00:00 2001 From: Blutze <37950828+Blutze@users.noreply.github.com> Date: Thu, 27 Sep 2018 09:18:54 +0200 Subject: [PATCH 234/235] Realistic Names - Rename RGN to V40 Mini-Grenade, fix some trailing spaces (#6590) * Add new strings, fix Czech M67 Czech string for M67 had a trailing space. * Apply new strings * Remove placeholder translations * Fix more trailing spaces --- addons/realisticnames/CfgMagazines.hpp | 4 ++++ addons/realisticnames/stringtable.xml | 12 ++++++++---- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/addons/realisticnames/CfgMagazines.hpp b/addons/realisticnames/CfgMagazines.hpp index 65d6e3d05e..bc84947798 100644 --- a/addons/realisticnames/CfgMagazines.hpp +++ b/addons/realisticnames/CfgMagazines.hpp @@ -396,6 +396,10 @@ class CfgMagazines { displayName = CSTRING(HandGrenade_Name); displayNameShort = "M67"; }; + class MiniGrenade: CA_Magazine { + displayName = CSTRING(MiniGrenade_Name); + displayNameShort = "V40"; + }; class SmokeShell: HandGrenade { displayName = CSTRING(SmokeShell_Name); }; diff --git a/addons/realisticnames/stringtable.xml b/addons/realisticnames/stringtable.xml index b55d8f2d86..a8a2c2b16b 100644 --- a/addons/realisticnames/stringtable.xml +++ b/addons/realisticnames/stringtable.xml @@ -395,7 +395,7 @@ HEMTT Контейнер HEMTT Contêiner HEMTT (konténer) - HEMTT portacontainer + HEMTT portacontainer HEMTT コンテナ型 HEMTT 컨테이너 重型增程機動戰術卡車 (貨櫃) @@ -1242,7 +1242,7 @@ M112 Sprengladung Bloque de demolición M112 Ładunek burzący M112 - Výbušná nálož M112 + Výbušná nálož M112 M112 Block de Démolition M112 подрывной заряд M112 Carga de Demolição @@ -1258,7 +1258,7 @@ M67 Splittergranate Granada de fragmentación M67 Granat obronny M67 - Granát M67 + Granát M67 M67 Grenade à fragmentation M67 ручная осколочная граната M67 Granada de fragmentação @@ -1269,6 +1269,10 @@ M67破片手榴彈 M67破片手榴弹 + + V40 Mini-Grenade + V40 Minigranate + M83 Smoke Grenade (White) M83 Rauchgranate (Weiß) @@ -1386,7 +1390,7 @@ M15 Panzerabwehrmine Mina antitanque M15 Mina przeciwpancerna M15 - M15 Protitanková mina + M15 Protitanková mina M15 Mine antichar M15 противотанковая мина M15 Mina anticarro From 7aa59ecbc48b6dc3d74eda22a7ca33db22942617 Mon Sep 17 00:00:00 2001 From: Josuan Albin Date: Tue, 2 Oct 2018 15:16:44 +0200 Subject: [PATCH 235/235] Fix duplicate japanese strings (#6611) --- addons/realisticnames/stringtable.xml | 2 -- 1 file changed, 2 deletions(-) diff --git a/addons/realisticnames/stringtable.xml b/addons/realisticnames/stringtable.xml index a8a2c2b16b..6cd706d2e5 100644 --- a/addons/realisticnames/stringtable.xml +++ b/addons/realisticnames/stringtable.xml @@ -3213,7 +3213,6 @@ LSV Mk. II (M134) LSV Mk. II (M134) - LSV Mk. II (M134) 輕型突擊車2式 (M134迷你機炮) 轻型突击车2式 (M134迷你机炮) LSV Mk. II (M134) @@ -3228,7 +3227,6 @@ LSV Mk. II LSV Mk. II - LSV Mk. II 輕型突擊車2式 轻型突击车2式 LSV Mk. II

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≫#Z%ToUbUvXST3OAigm?y2MwqzYbH9h? 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