From 36b7ac0623ef86c2eed6796734882fc33509bc1c Mon Sep 17 00:00:00 2001 From: John Lillis Date: Wed, 15 Nov 2017 12:16:15 -0500 Subject: [PATCH 001/111] 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/111] 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/111] 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/111] 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/111] 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/111] 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/111] 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 7b50d4a7a6fd34209a151065e91d1689aeb24b9c Mon Sep 17 00:00:00 2001 From: BaerMitUmlaut Date: Tue, 6 Feb 2018 20:38:23 +0100 Subject: [PATCH 008/111] 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 009/111] 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 010/111] 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 011/111] [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 012/111] 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 013/111] [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 014/111] 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 015/111] 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 016/111] 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 017/111] 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 018/111] 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 019/111] 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 020/111] 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 021/111] 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 022/111] 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 023/111] 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 024/111] 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 025/111] 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 026/111] 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 027/111] 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 028/111] 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 029/111] 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 030/111] 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 031/111] 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 032/111] 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 033/111] 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 034/111] 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 035/111] 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 036/111] 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 037/111] 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 038/111] 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 039/111] 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 040/111] 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 041/111] 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 042/111] 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 043/111] 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 044/111] 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 045/111] 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 046/111] 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 047/111] 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 048/111] 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 049/111] 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 050/111] 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 051/111] 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 052/111] 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 053/111] 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 054/111] 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 055/111] 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 056/111] 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 fc6f4418d36b19563bf5a50c6dbd475385a42a8f Mon Sep 17 00:00:00 2001 From: xnooztvFR Date: Mon, 2 Apr 2018 07:34:20 +0200 Subject: [PATCH 057/111] 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 058/111] 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 059/111] 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 060/111] 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 061/111] 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 062/111] 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 063/111] 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 064/111] 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 065/111] 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 066/111] 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 067/111] 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 068/111] 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 069/111] 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 070/111] 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 071/111] 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 072/111] 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 073/111] 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 074/111] 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 075/111] 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 076/111] 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 077/111] 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 078/111] 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 079/111] 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 080/111] 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 081/111] 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 082/111] 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 083/111] 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 084/111] 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 085/111] 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 zcmbrmdsq|a);9h;GYKIiAqPMb(2~gkL`CGJqDf}JT8&nvY6NXKv}!-C)#9No>LeM! z?YnKa6{&|>QP|pA>!F^pYJdRlT6bIPw#B-u1zKqhpmIpUagzBxwEOG(e*1l|>-Wby z*TuyI$S|{>wbrxNecvm5Zq}@f#WQ9t$>0G1)~;K3>$lfA8S_S7bLbd(JuBn+=SE&b z^fmH&(R0r&pwKykzBYaaz_MNd{u%_q@mL7XOoX6%5(LJik-z@`J+=Yt@n!H#*F$r; zPA3G%l3qzVK>_u@-uJ8FkJIlBfY$+TSFb&&`yYPWOaiwX-OvBAZUJH*s2krqo& zoC$AJ+o8K>5nO#>Unu@iiD7a$b`FV;h8gP9t|sI#@F!+#W!k2I6l!JPT|0ZR7kC0XlNphsbgr-SUN}@ z;^f5}1czZz!Gp+_M76MdvNL1?E3&RshZ+F7-^0tx)eknZs7*p1S8wI&@tu}F$ZAOzsR7liKY0y2dp)(0~N-%~&Z~N-4>mJ>O zHhne(da)F*o^f6$qJHG(B-nVOgc{f(7V)p-mh0oe$z>H`f;3P2isZrfq_J_5d!MSlh32sfWK@5Ejg=P=7NVCVo6E!gsaU}k{ z=Eer`VH$_{jve1Tc*$?9M{duvX=?-N<~fH15#o1vA8L~n_!lSCqnu)TJ*>ESKpAHU z4SEu|P`zgS>@SxclD;(2AVeWS&xCgp5|{`4pyl3IMAFXg-yYMnEH)MB;z+J!!`@is1AeniGq#>B85ZpL|(K@5+~ zb1WTJ0rZ&fROg9)xJ%Sz)LEg%nSpZ4SQEJ4oGaqQkT=|W^T#*K)wvNXC4w`#(CftE zaP!zqTApYG9`Sg9oo9moJly;!-O|A@UiTU-Hm5{S6HqAO^GBRl(C1Ft8}dn6h^Hby zY;Qz_I7R5ltY&z#M?VVAv~(n}SdtMR7UTTpa)lb+Z(dn}1B~rjd!Y%4&Ke$}VA)bo z@YFr`h|XT3BY3+&D1=Yg+sDqmcp+``t%pjVp3m=P71TQO!Hc6G&5X|;8b?DX!NLk{ zF3yH#H}A{SN4H4Anyk2hef&6OvRc|}cw~RUYDF%*x^taA3!|mD@3c@j+*_*}ZqAJe zB>1tD$aw>H(ajdS%J7IVWLR+^@O8fW_R1{Y%rBQUD&Kf>(v8o^sMtzqKh`_1U=Rf-z!TKyuer3JJ$V7YoX zmme5s;N@yL`XwiXQ$I&u8*Tt`2I!Qtk~mhx_Y5w$1462Xt+Rx-4wuX8-c%A>fW_Lz zh=Sw(aBh|yIkm7P(C#P;PA|jU8I8(i%YJx<>)#!2=1&66{ox-$hyibakYUnp+}72o z%*x6tboXFtz>{eWH4wvas7^Fu-2}T4w%t4+)6um8rgh-Sde#1?*P+&s1aM1}p6gp5 z`PMNVtnC*sPe{N37tk5b2{>-^t#RW3#SJZjWzS9zO}vqgVO4pRuzb(;P{FYzfC0gY zCT$G9b|R#=^Me_+#s%8|hoNv@*UY;_KA( zs*n>48-UO|W1T%oJPmBY&=UL7dQ`u$UG-h8j?2I$%`|B;e3AChdO5%2(HTO3jDK7 z^3U6n7OqigwJx#v0$CXH<=qY_6rOGt$#AjAZp0);2XqC7Z82rJBE3}vLXT(rIy2Qg z3d}sQ@ThXrrnlY*c%cjk3fFPmjdTdDBD)-uZOPH-I-UbH50It1#%tVKQe5SQE&+ohU#Sf>R=)ym0R1RckTZTMqH465mhZd|JP*fa%}CjW*s5AbjiXEqk0vSp)|gB4ZtuV*LNqh6@;oe&OFEEa#6k~ zC#n?V{<>X9G%8=*yxBb5i)EGT543!`u~BKX3Uj5D#`G-55rH%e%MAt(!ajsn9Anli z1#ud7x`gTO&fx~Z*|qog>85^;;*>`V@?ak+!5^Y*g2Q?D_gvSqnW2e^P2N7vS=2_2pWE@ zCMPfdHujaIBeMOME+r24#un~>>wwM%jS@jX94UHy=9gum-5iJ9POnc(GN8tU0l|6G zPb?&CHI!9^QPnGk<7_cBJp+VvP|V7l$v0NUA63r$`s;Uwdq=gFPdvarN-vQ~aNt2B$0*$YXl)KATHoI@$v$fi}AG=97+EGPZBS0RQi0r@6zmU0qgV-Fz@!ZM;tdh6C6KoWna+HGvq9<;sw#p`vY;dE*$}ehAf;v zka6{H8Z8P@ulxD)HjbMa4_J0dK$zQ=2Wx9-Ggc+}p_`^x3&FT?dp%yxLvo%NI>osZ zTZP3HmQ?H@1|9H^NHQdkoT5rx5a@U*V#)tmKWg+NjiG3gVKU*I65K7|eEA#~KZl|; z&QA$09i_Pu159kY%B!B3v-*x~6+Xj+Kct(EbO$}Om>;5?{!gBpA4%6N@)>qM5v@9CEg zmYwMi(bP<~W&&^5B5eN8I$FAdR{^bI0XWbjf6I8~;5Ch5`kP4}Z>{`Lms5^=-Gx|O zQJgbXEenuO-Nc0(HxE6~*iD6nyez(_jPQESGjeB2x@TdOfVi^2!%9^BO(+^ovU z2~Bz0PNZBu{p~bb2%DP5jT>kG!tW0fK6NjOyK>+ljfYyT$B(m}>wX%wdiSXNsIrWh z9w2R9^q3$|hfH*?L2Hh&QZPuo#9cW%smJ1Td@k^HCq z%Rc?3AoN#_e`^{AkXu6!2yHz)YkN|i=;iU%v&Y$DP7^lgQ)#yN#(Z5MbH@(xL4J3~ z{j-w61C{n!4u|+-Ua$9yUF`k3=b{^xT7z*Ss*tio`aq`3rExZh)?ApZmfXqh;t@-h zSgkUC!}L!+NivDcc(Zx*OSGU;YTma3?FoJP(jU(F>3N5wy;!JM3~ju!=Q zzIKBbrg8p-_x9VIS6BvS12!Vq-+TO>t6R^iu`iP{}a9(o6K^hCDAv1AsZwO?;k(*LFM|1Bmm4M0)4?nCnjI;W8UMt%=_ zdt#3w@fVF_Qkq^r$&i8%0;~W8<)b2u5{po&-XdQqG$SxC^ydRz5q8ft9SoQAH}+EaN%GMx(ePkak};R||r z9H%3!ix)3`>;?t*s}CItv)FNW`B($0JF0-ktuMreE03`OyCI*pTrK7={R zLNd0N`EiF8mkhZ7DGU8c7CQCwHg!Zq#9k9i+UDtI1A7>sKh0@&iuh0a3f}#7)w{pa zVJUvni{cDZ(`j+WnT1mgGhwHDb(wW#MGBqI_jp|~Y<&zng(VZ6A^55i<2^jpCeI-# z7w&P-I}*1=6WD%4Ca<3^GTDM2=f*uteBrE+64cvcjigRzaPWFsaZ_t)dMr!wI^Apc ztuXI9w6%d?-=4^l!U4DPq;J`ow63i@V(AOt5yqL%N`fo3H8Xq!sN;LuPnU^rmWge| z7RmU+P!1LnY-5FE#5af93nY^ZO4Isl4ha{F!|?L%gLMbmY(fVu%Wzc8Yv@VAIXUmY&-JUy5b%>HS^pQU(=k%D z5r)r%48uMxkla0aVOoEUrfz+9_G1k@SzG%i0vtBGFtyBtc?u#ZBfnAk;K99n-eDcR zfhIJzWKW#asH2nRC6jlLu86ba6g4(LHY$;KVO-~`(#f-drq+q>1Uh+PRFKx6_E1sJ z&k{$9uV+q}xhQq?qa!kkdiiCKdJ;>V*^m zGBA((Hf{`~z9zWFgxFX$Ry)6pS2=HHylXs5I;B|m&^O)U*#K2)xC&J;lWP%BN%OHj zcNU&z25SjtBmC~WyLTrUgKx(9$-+#)4Fxim-b!Iffjg%(O<9_>`4%t5Ci2o-X9MR} zn3d%nj14%B$ZYd^Y)j{80wn6!(1ts5{ED6neJiLZZ)%)xh1EMK!fE4s{H?ptT5@4{ z8icssz!LVvN!ya0UHqqke|FDn*|bi>u7iuM)|_xxZ>;gc3E5cC#rL3 z^n}@nf?RD+oP9%^8a;n3ou)I`)xrRY+8W$X_7JGz5#Q|2*03ZokS1>J?*>y(fBWi` zcQ-y%zHEuYahL_<%yTrV!2RlUKe;`XbNCkY5XRC`v4&E$oF&6y=B>%--SiEeBe3)q zV>PO!EXnWm&i%A)&bw`NSTbEt1jrsz6GCwhQE&UFM3xlyE16I?qvW_RmjzFl5RTT> z&-+Im%O{VT%Z+g&MchrwQ#HFz|xWuRBaXjRhf7Y+n$6&VIo@tFmE8H8+F>K^FAWW$to;F;A2Cqod%dv zMNOONg9a}fi3Hbe;;jL>| zAFQTl1%I@JWj$^NkKLGD@qeIRA`+?53I?YwJDTRH;1P?LEJ4r8cl#*(6vC}&ArNF0 zwzl>^WOqVA-(Zrr#h?%54Gec)Y)i!Z20))O6QNk`%|uio*xyulIvQ5aPd z6v270u?(`lf|{r?xq1f`B}s{XjmadDB-uP3IX)TSWA!wGqf&{UPm97cw;=2XGnsmT z{JEqMbyx<+Xy{&|?wYU+*BR0#)pDMGqV8;6_Y7Jhw{6VQ2CmJ$qjyeL6aK9}OUh2(^dv&yngd&kpqE0f*R!h*%A~lqvQ0YQnL$P*~ z@^hWtlv5HLASDv@>HvATUx${gw@*4$wafcFO==9+`F;MuN^W=;ON&&nSeV2j+b{)#{NoLC3Go-_qx6E{C{t z_5LNV_l&CT=Me~Kj6j$mj3j%)w6skHD845^g?76_AKM{cpXB%Y#UdEP^*a=q=O~xP z;E`|g=;>-@G&PN=nZ9p4Yk;048K!j>=L&>LHR+x#k^J3_&FJyZ5;cW)bajP10#~DI zx{DyMUpJRm2vLOvq`2bM;R-0v*g6iOkaBA4^9r@XPj>5S=!ap&o7!W*MUB&Om?+~R z&)3kU5>G(=rxgSL;b`uk8Gp0BzFxsxe5N#2h>Ts}Cp+Q{II1<2W2o6A3YhJF(jLc= z-*}(bvo@4@`J6Yh3`4lxp{0@}!#lar)M5C;U3#9ReYh=aJ`uTLxEYZrs2Ep9GB^Cv z=4R=WzOZ6*xGa$hQlnJ3c1`NeuCSYvwK>(&|={)Dcr zM^TIXy)26HD1cE08#a3agtIuzwOJ+sHa^#LZ0GKwG*ReG3=>>~Whb!l|=_vnDL#>`je-60TuWh=EB#63?)7 z6Y9j#hLS`KoDE*w=iXl?JRqCnL4WU*@ryTtL^hG{_P1pz(7vXrxw=F)n%OG%W{hzm zH!O#Eu{?YPEI^3*yyWh6iIx!xk|{@I;7=}5SkWsgTQ z7gfdH@8zJhaC{WF0WVq+%>aEq6Qr|`$F&?0{=Fq*jtutQyfY2d^O3pb!}%{jH_`$JvkId%47sXcDUk3bmMh| zTdB{mq=FKTMn<88p$vHHfALIGRO#v5E`*UsM8q3h6Ae3ap_&(qT)npxb$DJyF=G{f zt0-jJeL^VZRnLul*xF8wc%t0VlXo|%mrwoAKjR0zd z)$kDT`~CNU0M{4vvKl_q8b$TN#>V=3_3M7FSDb=*QX>mtK-G_kDg=8-3CWEUCKDLw zm2Ya4GglSBC8vez_t7??4q|ICuREq2nhRfvX3X;XuLlX!PPr^EZta?6(@xHZ64)1L zqkJ4)Pqk;ojB!y=B8iJbH8@m{m|;`1%@JszQ;g_Hs~<$KNtUFsdCLcLUCkH(gyS4w91Fc%1?E)Z8J zMpHKp(G}6fCW$h{HCe-QFxqhu*0hc!$&k>X6~qqmb_KEEpJP z#GfKThK~3xDDgh`FWn($q9EW!F(%n(z-8i$9`_ZEaVM=e?sSPS;4x)be3>k~gpuf# zN*5(&A7st{C48M7)fU+Z;8KrR2pzw&oOxT?z7U?FBE`mx{{=i?1Px>tnx)iNtsLL4xvE4PoqpT1g?b`iJdy91pR$t%V?u$oHu>$>x z0=g{E^HA1ODseCfLUpvsYF2OYleLMgQ6?!4>CPR$&H8^(7B6sFrM#}b!mx9ZTQ#f+ z>eKe_RjL}Pji_*^janO-BQLq-y%|;iE~{YP{mn$kO8*MLJ_Asda36e#5|@ff5Ap^m zsh0}%H|y#qNjU!|KF+Kd;RQ3`Vx6hCO!p(=Ue@ zm{KMJrk2=u{Q(im4E6AHn6<;YlZd&wdDCJE!>J9Z0q}E}a*FG3%0n0x!su9shTMUW zZ>0vf)U*6#^8{ovH4_rl-`>(KY2UN)Se|6mD6vQhQMxL=g(ueXy#bB=>%K~j;R|Az z0lhxLa0|O1!y3B|Nd;;ObxN`JTT?&(H}m}2$wBj;(Ko{xKT5a-(ZxnWdN?7d%f|tp7iqhaq1<0a`af#zV|i^RH~IM8RhB=cTH6>o2;0yx4mrf{Y!q`D@hNP zTGq*HpZ#<7x;4P27fSFYD%amsu7T06&vFw*>a(a74_q7lDA(wUf-aqU8B5k?m-Bvv z9Rz1X;GGb(#6Wx37+BkgYM&55yNpUb}m=1V2K2-P<9bK@FYZ!ZMg6muM2u zKF;)+!;uxl>zw$L;`QBcj?T=C*eeSwzUU&@i=pjo8x{IX_=e~flzFn3Ebh?L8KWCE z0bHFi0!$fngj!o;coI|poKEF3K*sfC$eM;}(qpH7t^j_4kMDE8dL;H9ZlL3dD^msP z{eJQr)Hx%%4N*z7Nu7&U(f-^%wEF*nz&(`wWDwdPDub{4+@3j~>_O_RMrHo@-$!x-d|ee5qE^(eFF{@o-JY9!V(Hg|KGN&?9d1yj zi*C4vNE#|}B8l+lI*n~;g^m9zky-5-CVI$Ly|Xsixq;_laKuoKML3t-l|s;Ia85~F zkUfk&0OcFZ=QR352}Hz zX(~wh6b;*5xVC1R0HKr%{A8!j&pkT=DZRT+~<7MLkB~un>coq@zQ7>tnGi)Lc zQWhH2Dg^o(@UgY&jY@U6Gd-vu0j~x4Y~(dq6?4csJv)Ze|KuMr6rA=BIcAZoWshunO8-JQO+QSS>+in3+)CPgI@)D z3EDvz?HG|^n@U4fz)|QS>Qa#OBi6Z*bUO8{hlN2yPx_Zn?0Xr(^)*Rp$&NQzfT^}+ zXj!|)*(-7PpT4a~*sU0m0{FiF{<|6>HYx+0kwe37c?S59mPdh$s5VP1l=hcpYivG= zBr#1E?8=BUdhb_=Kv1C9c7EE)(tljN+o;U8S_^yIeMg&?NmglCRv2>nbkkF}BlCw3 zC9{#BM~=|vF85&9hKW;v#>oglM@RN!A9L(n)R(cSH4(Pj?UAU4+1S;eM?`_i0?XR9 zbA9funz#+4QKL+-C8%u=H!CsN=p%Z#L5=Ni$5LwPk+z;*;N3K)p0yH&nb;j9cmzMn zIk6Tuue(-#O;Q1c9UTsD`^}z6$3NyDbBMNVafn|>iL(lBsnXP>7l&oIs7Q)dP_twS z%%8^^h9juY#~JX5O#D$gf|zBo&h#JC)jtaBQfr`sg?M1ljd&yk;*U^CDYV^)`YtvY z$z##-hyGfz2+^q9laN!W*e{ik`IAiG3dv3TfL%ij*1b%y99GHR+{MPS4g^rfbz_O$ zK<_8B9)$Vj9O=v?Y#G~#;T3V+QY6iy68Y`DuxteS)RNPY;!#^e&yMx82(F;`-R_%}XXE!| z(jqCS8W?yobno4SAC4r{_9J3#uS^9{5!JrtXkUS-TH~}6p9O*z_qZJm)3T&KEoU5` zmZmX!uWOz4gwe|=T%M5SN6+2+^Ul$a9xBtCEa9#U6_|mvAKzAhkS<75$rl!(NV2!YA@k@6N(T+ud98ts7M_1 z3~Y>7!5MfWJ(=G%@Thw};_vCCsFLfxCn}1yVo@%>e9ND>zEJ$ZoAST#u@Mo;iRXh< zE*6A7s74yfv6&B*`Id+X-|)cY{K36Q0m7Mq9ey7v3=Sn$$*C*6 zcHvJ84_-9W(_!J3>};etCYAFA0@qcvCWDpbs0lnIar49@Y>jUT+Vi8R5R}N}E&<{VDeO{N&}zhXUXtwUCXBOU z<FWXrVoyaL-5Tu*(a>-6+6y(+cVgGl z@kj>d^K~QkK)34cV-=!cB)LT*=~v(Sph`&NK@5@z_xAs=%O8z>{VZ{4jYr7Sjsedv zU6YkZWZsnr8!H4!2A&$SHfe+mJ10X5wnk-SUS1y8k7d>7-$)nNDZ`kr)Dg(VX=#wJ zeaCn6kys!&Z$V!EI66pGT!KxarF{0u$)nR&?YtXSziY80g`1H~u)8WVNQB>_q&af@ z>imr;Nil++SbBhPl7xXncuUWf;dNcV!UMOC$Si)pkn^ds0AF#&ek@5Szdn)g_1AUp zcMQfM5|b!8CwFlG+nm|ALOS*Xl;1242a@PLe?&JYyx4>%u^v9#k#t}~d?cd97=T%t zn$nQQ%Z>6I65Jx83P}PKnIOo=smj*1?@P_?!c{rl-GJ>pmD0C-SI=Q#c6OpOncwUF zxGXGv_xlmdrqI@2cKN4i%kZ7U&24I=w`dA40cBWF&tIx(Kt(ai_YuEg9Ep$8FNN)!?bEN zB|vf(zKyh4fcUp!-sOy0qy7YX)Y?&o4x+w@^o@Tvr8yqx;+~=$ZLz0zG{; z;%l)sf4##|5M3X_f2KYJmnoTggbwHI*jq7=783p&WyH|z@LIy~4KestnsOHNRbXq* z=ZBU?SWEdoyf8+Ogw%~{9twqkZ+6MPRYIX7-8wKJUc`HfB+f5NE>;@z^Rv{y#lmmV zFoLIQjRHLy6riCRTLi|#f(rTqj`BjpP-<*xfB-Ilbq)v*j0nm`g!0yGi{+_% z&aZU|NFPZcc7gM3eoH!~5V!F!p>~mD@dpXH!sB$pL=JbIg}JcBrUf-xR9I;InN1q| zWeimE4|Sc`G^#NCFamh@C^a=(?qJr#{jtuga&OR>;=dsQBuDz(@roH=VCVOUQ=+Lq z3)$7vLF44tS`Z*%Iiv+~MjWJ=aO#>f9SCwhF93;&obLzRct>ljMf#nhf`WoB_nZgj zaB5pfpf`Ol+K;5ynj4jRjgy7!T3B$H{NOHDUQ{%RhEC|z%K!Xl9@`lL+RH)}^;?(7 zDFHi6V|a(2#pis3dyrB{WP=G-g3qxD;I$Xe>ru-k0fmLAjLe@2T3W1f3@;dS_a$4* zTk`8hl*2l+bUdW*eS6^%8Iq`P@&;CwvR{-MqKg0iNxV(clD7tez?y>>ZIS}(8lE@M z-i$tql@7aYrf9#7r9G982-W!JbBW(1WCCy_8Iz!{F#0*DZDr+ zSNtDn1+bo>N8Ms&GV_&xYcsnQXO~U^Yc5#F(u z;FMoC@HZXdc4x=gA!5FqFsNsE?YEQf2UGjhT^ds3UasHh6`Km8~xB(1Qet>-OJUib@xe2;ncjN-2B4 z8DX=j(;q-MNJh8(2z!Z*H7~9~TDJ(z1!E1Zr zFNE#lxKMo9Q-kj%oDFoCAHMM;91@SmLXNNS$I)@HpdjC(zy)zz?~KW$a7;D<*s*rm zq6y0t0F5i;vmR8vy>?JXXH-ax20W1d#%X7I=x{e0!FciY>HRfr>cYZ&%kOENHcQ#Z zNOsvZ>az0l5vjV*!uD8a1-&+`^M1%9s;Z{4!7S>N+1~di36ZpRM3IfudX`QWwWPmX z6jonSWb(5ufu#N#!cI$k)-WQ))D{aJVO3T6aYne)FY3*MYY&d4A>V^WLe?G7eV-@5 zF!4sDI>C4|bB-OO=L%P>SowtYpy`Ws2X%_lw-I9#7Xa^WoM3=)G#a9EiN9LGk^Oly z3JOB^yL*TWCN#{TL#`&T4e}z1=5sw|S+r4PwH6ily$CgkJ`u`-!*u& zaoRN`wM4S!d?Z$J)NK7e&Mv*To!&}AHEx#<^(cyO9}t==oJ$4lQ%ZC(`p3!N*VyIx zmVZy=E;7P335C7@p?{s&h?e@1#yHHWTvLO3{x#jWGR**Zp2yhjeQOVB1H+CEARy`{ z|E!y@bFSAoFHbU@$75u#_n^&{O%gsB7^v#)1kc_@%W4z!t1%};9kk*%4RbUFgNKHy zJngQp(kqseNJVxzF)>6I<-)_L1{-`;%MM}TBhu+;n2`-cknwd^*hKej@@#3Oy01$T zT}{+X{+RGrpC*bnz`ic<9W7U6P%bn9>3hsPcX!1TlI90n>gvYzxXV5pI{A7uWfatm zACGmqS0SZMIJ_>j5=vNXT3L~Rdmi&-)h{`Pgf}DTcy9;uZ1sxHxXS30Coz)&4Hm); z3Hu)$;&)(D&toSNyb=B@CngyH#(Z~o?I9LIq`)X_3DXgHk~2sR=_`0o*(URTrz5eb zwKb82CIf151o&fcFFD~os~I~Yt3@HKpB=~YY-W#~xdzJ#)qR_!S+eUmB9(*DKS^i# z(9;gS&Ycy<&SH}s(oc^c&*L+9X}yi#l7>d{^4rE4#58UbbRo#peQ(N*jSsZ+O!)OX z?_l}SuIkrn@J?Gyhp46cwaz?Yo7$o6?I^biuU9~4I#SL3n9F}0=a9^dhiZj0NZ}H~ zq8WgfBQVrK=X(ki={~|Hw2?5k*P?joPOp^ z2#JP~Iuy6d6Ar`~M7$1<`8kD-2y^jZ3rUXqH}A4i6slZY0b=UJcsfbd=tGl?Xfm#b zUuGTYbUHc!X-sYpqY&+B{Naa638v1dMX64W*Fq?x1vH=7JQ;{_dFopa1TZ87L3Jt? zAB|;nxaEDOf9^w)hN;sCXBx3(+nzmIXPQ-Ng)i_&WS~e6dGGDhYYtYzPd*Xl$!C|u z+A|P4i97kZs*D69J{#49lMOs;{Ncov@p2;~D%qfECL}}`&s7u7;4r5C@R*K{No+7$ z$4Lf3Zia9wjUD2f6P!RTW`kdV83{Hlqc-j1kCP2SxqRVNgV-5E3*v2X_Bgas8MA9e zpM3H_TY=Lv9^lO?45Oh_Xh+Pe`1PrVP<3=oP&ulT&)Ey!|)R{disA6)@%d7wiwv@BeMSGhWR% zfeRNV7+k;q1i7k~b_Cb`{fwhGZkHc_e!2KdAjr=aobxe3=f0}sMhdDXJqGUe-MiPu zEeCI$j<*Iu?y(u81uKzG2%w{o1c82r2Jn|^yr2?|aAjHncBQwiY*Xd_BeEhD^`2z- zthrbBYKi|a;_eWepT+()3hYDo2jOp5048*2=t{o=QH9I}c2!C2Y=GdChf4S_DDi@mM7$gOSA55uHuZmb>u=T39Y6Um zo1u&SUN51`{_FIwNHgPq1-=(50WE0Q>$5=~2E-r6-w=)rSpm>m=DinE;RFfW~N=CxR}K}f6JV)@&tDv$1p?SA~6mx7BdXHIxe zqZGcNS7(1wzgH{(p_lts-!G36?jDg2RvkZi`uqODZ`d5^gcff7U(kr(l>gzLrufN$ z18{=gVQ0P_eg$6?5{l-x(e6}mdWiFUygJ=FUqMxaQB3y0sj|s;eedZ;x=O~KXZhyz z`(1J7UhdtEB{HkU!kxHKGWOg&1ydFLvaIPO1}>a!KMO0D&WulpH%w8Kyi?W6i@+|N zbzxPNkVh2A8>Y0JB@7gZzIjmh!Cf7pztm*uxc2bu`Um^w_t$Js8e7E(1NRhE$mHE0 za-8==5R!;y7B>ksHs-L#kQq;l52^lB8v4fqeuG3PHPf*~8}J=~X?n88#eEJSNTzOI zoyKt!mLoqbI_q(KumPDlx9epYVC>mHoXX0LGnb>Pszg?lZE3oA(*54SE}eNh8oO#b z9Re<%UY~BpbY@MB>9l;+Wq9#|uzVEL2TM)_xN$V8P`-uwdJ#OsU{poE&PcV6JXciq z&4X?GF14u>()LSd{@~Z-uUXOw9GChLCX}R&b-K`CGKT%< z0y+M5`k9{$9Dr&xsCZ`~xE)KF$ZsoV!GcRqkVj70^Ghn4v^*k1`6b(Pidn)fC`Y2A zMkRyVx^GWcRqAeX-1$8j!9`7e?&7I=dGpJ8=8;*l@6o<=@zb85+2uO(jr5uEm&Q9n zwkI7QPa^a-pbn!+r3Q-Y(7^YZ0`Z?K;X`GSmSzC2ugqyatlM&TWqcZ%#B04)rk))U z9x{Swk1fH4_X7UJU$gL28UqD^P@ndn&qDs|6p8JI4#3m^yyMG+jt}Gw2Fq!}VW&Rr z7GUHrsa8`I6)f12?LWnQc+OF-)6#wr(Q2_gJeiYAn#;MX$V<@jST3I0P+nJ|Mo)r( ztkcNTPXF~;9a{s@tQs~UP;=zx2}ZI*Z7`7PIFe#8rUC-h%y^0kIni>ir);sg0{I({ zNVsIN{8ak^knBYY(!0T#W2;Jq+yjgPb9o$>hQ?bY`v3j}2vXGeYZ#QGF|@b0uq*j7 zXhpuSS%wu{mE&~Wf^@_NDM}0=k1&v6?6GsFDs{~$MS|8mOUucedE|m}gj~H8yeiv* z7UZ?^_Y>o0A4?*FeIJbj7f)TeIqy9+^14PPYE5c*=i1TOVf9*#!w_H9G2TQD1k_v6 zL&c&!=`51kf}m)oC=9@$bLYykZXVE$43|+r+GOdf*ClNjePG@F=HSe6$E$X5|3pvq zOxYri3;zgUC}xTc)W1L4CYDU_*L<&NG%Sb?(bd^O;js91jJNY>SDf~uAH{!b{^<^s z|4@2cdaG249>;R+)T&Fk-ZMLP~$|GtJtNYeH;_5O3$PaoRLrw=!KKb+FM?4{xC41HDu`2F}JjW!3!7B0HDw{1@n(LAv9)(lv1xeEnD_{Z@#Pz)+MXTi&q4s zKb<>M7KSR+$XXsD)T0Oc&i;?er-z1qxa+By(p+m8tkDG^_E4a+PF#uPIKH*G0q#xx18>bkE4SCKJqaMC`2r^r&pD; zZ*^85ODYatqL^{*)Qr@HrumeNg)2r%U~=BrnVztLJkAKkLM!Fq{s$2XjlqIHVEA7Z*|%aqv^W$DkS^zw*HK? z72H?S0LLx4qy~%sn<;u(atxdn8fOE4Uj$^=OyP|~Ou4d=4 z69M&?PP^7f*6C~PYA1vzm4;L{rKZ3?QL0*S*c!q2eke)H+sZv$B#4lOgu#(&G4sEft&t@o0X-U<_Qm5-4Tcj7 z^I#E6utjiHRA=01YBOGC89se`>S!=cfUB6IJjjk+!^9EnUQth z9fp}qXrz`{h8sRR3`=xB;sNzK2RZJ-x%Z)-CI#=jdhtZLE~EUp8ydF3iUFAS<*90p zT(BW*?HW`LJF?UI&sbI1&98-qM;a5^gaxk#k%PAVAMwD55*iU$;7e~#BRk0b2Zuht z1EnG6YX2ZdI{q$f;Z|xMY!lc|^*YM;{K5mxR=yZi*)2bu249;Nl(R_069!88)#p|n z{Qt;$^SCC??SK54nFO-1WWma!Z6*mKAl0;D1p`SyEpaK<8bL*%Xz#V!#g;BCfeeXD z)%KR6b`zDlw3-kCvM5SO0L7x!T5Y081ymHoTHKH=$@~tz_x1aHKKILCxV#XYGtYC* zdpmV+chpIADvUtzjx*r2WY$++e6#o2nhu}^xTPDr(M?N04|cD(w4-zUEcJkM{G`-3^qc&f9w=Y8|6LkTvQ(fMW&h8UIOtY9_ypYfP{rLWj8x=YUogj)V37(p zRX7r&%B5jYB3TrFtNcoNYLGJ5ucT+jCh!t~wY}Py{pTk_Q9Ai1D@2)#nQtoDrJ-0$ zpf88VOgOdUi0E}~AtHXMR)5V<7q3+>*dlX)CcpjMR&iz;WNF-1t&x3wwcuQPHH5D8 z``0Ed*eqL~_TlXo_*q!5>7|_5Eiw&Mp(swPz-*Qpi+EHOArs3DY@_i&X0-`1K09=~ zSJF@jX+eF3SIlq)w-pG_uT-(<6iw6u~tE%c^sST((G9m_S0Q-|I*rw zD7t&X%2``t#0_)Ev6jqZkAf(Q|F6W(A#sC}=++IIFP#ja7|2J@>n=>ul%M`igeZo3 zTu7Uy8MM?GbN~5Ti8QJ3mEDokXs@GXqmgc}QQk+$Accq2Q2APS&nH<5fqgR)T-(@9 zbsb~$U`LDJSaGo>5a&ikyE>o^{&lRUaY(q=H~MP2q_K@ry!xYhKE}p*D8}yhUzbR> zOEF26D+{$1cAp>S8%C2?aJ-1~E5+I&#GuWntO|g{zZ?7Rl_^ilFZC(Z;`rGIcyRWx z&s7}RDOG#u`zvn;3PBoVtct`+UjTPs2CA+K0lT*8f_y`un+%W;F$# z6o96h_VxyXy=iHS>f_qo6WT8-VZ=r(ake4m!SwjX_Ue3m5G)=M8#c=_a=Pu+_9X-k z-~N<@nQ|qxHI_&?vZn3FA|p1!JBy=rmy#4xt=rq4S8tTAqA%XZwc&7Z_h)?buv}g8 z$EPWr@mvv&rZ&>_h?+TTv1i#UK@{Q}66n((2%3m>ejr5=cpDm@jPUi%DSm$M_r{Rc z&3S1tjG4~CC(uT&ju}N8u}7xBv0y!wdl4QVVKsH{JoSm#R!Fk)(%5*lN#>3IhzV)7 z9m4<{z|8#~dbZqKBq?k*;e3Rt5YI;RclV1#Ht%Bycl!?T85rl6O7){2m`;C%+^7j@ zFQ9;1RVBY;&=PzP#9d=qI@wYp+)C0)yfFrDBh6_iiwM zZ3Z9Rgxyo+O7E}@2}{${-R^dWR33w#@7ZxMYvC86we8i}xQAjX|B>Gslaf(}T1|ED zc0BbD3tP~_Ga84}8cpx6>PVg>6rcn+%+hz?hD!|j)o<|o8lYW(u%d=5;3@7Mp9Qmc z8b>6mdjjv<#u$w5jd6$z+`qm-6i^~`^y zWLIeTiq~_d%6)_Jc{nBtS1A7>Tb~B^)dfrLqf*^tMaeFB;tq|btBR5;f%pC1IhQQc z`-XZt28vVEE_i>hl(M7Xf!~F@u9!1P#e#tdYq0;<>nj9_sF!~9?$|%D{eBY&t(~r0 zhKSwi3W`pveZ)&W&yWTgALQy^6z*qb^xn_L=UG`jzC(odx7zc|M7AF^nAFtlP+SgDqN=lbey zVt7i14Ts+20@G_RoE->mv8$uJE6~|3r|B7+Ait;kq>H8%>KLp`qMgsCGAbS?!=Q=~ zT#DNHSfQr7d=f=*muz~IH4Fm;RBg#OleG)+H(5g#P9P2^uCgJ}OHUd5MUmS1AQ(1I zb?NsL${JIKL_Z%;bIdExR&Krlov~1=YaSgmf3zG&GiL!iKoJ@P4%U|4(fE~3|l#6D_S>Z4qMr0hf(N`+f zUzH|%!j{057JW5??m9)yR8A=7K8t zDCvIyx&I9F47b8Htw7N(RB2a`g^Iw|R19Bt{4xC`7!6D03NDqCQT`{)Bm#uSI$J_e zEYoJ{e$q2ia2&YK<)qS0RF}7{z=(imxfzdWr~~+xtv?d!p4AuFq0EhMsE4Lz)-(Z9 zq31OYIv?uzk&bptw=b2F3LBl$?m(j7)(W_{RVvx`{tV5ZPUty5xQe}7s)uW?5b@mC z+X{99jBx2f)=EchBu?Lxy$V*lq=y%#?(&6~`i>i>IK)}O+1UBkA%v(rPZeNrdy-?F zofu4nd4=Wu4KdhBClMsp&2K1Q=dT-iP*?cMatAorYsz!gYN6P+8A3Y>VyfUA!Xk{L zvwBxt*PYGwh~6ne$28xN1|)yE$kJ$lE@Q3`=_5ang_y?wZf?hS-gIoCiJN6bG+pH=(d*nzc2YC z5Rb5$M|8ulLX<@3(EXJV5v6P}Avm@RPW>x87>jkl0grv~_GsO2ZS zd|QpE;S}cxyqk#o#hK>yIgmxz=_q?b*Kat!#&BT$^w3a6`$eHxndFDOh|(;>`#U(1 z?bTz%tV{UMJv-0FEYI1P8R5bE3q_G~Zy~0#N#*Vd2C9Oi7q-}f=YW%AtCD2p95;rX z8uaXkth{9mpYA;R9=xwTaAkCKHuJ=di4~7YUHm)yT>hpamV>0!*l*8LuZVxv114Is zD{A%g=SW+kLcM~FZ>Y#FWYeY$X88a(fr`X#eHR=6Bxl}ns}BM1KC{M1t?76+cL6{< z-Wh|_Io0Jd4F@lnkTnTy#*Q`3dS`ON>4Qd579d1b2+zC`o)3r@%V7Z_PqIro^RQGB zuk5ysx6r&|Jon<+7>dH#k2?O^xKlTBLf-qaIm+t3O80^!_(z^FByj;wME&2#k8S}i zdFCo9ERe9}DbL#$uL;>dJ31vZ0VqG@6VcwTZ<( z<8_6>0YTbh5v#>i>kez%?`K@9=fO)HJqXQF*YvZXQUV)2VZ|$-qM2~jchNrHeAg(3 z=<^?lZ=8PHi?Mzw-!O-2d=*zK0YFg__){jaNfN&uIw3ZmVSb!^4k|#PObF6?;hGLp>V82& z(&b&gFKE*w%$oA#rLXM~sfG5f8I0-*@{czG$_+=;3YyEJ3Yt%fM1{>ZQ=|gj*W*#{ ztsYTG0cO()0j$!_5-5GN2u8UWx=xIAn^(HF#j)ypp)1#goCB=|N2`Jxaw zA*yj(zmzuAPuAzsTwia~Qi2!$0+q|GEAN$f zKlx4x8K3tii%W1&y?{C;iO=he5g6vs=XVm=r4#Xf-qY3;uq(*-=Nu}PlJb`XD24$z z{k`NBuYvXdb|9IP7X%_3zi;WVp;)P2SOi+qbu0lWONP zTU7d(fsGsUrpOh{mh}f>wy`0#5)-==nD6w46A`pRk8>femU(c8B%2xf%{O5Upz<%> zWQepuw^^+u`jD5BC_NhkA`0s41bx%tl@pXjI!V@rUa2jSDm=@lR9w2vEqoi;0^?{( z^s|a|<|}7IT~=Q!*JElc_(q5jggn7?oiXX0?5fuc#%F$srj>x7G(1y@*7&dG;f{VnkFIT24=l!-Q&}t>VE|{>C(wfV_3C$+bcHB z?Lcc}LmPzg7LD@Mh&|29iu5JQNw}wuMng=Hb`Br1+8A#S?(CR^68%Rr%s-bfl*Oml zj(Zni*fa>6ae`O6K?PBAGYYsCYyx%T)64|y4@;1txoxb+C)ppM!%)DWPnRGTV;6Q6 z+<^iF;hg<9_9)-84Q*X<@snD_iLUK+{WAToodY>zsjURSDzqd(DZrZd3i=ql6ZWG2 zTSeV&1vT5Pm?1jsQbg$LY0E9Kb{3)5x5oY`3np|ZuNLAWuy@zI0QUEK7AniQR!%fp>-P&)2KIzRgYq)u zAR8nNO1_?e8z+Lhx*Eb8qA3^F-6*%n5}$4J71;!fcn>_8TSfkoHucDOL6*M_W>8?#z` z!Cb^NWJN}re6L>%p9J7Mtucbj->1is6lgn3>s!5!2##Q%h*-{9kCebz|a zx@Q6v9VXExj!&NFJeOhx3G}$1HyGR85{x$E>UTQe#Iv>y`Y3SY2mgExHAuv^w(4W- zFgXLOHTKh@@P;;MY?~%FVYJlNS|WENZ|I0gwPlNX z_J8|gn9wkKwKhVaGPFVI{kS@;Rs#0!x_3kAVeXO9aNF@MvSAVKj6rRGA=ak~?tca&G8 ziTRtde5W^db~(%gif#G$Cc~}uMvo?R*dbKXEWe5~;%u08r~feuTn|ofynArRcumoN z-J6xhM%;D3{bf3HltOyC8KERzWbED{?*xSOc@+~o)0 zt0jXF9`OCry#cDEK{C-@T@fxpjRGYUlf`J{5yV-_=;6(8#%RlP)I8{&BPeKtafD{X zZ;`|&Q8{T4G+x!SvtdG_SH{)yU_9}@pLU`qC<=OJsaV^rRisK7INh3?!V!q$4c@V< zB@N6t>dHB~3Sn@e~-BssApyP7h=lPj~6?(=^29 zB_V-*=J;KyJw~(yayVSJXibu=Rqmh!GC)#Mg#Lpm`=63#&^dad{5|#*er{Mp<6U z(~3(!i*>W&23mlrW0?D%NZa;z!KchxOHKK>sjiIAETJ zeh+UsG~;4hM1OmAcrmf9c*)d+Ceg9cy!UQ6YrCMXCmxLHo=SC(+6JA_4C_{K{LI}` z2M24Xw@c*;mg~})gINwU7u|Qk05HQTETV9}YBmxmX>5kmdsl`}rgOMKf+A)(Z>~pW zo|GpJ-okMfwfw>w1I*Z(KPs07ZTK|H| zt3U7!YTjznvRYyJ1Y?ON6wO;d4$?6`D}QoG+R%#Sr8vu%OeEUI{4QpbAqo0tRe0E` zzx-d3_ezD-Ji`8jN}AOsP7t*cfYq7oEutF6o>%I{4UOL2>E(|> z5wKH)#Bw#Cp07D?3ZjU#dA`%uj0*w=fm3|#ot=B6DnZjCYvH`A_K8i4qN1!U4=*44 zyfQ$k5~#TA)1uLo&Z?2(92my(fCvSWM$>(^ShNUg?Nq1Fnj=RJZ0qabomNff`G0ru zV>3{@QS=>4aZ20BX=v$#h?cALQ|(r9Jj7j#vj3k_bLnIrx^+R+sOT5gHlPM zUn|@8yB6uEh#MYa8i-E`#L!23*(Onp7ANH{WdQPfcuf6Wa@9uec-(X}g!uJWA0!4T zB5v=%Tj4pG8<#{hAPk4tnh1Hc_m}<_2yBuS7pukEdM_f#_pnCOXATs*hJ*CEQZm5) zDbc;=)Gm=)TrfL@Klc=)#wgRgRt*2uvje>e++u_|x}hGBl3e3sd=H}zj1jaY@>|rnv-qKdP(67_vqJ&xDk4bm?4d1Ia4OYcbcoPph97ss(l|NFV>ioEDCK zdX>Gmlmv;P1;Fkv7Vm?w!mYv~QHQ*_ZuB(3jGcL@@k z%ygK*PLsJdjgJuiG>KEd2DN+=^Ni`pfRui4T^ygZ%#k59ZR_QOO6^rFi&q-~eP6g} zQUfbe%X*GD{bEg(#M=6!uthy!Odpq}$y^j+p?s$zhQxJ7tfd$?D}Utqx9tIvi#<+~ zdEGsCTeS4|!1dod|CJqavrk7=ZpQ|?;@g1&kS|ng)>k+3c;=u8@W+eGr+t4 z+af&ui<3@XK5G8I-CdX424|px77EU!a+synm$ zp}mU7`7V=HFtA1D%Vrb()e!LnhWG0rmq<-bi)?&))btYlk`hmnD6;2;uS~EPqAt9E7Lsvj6e}jQ&8q_L4l>IgucpiwdUGT@j`uG!rWOXypWZG8}xP`RO8$Qyv zr+rt`(TS5shF5AHIwjg>yvLNUlEJ@GOWbHqoSg0?aq5%SpicvkaCJK zcHeycT6-mYRTyATXR)JduTIe_m}?A->;r&%x-iBegCu|YE5|2NnD?O_YYkH?yRr74 zrLG*WmK|+bAjIH6=Ij`u#pB+}-y*<@Hcr1Ch=G(`|A}KXKVtUM$x@?`xLnFIVYW8*LLf0xG{;Vr0)Ib0$_;Hc#(nm`rG6$#z5jFa*DEhJ3de9UfS zgkedh2c=RvwlC#!sB2hkotpt8K?Og7e(@D}%{Bbf7@M|#(5{Aqv~y@`g20}~yh(4k zELDHU5!gRog>7sY1H1!zeXKA2ak;dhxnr_@9@Adl{UmI}-2n&uMgV$|-|rRduX5j|O&HgSA*0Y{(K#>+J6fJXuVdaqu zI;=s#lxDYN;lMw^#3aclvUd!AQsKc4@9-foZd7Qk3qyWqc5E_?KJ0F8KduBd3uoQI z9eptyA-(!!dHL$F*TjN=1h2x*U{okb@B+^iyvDWMxl~c1WrgJ-iF%NvO*X{0muCuEu$~W~p(PsV-kqeE3FVQnKqG`*KDjC zpp)N`Xcc_L>D^Du1-KW$!7mURhm~9NaFTvY=MX7BlSXpr&ZBY_VjLMKx3?+R`8um% zZAy+l?CaVsGDt~S7U99%Zr&S8Y;}-Lh+~|YzMp1#0VXGQokbDdmCtYV&)r@6J>*t_ zqRnylI{UYrryE9BT#Pn{H4Z<#-^Gjh-0|Fd-$Qi+6To)gxmTR89tAu&uyrLfST`0XK$VD-K$TSvRxM5l>o*LJt9_Qk z30`eMO60|ZTNuJzN5Xji)Dt245V12eyPsKqc#7>W{*VR+myNNlPn`wZ-$gUk!9UZ8 zkZ|ns$ zU^m$kTVs*IK`3riS&e~Ay{pU^$W~f?+pE2c*|M)fdZF5NZ@iJu!|W816;qfuI^e;? zOMSdaNThYeGf!vTQWIR?s0m7ym#Ag^!K{f_oiv1RlHS_bxAIAak|4}{B~Z9j^oA0~ zy!__%M}~9KA2@X-J=-?;bIp=$oyHMOJH~M&981h6^AzYN7?=grJTQ(9?Kl+8jWAvr zy8t4MYkuQ0L;)Uee)3$=JZV}KJ1^zVQQmoQrnzD+2I%LVGzY2lZIcr8DTBeyKYyT} zsGrBhd5ofYhCnZsev}tWQ9LH{@+R~(<`QXUNfIdf(~G;!_esx9Z}|>ri8Ef`k(g>_`DCl?Qo@sjL_+C599~m!s%aeOlcQ1t9hF;*m>oD z5sFD`flFlwwYl#-+@u>-!1*oy zuH5FfQ*m->J%d>`k&l)P5>W7DSyuUcE6YnS01J zeElkDCa;~0Zc!!36rNEXBzU0^rC{+K!^#91*HY`~`Mu7qpda`#v%A$sx*+=M2tsc| z4#SsLpz$1W_|?f&JmSbMwybvm?E@3&9%#Qd@-MPJk3z_PeRPC|7m@wCb8S8XRV2Kv zZ-CzMgU&TR<2en8xMN-t7r)AOp``YXDkmdDS5uz%VYbjP?@g9dtZ1HFCdc35d5hZ;_I0L3nCa|=G)6@XN% zhey>P?ztlcWx#DgB894-Ja12c0LZi$CjEzuiKs2n!AdwXrL7{anNr=-wvXQCQ=AZc0#2{_u!NBY-skOUkz`ym)0LudrSO+5hNyNBc!nr1llHI1D}DUqKMKz`AX+?LiSS6! z*fyjRzd*S4Xi|c>@ZrNsk{-&&<9&!=y*w>dqKgJ~jI^=g;L!-zEH9&x9;~ifg})P8 zpv+10#;Yycl=!%GIgIC(5I;BwuC7-kg^f5Q*Q%gl&&+&Um%I19{h92vUMXp2V?<5w z_>{B+qBh~OgN8k#AOR;S6}aR?X_%lH1)l`|$LFb;vGy3eK4YB+1M&MBO-IGIH$XZL z^gS#=(?G3Z3tit3T5mqGlYh=8YAoRzP6^~Ek*?t=NUuB4Pt%ZK(adA&XPYA7z@wsr zA+VL`mncRA4|+;pKm_W}xO%iAQ`k0?5;?AoqaD$%t1wJ*UrFI4e=ZK!Xv`ei30&n) zgudKGhHD(48}Nhx_)Q$zXx+53mWy-fn*i;D;N5bjXMKiGo)bdM8cEvv@Is3Z5k$qa zN1eR$qX3t@S4(UVpv?&Hc6L9J0%0M|Zq7Oq8iCp!vUvg)?R~}|$#$Cvc6(cZ9buac zM^=7@`{_XWwEZU515V`fjMYl{ZSY zFR#K1FINQFy|K2*!o@;@)V_MA|WXUBBt)%@`=FM{ZxmW<)#jbp@t+n2i>D%%mVifwPn==-c z%N!7$?kd!>S5L&JSYIuQl5gdy4IIl)HIaqP{xZ=Vt389fwg@qrs?^1&L7TFEDFl~7 zQbl(au?&+*VZijoiO}fY>m<*=;QHN@PAKgtXIkIQORTpi1tfg$tb-xcix}$}D$db) zAT;5ZphjHNC%*J*&?3lzSMuHHzXc6Y*>T`)sT~@4xJ);^9J@1B99P*dek4!!3uzo8 zJ=Ge`L?uKvkG;+q5s9?KUN-eyQ^Rf&e!j$J(Z8~TsAvRIpa}!NewC>Tn0iy*TagW6 z6moUEoo}&Tj9%=E$1;3u(467Fpo~h2!Ik?JZ*tM&_c}%zshAAYpSNk=M{NG z(>=rVz_iACTV9AEw`68~0MfEhj_HI{{az`O{TN`F?YM8|Q?qe(Cwo#apd_>j-jCp> zxGYjW!m*&UL-yIT+Gv0XegZtp;Sw~DCaQeaAg^^xM~Ay}+JS8hQ?s!zOR;dUKc#qp zZf$1ol=^H^g@Zm@(>MNW?qmA1{G00GtAn7P`sf`2av@e|wrXXq&9vkC)q8M^*S)(r z|KNI~ksCb@H|v>O@}=22T~7Bz;1g7;C{laeg|QDC67!Fg9Wb~5swBjvdVhnVFDnPI zI%r>;!`9<}&dY|m6HDu^KlaasUxxKI&U4iSVXtDoiLs?GfD60{lvrbhf{6iy*KqU` z7&0+w+YPqZwK1miunzr0=Xd>uJ zL6d4sqHTq_Gv%qpCsBaBw2^$<&ze?K0r_5#JplrvmuUt~)#d6uzg<#mt2MaAyHZ91 ztudFhL|I$=c8-}4i;9pGim(^#5=67{HtCnOdOIkH{e z6I8ER0vD)W!^7fyyBI6H&s4TOIs}yrLPj`&B|5s>g3krrKgg^=fni`r_q9)X$oce4 z>-SL0?5OD9@Aa%*SP~GVI_V5-?LTtl=-8bYvDFTQm}d^~1ojy|mNT%L1P@St@VN-l?jfGHs%T6^6zDR+lP1=B&{TWo zDRblfKMG&^3LiO$IBg8~*?!zNI(y>jg3&tSgaClrIct63iX5D-7C zot@`|fN|wRz<|tEB22 z;B^w(F}{5izf%5fZ*K?{50y_+a|uTkgU5j^Erb|1MJevK?bn@Eb2(tGIT$0BnN3H{ z6O|NWWtNN^Rl6G|%qiK1mD|i#_)Qoq4`#jc4Nb#@xjFw9>{uh%;CsU**%^hyz&m*# zGDx${wY84x*BVF^c*w9ee|p6Ig7(uCo(XDMgJIj!Oo}o(EPw!J`YZ3Qza5yKmO~9% zv?P9(y>BQB$n4su&~ojk{fN6VNEhgH^9c~G2nF`~bW&MA0i+;wFlxp7Q_3HyAx3XC zA949$+t>V3Zhr?nHa+6FbKOCkl0X6SvG$wNne0i_76IXPbQvy0+aPXli%2Zr8dspG zh_p4kEhez?BHqzBDJZQBBgFAl;0@ZoDkzGsfq__x`M#yD4#L`!OgQ%VRAVj+t}g5wqo83%4CsbTp&MRRdqS&qaCEH7`^!V=l>QB zcGr(9$#{5RD-i@P7IuHfUz{G_M(E~wQ%yV$ z^n${3|JL!&UA*C~aL0rR6Gngk;f>EXt%dDw%MRz_DDvS2_PhlWc{5@R9P! z5p&HDmj+n&Mo629u-dq!k`ghsMPYG;Ht;7hGO$r2hv#okyy4w1AncA?5c2yNwP@Ug4*O z9z|aM*Lan>=I{-ty3Ys|-2uo;$sYz98PrJfEiK-((lLm4w;og?X)D~iN|3@JGFC-n-Aj1~3EG+o5ghDb3P1Ci47?PKO zRB}jghyujJeZOWLOq>-T>Mke*X%8VXuX$3sMPe(=NdZoB8}b|T`!)YfRt6~EkKKoD z&Y+@^_crr1gP`v_n+sAA?S_EFZJqQxtGTJ^^R8M~`K=qRdL6Cd%-uTxqc0;TrQZUq z-$KstncML7rn+?CEvmE}wuqJ#2&$$QP#eeu-Tiy81>d~+{u zUs_fM^vfT_B}`WA14AO2579w)VP}RKb@7{&Oyz%9vcau*@*DxqC%YCgDhpl;TjGC2 z+%On~#ZY`|7@vX2GM3rEaP z7{2mxGA}oi4%!*3T)CQ*SCb9dWV6+6BIR?)hWcPiAJpJtX*!IcA!n z2TgvXR0s(mr2J+0n+?8D(NQ?h%RVX+7Uum{OvZnLkWUJ8i>zRRM$=v=NPM*z>w|%X za1Z`*x&7)#OcdZXjaYz(Pgl@7s9VOi+6Qw_XDMYIj-~cbCupibTxTp*Efq9jPCiok zC9S#ABfEHOJ=nK#`da<{59hLoCC<6|4oimO&w-hIyPO*{!+EY8TArM%o)P*dAu0j` zL=dJM45FISf-!$5o~XC9&;{WBFCK{-uz>DP5j+d zzdPdse=hfb^%l1AQ+g9v5#vyA5SC!e#^{0p@$$NQ*`k6SJ$5cM{whh%(t$Mk9+%M_=s9!r7GuIrv5JG@CIgfAG6V(=eCWcSKN7)=+ zI4WY^1rtr$wy*r*twWsM6QV<(96vby0rjG6-_RBrtai<;tzHNVElZ?gMUkI3lZV?4 zLCR)Q1glkyVH>k;Za^OsxW0$MZD|Z#NWWGBx(~7IWA7A=b=($N-%$ry+3B_*6pNLs zHGccN!9JqY2NDU^17*;fpBnZAhEuulb4CQ4e2)F_%xxF})5n}poaniOw3G++JMNEq>g0{vQC-t&o7O`^?!NA*d~o8$ zP<3K{(|Tt*dEJRE=d4o#YE76UO~&i(RgBw-xFa%Ge_X&$=v)`+>dapSEk!tXru^I6pyg06 z@NY?TxP2nwk&J%0cU4vZEC9mw=Z@mj;)weqnYQ`GICg*Ff+p|_1NYOIkeUgp8pKBY zQSqh~X^}xLzL(?rvn76amj3IGfcPymG;F+F$3OnlRO|$hIvyl-Vr4YLIjVcKpMJ8O z0C7E#Kf@Ktx1{-adT7GcY%s-zBTK%mrmQ+d^3v37h^@;7kWotJXS3`9Ds zKv26+b7XN0|FlAyi9v{FxBMy_8NCs z@vgNpu+>A6@lF9Y=6l}&8WfMi;pqNBged8|!4$?ukx^0Co!j1B5Fk=RWFTSYa*XZQ z0#v8g0u{5vWCEBPW8}}xH%^a?aATYJ6v75=r%px0A#U1a4|duBy@t_Z9h|CAZpyz^ zKwJ~bx1kr%LBss)^gar;*L_c1qP&nHKO!Neu%7}6tqAKWUiQ;UI6!slsTxxWBk2++ zUJ6!GDyPBp?z@WQ=O=<>o=-PADjt9eQL75ZS;vQ^4b1|I8{8Cs)7RXw`qf=t)lW(% zCU{+n)JcyAz_$JKAPaU>1Rm|#|Hue2d4O-<@P6Y{u?p&VwM{1@IV zJMyOKdP~6)+I+=XAR8uKm$1sm8(x%xf(O*Cuvlok=-}h7>+chDFHB?c5ZM8R#s(wk zqkqz4zyba%ThM&M@<7=1J|?zJ*Q6{5aAA_Z2tuyekQT&5B&9q%o)U80&G|D6R)VLb zFqD(eqO7XaLAtkTO{11 zL1%P_#+!yn)BgN+=Np85d$b=R&Q1;S&b#4Qdm;AM{k%W zxl*U2rw`eaFP8vN_kQQx@DvLN(Z2}cTWS~*CVFvxAABQB_r0HhqBGbzBbB7Wu;zin z=Z!QqqpUEc*TP#Jj99+2TMq{I0W5#Q*!`qKmhv8Ofa#=OSyPS?uK~CHW2km3949pF zI@&UHDx~;y`RZJnL0Hq*gBzT^AX>jW+==_69Fdr0PpieJ*#*Q zn}0xv=6hA&$L-kBhyLW~2_lFSck-ywCd?2(dlYuyzqfsW{N$i2g3T@zSHm zKZUgUnR0|!7WWSiKh+J}I)~QUiP@gX3H5qk|29# zcUkoSZ(C?8{?$H^`H2tv`kDt@3ve}VS9cCA-jIS2=fPQmQHFd(`-T>+;ehw!Of@VI zd+o8bWEXt%pvw})fho(TvzEWRD(vHQKOlgxoV0k$WCQ|D@H9}MictUc;Vu!{HzY!u z;N}xeABZQ9}BMD3a|Q6(WC zrU$jxup-&m6kc*`%q`LJ)Q!zk8sig}2I-q4qh3II{PueB0`P1pn+Zww!7LO3H~>JR zI2ZYV)(eo9O)PtHfG6nvafnQXW88+S7L5?_4>aO@k=OIr49%{|qN6 zDWMIx;RdBYz;YjSin9lSQ-3gqp3wCEkG|@RtPKSqu6+n_Iq*z<)p^hWkZOj@@+~r&Dt}I<;!T zF&%stW$+KfG05M-X&Ck0>RKr79Ln0KI6oXjYz0TIplC79=A;udm6kz1hVLWeUb6?G zMG)?ev3?WVwu{E(x2W^066 zNZm*wLD3U6pK5|QN>DlS*vcXvgQC5;pej3EX?f^M7APMxh#*A@Kxn{@5-Tpw3y*XJ z1NhePfdASYc`vDbna`R-T8nrM;rzsxpzRX*#w#p3iEdU$@mi^;DB_!_f=?U~E|>_K zz3kOvm$uZV`VGRtNYYL8Z+lTJqj*Ye=g_n@iDahvG5O)FJ2O|$o(tP3z)LV@0ty(! zI6+0ZqrQ>9!5vHfoX7b!U(eH~xWV(+R**c-iUr%7No%as6$G0m%77p}g6!Nb-pO$6Eoj$jJ0)~^1kW&KSR&apY1 zcS@u%kjSI}zapbXs8S(l{jk@al5DX%(E(i)|AOLm;Dh0Q$9hLnTLj9}-mg2uc7YC= zqHipdGJ;ntHg-y~K?}}wg3cPkH#S1Y%Rgjc8Cu?>*gW=zVy95JDYE)!BT_W8$xH>C7dP(AaDPD??7vO=OuazqW0?ya_< zi`!vDhjtK0Cx=6*SD`#YTFzY`S?fPXy})n&oKj8#%QCW84Vkc?@#XWel=273a5joP z7pP%I00-RqH^4|lfAzVPOcUxi`+gjtTmZQb$1T%bEZE2d#E#md_=imNcP0M+wRjfp zW(W+MB8NDE#vvrCEVDcbD8>dJZXMTafhvarN_(dIyG=`k1njMlMp@%VBjVA06KQ+t zSQ1W$t=}HulZ;tjn=1&Fe~L|HAy_11M-tD+lyowdcS6`gcYMtVhV`rc{oSz_#qwA1 zYN?5?y`@E?sIAEFKc z-x*^6g3nNL{&4d^_;Uqx5U+pEPW1^+OjMRY_yY@i9OO%-44KfO@u;BH1I>SDYdK8R zwNc2{`T%OJJ4Cqy1Ka&i0nLk2%rPKyy@M^X7^u1=|C)w@@qmpUTsX zf7%N+X&h6Pr6K&GNB58hb7B__@X-m&ePRjr(?cKFi^z8?GsjOt5%{MuX<;ciObiO_*z{krI4eGd2Jt z4K9>TL4-auG&;=PbdcYKrt{}+8~;Bxta!l!sB!7`D=x1p{ep7+XxYmxQG=X1DsRN)7eW)EP7PH@pv6Fc2Nf!LZ*r-{(Gmmvu>m!sA(iykWj=R zg{q?rc$83CR!03+_gtnr?7J?Fxi^O3S~b7gdEV>xJokRI z`RxT|Wk&O_)>SWmwR0vr;IMINo{_`3SeM*9dYO}{G0!DaJV&UL)gZYASZ4cD80u1% zEfd9Cha-3l!zqiAf|n9ZSui%T5VfwxcxkF*@CBg|wPM|QntKvDcY|L{5Cyxehnd4w zYVD_oMF>DW2kFWse)aIqPZ@#LX(hX&$;O;>p4YK)Khe8Tc(CKS3P=LeKv-HYunv%V zb*nrOdLgN^7FI43Nq>F27xdtm_NpN9bcO8oR8~eL5yVYHh>s$T(qIk3&Il{si5b=xh#?W3?! z^i`&>um2A4*wewy`Yt+{+5xi5@&}XbdU2tLD)i!&pAjT%W~doE*$|bd8MIZGe|hgU zK|m8_R!aG}z3$BkxE(@Qyr^xWMcP6hw^?P{9%5*wSTh7l!`_7^{-=h)r^|c@!O7%^ zS3ulVOpn*p_{V>GH#GV0iGo%0_}7Oi^b@*^ZV91ezI2uP7UWIF&~%STlajg-%$7Kh z^u!ztoCaD!tN|8T=6cy`E2sT-`kjR(;)ajWl+ip2RbE`Vqc-cDRSyg;V_+O+8TQ0ON_}cHRO?<+UD!lv4GRD}hp5 zbm3KpSXbYc@9z_~h{SY`sB!_N0@5fLd6Bal!4*{3R*)?adxli3AeYM@(N|?M4E^}1 zi{5PpJUEli;40VLAR827Sad#`VtyjE4(|iE@;Di38n*&?APW!z?lkaw_&eG?J4HgJ zDj0U`)>MGrvqY*EDw$E%=6>k>2e7v$Lal89tmF1gK)P!H z`Y;RoR&6>>HaQnls1$c$cEQIhnM9#zWkFG?Vlh@m?q+%SZbvVJ$ zyPjjDHSH~MS(A|!>Dk9!i()P45OK`PsT|CBSv{x=X-QmdrveGI z7=+JY(D}RK{-@?%h9*sc8by%De}h2MRg_-*TqDE zS?l|a7mqQQsHc1uot#SH7omaYqv1%&Q6{9cY0qi|v0Y(#R-<>e)4YEYVq;}FyB~y5 z%~%GA!o`Jp`v2qX%fp&F)4rc`P68wW zvH)eZ8)gvQL*MClj1y7p8h*R?gF$5MqG!1QBl^Jv)AYxkj zw_e_M5W|gv4M&cf8dHJ=cJ(`eUB})D84F9!t;K?f9B{0Tv27a&@ySgFg{M9T`Skan zsxkg1tKWe8BuhwBRu=cW>W>b6`ym7c0d!Giv4F!nFmn?_Q*zNW6SdD|zqjSEyurCJ zn)qx~bA0fr=*tttVg}QJiziC&NI*K|acz04-7*c_4Er`p^{3#NtGRI%MjVySFr1nQ zS)rO|Bpb`8Qww~m*yfWbfE2#g78PVZ!`R&PgeWludfuC}f=0kc;@n3!SRSZ44>;?m zC;^TaQvyt35u81DOZ_c*Q<14~+6=QVFA1Rm`VhcLYBRb+n^S5|umUrn6%ooXGCM24 zMisPkdX@*=Jh8aoJI{ZUe6Af2Z%+K)FWm02=&Zm)n8e4WzfJI#qZfq?MGD&{GdIeP z<7+`(grT2q&XF{p@6T#(kOlOHB46;tNDCUykloCb9lUx==Ca8;N&Uw~GRALxvoN5l z>tz{J&5Vc@(crS??|lI}bvwqn%fP5M46z_3ncviUnN*}GGhZIc^9|r*IiuYDSH_oX zmkEd*sC{@0)n^doefd8pz+4bV!s_UB0>e{hagsy+%SJz5g`sTHZfBmZd@ualWq+{> z&?pAptx+?K@$NBUgl&!qE|#^Ss$}G6atE(pER8m0b-nOi^|yy<_vba|6MBRL295qw zZOvY|7h`orXG7q>ei!O=c+^|9vXL@?RMWMqqO7^aoKhGw6<0>8OR>Zxa&W*^~5+kncp8;+OKJ*^Mw1xY@u!t9CI@tPZI zaYOT+5T9URLe)gqOXPV_okDrXOG7UzT#Vz-*x{mNZy$X}D+7V#PgM1behS5`#Z=gt$I z`_v$#`KlM$H7AE9hX?P3pl+k4Gm!A^xn}b{Dv_rUZxs~9N-+_=@LB~&`!aS49DO62 z{^AO?e>@Fb{qx-5sT~eUzyEPEB+*K@({4Z`&*U|AI$1#LWYSejM2V@~A4SH=RjGWt zlTit312UC>)dxyR-fUG4^rKODTV4KvfP}*Rfyds6vq+_uwo{|Tdciq$e1&>(ni-Y< zXd{JcC|CdZSFqpGdih_h{=;*VVH{Q9vDc&1(k4p37ub#X2Y3`$FK9lMl|Ca8ce$V& za$Km?D?vC=1qIr)IB+mU-6H)M{z=*J`JGUvAy(FjwgLt+m&MOmm&>EU@nob*U2y34 z*_a3X(8JJLS}*af*34LV(Q_#;)IO#g_7I#!3S~?ttLAq&7s5~j-)!(QRXj9ZP(zs* zh8Ur82ClhzT<8MX^KelR!dWN&@Mt+OJ-&)d=3RqrgP){Nk~SC{f!CaO<|sH7Erq|t z!dQdKI`*_ko`S2v`(dZmBO(Ni^#|^(aHJ&VDSWftdk^S#@!7{-^`TW!Ui5Lb@uRyE z403*rq32pK+HxvEq-_$|IU-};&lBYHXP3Rg_9yi!`E#VvV#E0d z88Un-&A57;=evwt`~y%nmqDt${l`BoEeXoyjcVhdTNdZ74#K^qzc%J@XoX%4VEfiX4NsWPByesa!lMCft-*^o3~aMV?-z!^MTY#2cyQgl*ah6g`W z`|S|W8K4=lFj|>qqR&?s>C#$9!~eEP8a*9)%$Mr~W+P(x#%o72jFE|9RyU&R4Y zj-ULZlnw%u3z!F?FB+?dBkT*payadOSi+*OCs;64cBu;l{32ya-5`BfMgvfv{G$6r zCeu_9h%me+G z%Ko1Nn*M~Z2(4=3YsAO|S9zctGbd}n0%A$7A}qwpjic5B8e+U7lW?*WtNJ0Z{>(p)Sr9h9}2I%cc` zX&<<+*B!s|4nSwn1%s)d2cn#8>@H>^u14G`EMROR#w66 zdElg;iEp)r66Yrk0$7eDrC@)(HKy+boa3#Rum&eEe@_enV`>jwBvVB(e;94M08T>S z#c39~lN;Qr(E-UXz7dzfG76Gj%;z`Bivv_IVq==hfxzS!J39TgIRK1d*iJZxds=Ua z6)8^s_8s6G`DZm2ko4lwpeC9X4ByZCdV-#7H41b73vEDeJsCOtWGW~D1VqxSK03Z# z;rEY9kmz3e9Gs*U0wEsyOL8MG+>QvaW0u&xpwXD!?Hj;6S#x&Zdwo|o=rL@1EE@@V z@@+v#p-;*{-65Dg=`h9-Vw4hbTX(+(mPD1Cc06$>q%YvJRGne-J*_A(n=n)jE)yGF z5xpRSg(KFx^F(@=hbalAzvoRKA1(Rf*ld=l;hd%lL|v6|%-ThUv5FXzqP*WNTuj-X zHz=ot6CVRxRgbY6kLM>tmz5ijTIZ32QY8Tj(u$mjIbc+H-ik#!Ium}Fp zn)jc}rsv7aXVk3CO+dgZvu#V~r{wrqDsO)H-r&ynJzmq$CX|N6+LIDZ%D*SPCbH%9 z+pt~X$b>1UA%K{HB13B?#hoF0qJId?&i z5ywwn+%EFgVx)WPwQ|AP7u0G(q&Eg4`!rx>f79PTAY3h_ofVBqJKNuxA^+`&(*L{rLV#KNpEi%EI{8FcpEqPkdhS z=f9?q8cmktN^Q+9c5$1!U@zDo_;GTt)TI*fz|xz2teMx{otarzy@J)@5z6O4h~e~j zA!eAw;AWLuE_~U#B@jW!>#UqE&kZ2F+P+SRKreZl-}<(^qrT?x;lRKJ_}2CTsQ&O% zePAsYW^VBYHQg{mi(cE)6GqrHnrUR?i$H!0Xa>?rSZ?yQF_4!qp_Sd~TzQNYW?zsc zR;?QhwF3p7fg7QXVuCjYFL{gsO3LH^=$nn1CF2F63!8rwF zTbVKVKeN>IQd_x9t_JqsMr~&+nS{TqcZ|Wyku2UKoi{v#{~gK;dADFB{nL}Z^LC1FZ;*w!9b5t z(5^r}x5}Z7d}_cy;4mQLV3Rv}qSfR<#f1wP9 z!zE<=G{jqk<0P|@cDeA6a)`apc_~(+RNCvMQqx~1>Z-C5 z%I=&4k5N9+nrW+qUL+#&AFw@S9yi#j{Q?)4uJ;mH!$ktr%CX@$ziXuniX^BWz}hfX zi(m6tYSrC!OYaps^B4PZ+3f#()g@r(2F1QA97$(3n*dcpLWRkgrH_It^+* z(zQt#nuB3t+iW}}EEnP&z^xvR0C4lJj+PpfUf~1^o{y8iAc;lC7eL?*O z@Wk`ch7qn4TV#zOBDPJJ6T}<9-tnYM#mbd2Mk8G=X}AE|7Us0lH3Ag}%RjQ`dbp|y zalndd79&?JWZ1x+kMcbfBU=?id{ z)7G1yPk36Krs1#@ywo1 zUc(b?9$E#ahi?KmH-E992|1y@$G728FsYi5HX;uLy}Z;w5yHRdL4cnFhKtYsAQMBs z$(ToLLE(TMzw8neX+q6zIF2K>pAqEQq2v%81j!rd)^`E|@N=b3*dlxQO=tJPK8u(ZPS;6~E>Z{)C6E~a^q0m? z@XXGP2S+WQNZ*129^8PKh>zB@Cp*8jIgRa7cW3J!>h}~VbN5-&JVeLarv{c5XBAe6 z>5m`xNg7{0JjepY%YVHGAbNuQ33*pdRDu5KF_7(=c^-uDTE%z?edY7s$$;c-nw8*D ziYA1AQOv6Xf(VLDbkS83H-%={uqs#tDCLC+M0lgE^;Hse{o~=_Ky(i4w^aS4Cy?*# zIb1!11fCP8vkD#w@Xfg`@JQ`3sOwDrYPdkKownDbEuc^S?dRy1Sby+B;RnEHfrXb3 z4tJ^_QCBkjBYIaJo1jNIbf?;QX66eZ5ZGsFx5Og4U%h^@mRA=Rv{yc+!L~O5oOOv(U;^E!hHruNO&Bvq1=0C!>#YwDA#}~Q zFnSawY}ciSvqdS1SV#+RJH!qn$=%MXb(6oZ!soVJwb-e8{|DXqB^@8GW*@xz*kW+e z^Cs@LmYf+(!8)CV6|O1{PCtliXF;~PGRA;hQ6^=l6Bn-i@5iff!&hL+4u#-3STiJE zxvD*K!CXbaSp>8UvGFmJC$`cd^E}VC%%H528eKbM;1b&pr#9~M^@#@|0mz5nvfy%6 zs**Uh%^!M9;ZUXFU3Ji31OUSmdpfpk!MB1u z8dN7XM_2xaWrrAVrMEb3qX5+Yeg}LJD+UCoug+}&5^enCJ(0__kTf=|zMRg14#Dqn z*FbRv#?jHZaQFZ6V9@tx;YruL?%yKV{ zjnh@#nz57+nT%kaL+UB~Y*)x330#z7-T^q+&(WDrpShO;UN!ZW{`M*y2$JN>tX#(W zgIBLwV5OA~_ndmr(b(s27z}9{O>39Zz3PJRVl1o%=iC+zOl-$w+jVOEqnEc_wip*r z@MQ)TAv|LJuSsfqvLi98#=rDnw2fir`3OtR)}iy&uoA~V@2M*SZidSRUSHV679M&r zSKs)1c<#qY5}HF0VNuxDCO%RihSDein^Z`cgCvp;c+PXD)R@x-b}ER3@jTVHd=Elb zEk{FOIMLmocwxmYrTk}YhO|JS4b z46L?^2)jGnjPZ3JfhvE5u?wpjg02^M8Kr0IPFC)HO_E~Zr*KCek%iP-@2r-Wf;WbMvJniiiRW4(LM?_k|HhCdv~XK$7$gs{Y5&$La)`|i}tLb;ON9i4Mqz?^NO@9r+iukZf`4*R9Rxwtz{ zn(X$kqip`gB=T@p*hgX;%jCqn(1X=8Ui?l0s1 zhX?1jWWj0VLH?IU2({0XRwW6S{zvZgJzqSJfyXQCnPMyFKOcISQid>4Gilz2yeb}4 z4f&czO1kJ*eX_Id=9ASheZShiNMzkcCYb$%X3E9GRaU-1@wV8cJaQ)mD4D9QY{2z@ zu7;W&?xqlWtV%(Q_V~_9wfhVlAzLm3IRH#MI_+@_MJ0;hhOfe#=Q%pj1x&u>O@Dz( z0e673cus$3>*0+7LY2pfXtV;MzPqG!kw9Gl2NEBn%01ir)B+%O3y=Z%l$TGMM(+ZL zy)`sI-aEI&1c*93_TfWCP$`C*<@lgG{p`K$IDV3W#Vc1C{_~MhwOeV1G8F4axUL9` zAew7?AWz7LKLjmb2?^L$>U1OP>#uq1QBDXWcWc$wpd5uPLN%XdUUM1f`H&?6!wci- zrHSvXRu>(*CyBu3TSAHX-+!ZmPb1&cSAEyT;HBkvZ&qxOnNGu&`$5G-Ry*5qD?gMw zMdUUXR*-WWVXmsl#mduH89pfV!GuZEcklXXh$NYF;PRHs6PYH>{ku?CeOM5&fUDT)Wq7IMm2o<)gbKZ3e?Z zkYjq&S!waEd-+?qQzSrww5s5w9p?)h;II@TiS@r1a3-a^iD4rMSCv3cD@NyC=H2@rbxjLvuY{r&EDnrchmfOR_U= z1(<4%+OWf!(Cx(;6Pg(ckpE+4;W^D_Ujog!3ikBYQ%?WkqB|k5ZN%TIKGgxoIob#E z*LDsZL2V>j6n@_C;8h6xnYh+|@8$<2T&`N@J%vx@sio=a$_9yTU65@24F- zNU|FS5D#uZJ3^<>^7FWiZHA~eUMQEgcitz?*XoS{(5e)GXPJN(m3%7J3MzH zq$LZ;Ib+Y{8VrLx6k#?9KXxlWUH<>h=$|PlUsZ5)0&b_nEyYf;OX;}<@F^wZN6Pf@ zV=!mM{`^;!2OO#IL#hJxBY5`)BMsEuBfRJ2AmFK2|5V@Mg$@s9V2!>6e$ILQhk7jm zGllbtz;4C6Mv)zUYofs!Uy(MUWwLLbx>c};fx75xw)W#$m}C5By*I-XjselCSr}vz zAI4V4B*Hx)UWwj4)ZrT-QkdGcTzq&^RYGNlW3;wcDnxZQ_RUT6O^-MjRv)IwQ@Ot! zSmS$~99KU6_XFx@!yhlo5oxnjkt?0ZyOy*W`pnsv~F~W~_ zeZcgj*>V8rLMS^C-J{96kJSeS;C|AXj`{28s?-YC@Xs<&GHiEt`l_k&m7sa{#W0|i zKK*za*87tj!37)83Wx_?7@a=BX1AU=_3)f=t#SY|#)7kq6TcnDyX)C)A<%$2$!C0k z{dOF+8L`#SpLfgA%myE)O|C$5;ivNSEa-f0xqKEz8UT426n_|pf1%_T;Z_^ zq4qEV>N(gCrpZ@gZZ~wR{`JeqJul#v+)U0j<20li;xx9ns?ndQT3U>qPv9eqky)jF z^4$dr^rck)M0ADV-lqJYpJ9D^A%-9M{}pHbu^fe&OZckbC;yxO_osA%FG1@O2@6RM z{4ZaHh-yB3e=fqhA#Dn-3OI;xAVu(vxN_k3!dE;WSCz=&K<0n{{Xc%kH{}TV4>+JO zfVHwSZXwXq%y!2kRPFbA;cL;0B_!S6zDdYcV131`0!A0s?-=&=LIHn;Bod!w23c;* z3U)YQ(t}@+?>Z=&Aq#QTp?+@O8ov$eOZ+tHLts~gmo0rUa%Y@`MCRs~A34;?SHoG0 ziXeApRFnD80n-`Q#?Clk;g!=_uq@UV+>Fw4voLoW%fKwiB+e&j{UFN1{=nh6vE)ih zSfGWOX~kio6cqHn0WRbVqv^D?mtqW3bjS1}7xZY3n-X#WBovHcPms{}J?g0<23tapPB#FuzyWCR-mI<(9Z&T-dcJ(Jke z6NODp&I-@c1nK>-Jtx1yi-|`ojG=1}X<5a={RTaOH_JBRQ6&Vy@_kN8?5Ww;=slF` z12OFy6Zc@acVmD-6OutJ2Q1Ub*9;n8*ucrcfI+JA0^GpBIuj$uu*5yY?2?!&OSSOH znC+z^5qHF){sI!?B6h|d4FT1YdC=WqU%q6&>F^+f+_qMwx^HM)YJ}tEIVu8F1x{ZM ziZA*?9n5{&V9^A*2mk!a(m){uMlnbW3rF;LO$@l37kK>lTnGW7@`EEaCJ4eZ(zjD^UMLH9+DHgqCqf-2PnkBOfjY5LHb%LiA|svVsCe zCg;=TS{B^taC$*)fsff^s;?98xD!HP7zX3z=N^a-T}<+l<-I%O?)v#z zX6i8{a1WoV>qEXjWDNQw8|?PYla6Ihp8rE$N9V$5NHlC8apS4l0594jkxBa+5t-g8 zwSHU~mpfx!yD!(j+co&vso>}10=j^ib#2a^Yc|eLnVco>XgOYld!%*AQs`CaF)b4@ zvfaNgy|K*I#_a?u)hGb|?h$q3Mtzu-?~l72?}`#j^Wr_n8Ms@f$I1zBN8Ev>eY>EM zA)V$zDu2$!H5uNyzRz=(o-jJTe73=PVfnR)h~TMK;xGa1ZrIGHCIeEXUOY{XD5jso z-P7jZHw1PSuSaL4r>FmWVAOorcH=)(c4P07TB_H> zOT-ebN-uX`+^GLoZJ5EA%K;;77X1jwqjq0lzWN6H!S*_Nf0v|S^nqlhp%sp_1Vpu)Zhusyjl;_HbjPjB@~rw77SY$uOvBs@MSdKTj?yZ;PGiT0na z({Z_QN|A~4API&*WKQBE-&o%tcCPW+;fX)Y{mYIW4;{;c7az$CW{|6CVirXpA~O5E zKOZRZNxl;jyvn$ho+P zObqkoF#BE0CU*^vuno*q?G)y?4ew8CD|o3Dr4NF5M9kz-ZbLw9S|z2*KrT@WzO<}#V|sG0FsGa;w7SjG$4 zS|+2K_2GeY5xrU_Gqzph7{4;)y9gEWpU#2(R3wXbs0&vn@B=bHMVa1&$I~u^>j{vA z7zP14L=Gnt>abl{pszOumJcguy3nvM7eDx#dRK`45=p7Ny6KV7Yy@N#QNvt}fGZcn zksdQKus|lV%9)_X)$}{k>wP&{4_}Y|ONP%F3h{-Q<^B54-Z>i*++{L3#u{2XoxZ_d zKr_=iCer_QcM*cP&UBiP4oy5sS~A?#C7}U-aa(-}9MJt*mOtf?y`M}5uJyP>?%1*8 z?(ar=QSM=o$bj@5oZDX^8^n844C8hcBIpT>2W3B8*a1YsCmnC)MlFUD+AngYo{pgq ze*f_gpHqvFq028BIY!(8XG2!gsj)WZ!&Levn3xJ36RzIZi+VH0cj?6jX1{(qV`K~< zoDy2k((_sLh#9I0wyx9ZlkEGZ7aDOaX_hR;Wm01lr$57+u?Xp>lVeeYnSS)~#;Izg zAQe$bD#UP%sQi0U{fnaYwD)M=*IbXC?Z6si_^LGDckrrR>~D5)#VI5cE-d$*rV(qX zkH@h`ryF+6+#O!TVV(`??^dZC&cnezT<@K6+J7Cfg>tixJLL1xbZ%5J#CxX?Fqrfh z9JdTpSM6S;y1;a}rtokwn=LX3SH)4`OqU~n|NF23h^(3Z?S+Lwv=e!m5nBjJq1(+E zVDrlDRPnsprn5BC!dF4mZ*vEwkN`1EX#_g)E{m z7xy9WWst_+dEOm4G~r@O;OE9#gSB~J=*!j9T*@)NE0wkXy2nf=s2y@k94qL> zKS>PZ9M*iC8>{ob2V=$8(>OSv60;Ve!!g+iHN@{N(=%5~A!CbqU7UDlo$Q(|Lktc^ zPnS<2l-&c-@2{2J%hB7scYOAldU$fOik>k1d{$)Dd$Amoe;@L{GQ=x-_?$kB;YipW z5Xa~0y?uhfP;A6aKa8XwW(^}&R~Hps@c|_mdhBRh5cOdJ z+#jS|Hk#>>_{9Xg2Q4P{X$%fE= zsXkfH6uHRze)E5`V&FZX_kQ}e@~n{}Wyv}97ZPiukJ+pmc6aY!Ec!CQcvhXHy@>z* zY&ISpCEw=l$Lxp3d78=jreQEudofmzG3fNXc=#tupNZ2C&Hj#(;U1w%J1i7ZILsx+ z5F&=`zMtp=fC}nYIyRvGbsv;*1<=?93KDWVR*2)56Y(Bv+0;}a347jT|650X)%|6| zT$l{6&|{DLCAORy5~`UApl9?DK2wz`y#xCICyG)EWppI{==@=4*G(sr9thImvR&*V zZy!IVbY#*rltqs>imXu*>rQ-Wtz>a-ltPDb*R`yju?SJ#N-OgPIx>aK{@3~}vv!dU ziZ5Q1He}fC+FSnj&;4O&fq1ruP`z&B@>JTf;$k0WvG>3gV1@5he(!gSVd zUSWkuUIJcLjK0*oc%5Ip{vV=-!+liRwO^B;6UkTm#Rmly(vJaBh5Zxq47W)P34f3& z>;$M>JcBxH$EPA(D6(!f^z}=v!du+qLej0Yvq>M7OiwZ%_X!|U>i}e2aWtlWJLOOj zvtj&dTiEc6noUK>f{hzx<@=W3LRMt!? zk>AYN9YX3`jIr4|@7G4%<33(w!y8>R!&j83>l^d=6SmUi{8-{Xm#up`nMbHdvY~PR zO7aJz$XZN(*G1ZjH!Wz?|yumWZum*r&@2r)jZia@eoXGh>cz&w=@4 z)IQ4_;GmSYl6E}gapQIaaq0~qe#8fjjKiKlJC*tlrpj(NKXfc@mOxZBm?9GdCKS?< zgLZtH%QPsHAGG?xqE8mjTE1YO6Bd2ynhcFF(iJ%&1@{equ;iHK;TsF5Q(048Mzz#s zTqvdt%mMnH=c3l+#z)C@%wf0k;Y+l$QRI4EN9ygx^!bfKADHcqZ^Z7#fAKI*Q<0f{ zp96jG1rIc3ZRAo9Q0azuJHTw?P6#OfHTNm8X`3qGFyH(F0H_!Z-d>VK;Esy)VEpTN z=SWmHk!WaNMJCzZBC3STDtx~fraO#%ArxtNDYSu@b6ZrZUofZR#ZbEwAY)|=jAjt6uXYd`nrqGG?G5do%pSz=Ar2MdGUkxrY?i)xh8U0_Wv45T8( z4N$*I6VLYdN70=bgLlMK1CM2oBo(@Zc%{yah%7pJMzbVw=eo5*T>b`_O5)vIcPC(J zo{uxIq2G_*l`MN>t^Ru-=8n(uA326Tmn}LXwgOPs$^6|x?@m#F(IYY>yuDzI9`QEa z23D5T3buKJL;hmpHVFx{*KgFp+8x+h2*!M8Ln3LDN$l!o8hasvbc)C-BnHIu(z*W- zQHkW-tv5TSDs=aYu`fb`u(c|_YBj!5c2_(%Aa6C|N@wa{g@rIn8IceaKrT+!_KK9v zQt7CeqOIXP4pIpjFbP@RbK~hQdVnO2Jv>~`hm#=@rnHM*NYQ$Jl&iBpmU6?rP9)c1 z>FRxD0@Ye#-rH~YkJ5rs;x|3Z2*AQ2P%83H2o^_0 z@{thV8&UI+B}pvP>1}jsCe$Tsm;?pYfP;JWz-6(kab=0Pb&}^6KX4lFHc~}&vZQa= zcz5LQdQ5*;%fuh`e8%B6FmtyAV#4faa3Mex^hmaZ-jSX@WQt#wK$I}e-LLpA!#A6~ zHolvwGh@=mPZJ)ktib{RQ-Or`v*nGN2K;mpvBT}7cr z+5ItN%;=j&EIYeI@kn9_B69!jf4T!uQsyL&6Q9Z*m4g`*P#UH5nAdY=eD+2-a={^j zw8~j`jwXDOm*B~P(PRqH8fO0fm5{o%&jMU)NN=XcSUNnQbob#wN0J}7vzg%lGNY8` zkhMx0R|_X#AJpMuy_OFol9iNWkhdaX{}+O0Wqcv&(me(v8Z22xFkdYtWcl#1PVmh}pdk}sc!a1A}2zYCAlz2%`lG5uIj zv75DAAU*=RjN#=TcWbpMAL(9ha6%&!@IHDhoNY%lV!A+>cm=W$cwR`y<6!0ke9Vjo zH02y4T}Ddu4Amy_4-W6*TX8SVu=_@~VA(Gzg5>Smx3EA8zB3inAE&P_w2IkI(vAsA zcQ-hD6IghWm>_nUQ~ZlFuxxEO;r{)zQ)z&UoBcKW=ge`sf4Bmre|-a3K*K$r>2!04 z_LzRUXYfwdGQA&65--QETsGS2ycO?s$Nz1UKA!2AJhqEnHN-9s%GAa-nkmOaI4uP# zBdK^pQ$m|@ht#E1@mT1!7^^qtOistOAQmqN$LOU*Gih+E{<6ClDl_a7eL79qD+~rk`X#7lB|zKKq6CC_eRzj~=|@e8)-yQNeL;Hdw}+LU9Ovc_08w#pAHJV|=%%J(hLJJ* zm{sge-7jb>Xgu6gZ-FtT`lcoAF$`S423CJ_iUROmDfN#_v;l6Wpe-|)nw`mEx9gdV z6RCTQlh^CD{Ao6?N{Y{PeDQqZhPAT#%u%g|$7)iHXkUN}#TO7S1_bmHe>3$vx^OAR zFyF)DQT^!y4HQWYia-B#Mk2BD*fbcx!{7sSGnC=bJs0)CZ!$rybft#pIaW~dS!JIC zI_O0c)Ag_xmHhNASf4{x;3BGum^0*uXX()lC46R)%z%!^(SU5W%JgdlO$qn?y>$gr z>a+lz!Ur7bKSy<99K>T`34OkV3{q^LcY%|>0(V=P;1Wd(8F~hkVl(8#OgT0UxK2z1 z!w0@F`Meb_#@I|7S_FR^h@;RfIYGa$GtQ(HiN$wiF3Mp3`%Ql6io9VQr-%8;e+_PU1=Gg?j!Tn(BxjYQ(=g)s%G4Da4CV{i-5rER%yCUl$P|Uyad?G(AKQ0swrX#us`@k zQ(+?4!3ixx$d!9x7wcMgiyC(DwoBwfoUSd?E%zn#T!Jn7MoM@7k%@;Tf3we$f(fhj zUcx881d4Y@o*qxeOb0`A7p-3mZ=vdu7rr;pvsGm>z*psQUHY)Zbo7n5&7rEJ;0AH( z1*~M8^och9qZX6NBjKck)=8?#>ng&-ME?6M@IU5GR7a@%W&8IuIL{}rr+ssb9{3}H z3z{#VzA8NW@5g7lBYzr=a%a@;Jv=_>jVt>k61jni92!?GZ;4C`#=m7;JNUX(ev2_a z6RQip0?d0aXNDs3wlFy{@?_n!_6uTV2jqZ!M11|?PA#7_C8amkti*jnftC zj8GLPhRS&RcAfnICcQOy#`Z8*rXLrES{WtYjdh?{S{e$AvYjctAa3 z?Jip!Huim}YN<#rWS$IEv7>_a6#FT0GDr33&qCUmpzRgr{p-1o!DZ5QrpttxY0F0_ zYF?L=I-?!OP{rsT?Rc2#0-mWEsQp4rWnhLuX|%+h!Id_SAK}FSY-B*(8+A2-L>!3P z7Vn75xN$1}M%_}8vdv#7+XRUiY43dctyC_=?j^kuEmjC?t-;nw@5X`p3h3>xyXCFt zF9=O{)k1~V`VPp@wBsm1W8r|psyHnGeeG#SXr##Os-A*WYiLQQ6Vfw~Bh6hWktZ9b zbd&OA?Ayvk5h6_dRVJ&RGs8gi&({-1K7AxnF7&zu{&QL|IQZ5#(oYJQ(wWCUF1sft z3L3zxRiqG($c!q(AVg9AbKz}wMgC$sPw(*$Q+Y#xSoLEj{&#q0?KlIyl~yxoS|r+$ z(M4M4GtH|sn&yh^jVTUB$I?yByp^uZj+#&zNKJ&vdIE#QQLw}qU=fSoh@O7@_|Y5J zke7B0abMrQZNYMx!ZzAp=~5=XqQowo+yTB+TRARZj#=*sRpCiq?LM=abX|S|X8sOx z<4Tzp+`P5w@%SF-ICMI-Q^>QTzPj$s<9zc#lp^^{sUrE#YP%SEF|F}dCE5882Kl@-984JS8mbRg-KWjX6(}45W)`yKNlb|; z7)2m}6H?Osrb(pmBDO6c|u z&PK)KniyYJ0iTg}9rNLzamu2aj{7bTf>J~*?A_BD_D@bxwhYgN$yRORs}ghvfQLz zj(s!*eWJh1(pU(ytKxSFYU>Bo-rzqSb*D{Kp_BWr9N2Ccd_Ark&A{$nd#gYM*(=eT zjwHN4YAJ-UczLP!f^F;89M5OTZnQ_Jjv+6iC}rC~bcLnv2JT_v`jkN$DCDYUm+;Lk z3=x&N04uH;`H)$EPwxy>z2n7kSF4|05r_aRFp=Mx5K%f=br`8qX^8!Zr5F>;m{R=DV&(DAA|zm}V4jAcYa=GcHn{uGr8~UvU`vUOB*znvhA1 zNj!9um}T>-wT3@y_D0-WwUN7gTMK(aTHc6bNrN~{$c2u!-F4MIJVJSy&I*} z=b_1!=`G>l`TyjgYH~%E3+GXhhsOtI8qw7XQA1I2@D%)fyqlC8v7T5dDjFxL48(R< zmBdpKhfN{`UT%-hGdg?@r-HW{NJzY`H1&yz&B+Jwzaow zf-0Ons)Bcm>GwL%hJY;*qH4Figqgoi6zNHC3){SguENXOmx|!Luqhp+@krfU;mzQs z9;MKca=GsL260rP#AHXCM?}^fTpbZG*;yivshY%?pZSUZE^-M$e431WCTj+#s(6=V z9(9EuNP14yx<98~CD3@~P6x+JA?`}SsrjO!+ss=v!H|-ApeJm>V#2S`M+cznYl+VV zDlE}<{L&N!D$6cYbruU7(wVco1kw`gk@ja4_MUt#PDT*TFbc=O6i zo-FCh0XQj?H}u`%XY)0!NmJz{V!a-%G84F~GALD-RRXg56cWeRYib9Uy@ZuCEsO?j zr_3)5YwO1fwQ_=`=))2G%Ss!wK4P^W zx#}`copWi=(rnAoB(YEVzIEBSLPeCq zERP2Er+Kdah!k+NaTEg^gs!WigdcF#A~D#(fj1dD7bitw_P+zr=8tN|+kODwHC7kh zn_$6FCO4Q-F(S2=k?2dJ&*P#oE}ESfL2Rh2tcll?GOKdBHAhK#$xN!9af2kN7jD*t z?&9R{?g_Jhj@X{i&hhIp5BI%r=uD@x-lBAkw$r^xh@RQSmAG3l>C>59>Qa_VTv>V3 zs1iR{-5*3zK%Dnj-mgm6*^37VUeP5|o<38l>bF;tvtGe2tEYS_uwR4TS$p{Xy6>Nx z-ApK`dkdo%tkq>tv!UZgZp{ziMuE+Qm{o;AUe(aY0QrnOyY}}IEKc4Vp4=Kkldj@J z`3LNY%4e#wVOvZS7QB}_d*mWYSjyz*Zs{>DE@iTTDj58JqAY-at zWNSK^;y2A!mLKQ7ee#6pbdoTxF%Ic&OOy)(wp^CV7iN(+zmkydoeXjfAGLsC5)Kp) z(1$CcRtYhMtU5}s3bo(QLN{x?i23T>+rjRKMfk-R-t6DdFeiOlb(jiF$b{GKIhRLY z;F3mF!ezc~?LSASjBXsH)nYvam0xB30A038Ps-(WVpf>Fg`BTf)zwV3Zb>KL*d40c zo`RVUfGgkY(Kv3=JW2H32K-d)D{w!aWt^<9e&t%(0)hS_IZn+gVu=mpS@@SWwX660 z_=bz9B#xBntjxcGq3y6+0p;livDsaPqZ3hjIk~`4^ZS=#DoZ~oQQUqgP1GIX&7?A5 z)8?rwy>+}KlLXih*4|i6`XK1S8^Il}6gydaeIF}$gFXgAst^(i8jj(*Tftzc z$GG(}9)$?A7~nJ(OIrBo*1LbKk2|zi+goo*oP6-@JvVgob^bHN0Nk+RpDwCnZu%E< zP_px}#n@OoB680M|3Z{O8j5t&3ZPBr#|H9UX{LxMpt8&eUM2q2uqOQp=ZpFOfu zFn(=;yle=n?LN^sBuirM<2TJ`lB)Sw<#|4O{n5qD+bij*)*|Sq5zkStz>0{n75ykl z)CCSptvOz<>efT&VAt;|>I0n-esvO^j2d6DaqDF=PE+;u*!9Oh(jWT-vX)tL;|Op* zci-T-;H1Sp=KI|$AMDqwpQw%emOL&|5!>kF?N`?Z@v#iFJ+C(@U1vssQHyZMaqDTscb9HyTq3AFygzw|re3#IK~mA?4iz=5pW<9)0857nskC9T0a~ zn(J595Bb<6;s&dWh)ph+CWx*)arSDF5Y4*ENX{~WV5}Bu5%bpxusWC=^VZ7I@!|Ke znGGVUlqiLev)WRz^62TSuLqdF#7>+-yLJ<>Uu(l(3HTlN7GX?r`vAR;Og;OQ;lDqGDA=v znxl;L9K)8r4Rv$UIn`mPkEE1dOzM{9kKym}gGGujl^9Yy9iB^=s*2oL1je^`lFqC> z1>$tuRKD;KEP!hF0&bSoQ8(ZxMi2xxq0+?YCk-9Hl5L3)q$~syI3;Hl z1`UD`8VvcOsCyu-^@hO2x?Z!-kQpqHz#G0$8n3CQF6~(!sP7{cuXYP^O1=m%Kda~J z`-r+qH4_M&V4gR_TEu<(MrG_!K;!`tllne5SM}HXkz+JzFkNt)$f8BL_hAWVO2gx zsN$XCzf0VC95b3t#7R|cHzD3{fr!c@4Qo$|C{+LwlWx_|l@eu7?cUb|Ro*iFS^~IN zP{t}0=LeMr)=l)LaY}H5Z?M3g%bYyfqY^~%16EGO$!XK3$2=X1o4C1VBCD4kSL$u# z87sP66@b=Y6zI~QPi(SPk>G?{zb^RgaPwwwQ{;o%*1{0hLvU=>BX&@bRC=#2`-ms< z&l6S&%%4?2v9I;>6k*qa;Z)@+tYSFmEYaOLWRm8uxGhPPeQpGcG7zqj^+wRHD0gQ0o$?+{9lrr|TB|2J7VF8X#(|goeOuTgR?v@CeR? zslD|;1f2Ws(!zMsT7*Jx0B%wJw8_KNs8lqVa zjY*;aC@M#_3zIbto2=e1Zxb%Z9gekJH^0pys_!kk61~l(flpnB=0lD@!~l0U_?kMc zS7E2;X%+2h&&qlZJyzJRUtBD-6k&VXPi46n`K;^5H-Bb};p!Rt5`7Yq^*o}1|KS%r zPs}bzY(3RABlGjrQP(WY=FnaM0cYMuyafb_sqH{0UFC&CU6L5*{U92Lb=?vrczHJgtOi7h4086~p#8na-FmL|f` z$b2<7{iXH3nl(57&Y;}2X*y`WApc|NFsWjPJ_Kkgu@LZ)lD*R%WUy4xIx;jSX zg80H({^bHU!g}s_vY@tuqNcE35Ae0}%V$|jV8yFjQ%8Q~XOR`TsyoHCH>$ybd5~qP zX#TX|2p_WZMTQ%QXKerm0sVac*7itA)zMBR^#eNmgRPkA|2}#-0$R|4>uyFq_T8U- zw+L1surkR@fI;|Ipz{2-ZAW3r*lBbQ)Oa}RY;xcCl4@^ z5}Z|CGou(EMb`Nq@(kqJVe5K$v-Q85Y{a`3AHc~0SHuK-tQHUoB@dh%<9+&p61yWV zR{5OvCJ<`M)(C4tjRFfq8ZMB;omZRl-9mslAoF;B$afV=j%=FIlDBV%Bo*1mRg+65 zDjv;>;(5rV#b({{#?%1<@g3J3@=UR6&Dxt2-JXmUACxTowq9h1?{kg z+n&>9j5)gOjokbiqr%lV;e4Cyf7d((9kLvOE@Ml{0(od zUb47cWD5s^Rzm+8vNy_P`tjpIA*f|qgcR6>pF^4PV4I7^m%1QAU=@sWJg&Oqhuup3 z3xgXzJ*mh3@$$MRq3b4Sbs;{oH!Tr@S z%8UYMMCv#I+J4YNAxBHRvnC5u^pc&v2BT1#JwwLuKufD%kp)k- z6SAA=gp9vHA^;RSio=#{lnKM?TUOv$KQ6Qs3c~7@bESN+4-&M~~k3sBnpvT|8?MMI0=}$AyL)kZ4dS&=$2gf17Um$`vHaR}=1HoQaK!$45M0S$Lrt<{AMT3Q`MPh=nL&$Xy28 zwmPBqV1-w-U)h^QUc^B_-9-;sDj=^!{m@@nbBL{S#i$DXB9TVzWwaCMz^{|+EA3={ zw58EA7OEc1mUcp58TNNRhNpoyG2IA!ry-wydtHAqMFE%t*b#UbzP14%^?Hx2zlwlh z<-1D6^Q%c@2O3^l-R)mrV8%8ZFKqJ-6VwM9W)RjfGBh{0`0ncgOh_~6ch9l`tWF#* z9Sg2?Jmd+Sd(mQz8iu>vMKu50(1ii3i1%g^*wA6YbPPKVo-Enw%Tm`&nSwJV^3Q3$ z8nt`0AoZ&e=SYF8)>q_fjqifnff#6AXxkW2$2lU;Q2oLuo%(f1nds!Iicg5!L`;LT%3g(ua*9Ypn@=Xa|aE?I5YS4fl_55o4@(*O+Oz7 zWH>t0>la>Mxld>MNFxu<8ctc-iYEE&1+>bEGG;Yw;}+ z5Z>E;t%{BNj!eEK5^E2t__$VWa*G!5($2d!-Vq-k6}S{`EL!9u(5MAbTIz%#xZOFb zp|B6~ZyEXoOF6hWrpk2AJEB_3oQ);>J=WU8Z^6I%657;rGc+wHEGfvXe)|sRjMH~C zQ{B)#Tt1V#>;teI#KqLs$SFe0P0ZarZ1xi!giOr9M0qY@LiW?^DYc+R-{x=7&xj-{ zJu&3%t5sJ(y;u|i)3g~8ZxnEy>x=R+&ml0pgciOt79sGBC_cV()zpllszB@7K7NYS z$CH)Ws6JodkL9@z78Lu3bX2%xVPZ5o-PmX+M*Wq|4>z~YSN)nT4rn=c)Zu$`Zgs_* z!oxzCv4)RxBkrXL3@-q>HtUm!dl~7^Ag5?&gxyq ze^cu7yvB!BckE>Orq(NEw;3}s8?XHhmN4g!?mljEjXvdgyweLKme?~2%(4;g*r}9N zd7^LG(yl*jDLXpbp~IF)oGYfZ3$F@v2dQ2!%`8rZO`KG-!LH zh|(hf*(xCzKC!2SBAAkmX*dN2o>9gDuSzt?~^oj*I2Xq;|fx0)2=( z7T)QWNqBRo>B9ula0aKM12I6+(gbHDaDJIjbTxNZFL7}(e#Wfam-B@K8n~q~b2fRH z+kwvE*f_xbVTY2maeUSJID0OEKcLi?M84Fmzg&TFXkk8`Lnit!qjE9scM)8RM0Tt) zX0BFE@jWyN;)p`y^~zdvNEy`L3@@}fIQ#QQYs4Iatuo{1ZdP+#HD=@#oSicpVx%2k zB3Z6T{s{o~IS7@|G#RJlcQK7wV2*ISYjc(*Bzp*~34#1P!_)762eQuVfIdOzo35T$ z3NwwbG@PyjlQv%}gK7x{bsK*WYZCk{TH*!(%H!OG+60ELC7f~25?& zYb0Rztb)BaR`0cF%+sPfsh)%4h#Cm*@yRgeLr5tRN)N^(nRS`HbN%U+UW}cSs*17r zK;nC4%Ngz+#8Can^lQ7Q=J(9VhnSg@C5x_P78_e_4Q;4TWIO;a7V9WCu zkkvS#!R+776i;G09qi^BP%$AdaH}JX7l+|g8L^YD`AbnP>SE%Xhfz~lA_13GvbbM| zRXd_u?C8l_M|{Bz$GJsVb74DMUtYuHSeb>zScMj=CB9JIAe`W$Dga#;7h%VjbYNe! z_D+--s%7Ft5%J|FE1@jJs{CuQ)ej4&-$G1eDsjxlxZcu~BZeU+pLWK+$8R$y(NLpJTMAo%pL` zmM;S!PQF{t$8C?Bz&-2^u!RRAwpu?sxCo3=a51VW)6Eg=V6H3eRW0L$gxnwJm|yIB z97(5>{H0tKYwPs|IKZM=MSvPRs*j4I?$3mZ0l8cniufg4EVi0n`OH5V_tSW>0aU26 znL6IZK6l#)yPYrD+e;tXMAvO^W^OKUMVLcQ+Mumu=?jghl zK8m*h-^8?-PQMn`@tS`+v1}F7?ZFg}TmV<456X-P(4HpTH+V55EOA(B0C|}x0LVZ% zoE4&V?TukC23RR4C>BmoJ=syS79m{P^|Byp0>=cH0U2>Z!<-@(mzGkdYeeV-k-&P1 zQZ@}A?`H3lEk^HFaac?l&}xl$N4m~iwl{pVX1ye3S-j%mqw%bW@k4dB@zd)8xg2RW z1r^<@nEB!-=U)$4xbPi%e4Vgxi9IpR`!<>rbnYPuuRqK}moeraj2)`qF_WU8Fo3B! zKRwI4%bK-Y`xdU^&q`hLK>d5^cb9acc5ojcX7#_yGUxTj5r zKOQ%2!4n7km8Vq$s;#pvT&2#zXtDyx2-v-)T>xy+b()6bIMa*oOyPEgu3?AROfjs* z;9D^0@E)ti$XbMKx^YwOwyQNvx9!jzy%t@r&T=dQQhFR@4Oy6JT;^~%>ZQY@9mIW8 zz0mSPB9v&Hqw)Z%Cv0Y?98vMi$Y^xmig zJsSOrzEG*Gx~-dq{#qhdV&OXUSkvSFmZ(|>? z`%$wEIp(l$F6*~^Pf-uKcVNQ_2?$*1ci-2metYSU*7h0CvSHV)q6;X9=2b^Qo>% z*D;w+6u2Vi=pFPTOE4FJH6zJc(E9*-SGiAC?(85p(DG!&4Ys2uU!?4{>L=`-|tWSi1&8@sAA|4~yk zN_gorvodhUolk1T7 zaa;OZ9I+GEj(U)bWS8&1R0u|a{yis0#<=s+J5i2r>T;%vhn-l+vp1K4Hhlu+n+Y$3 z>J%mmEDdGlKwG(95)+fCumP45rf>s9dkoHuUcJ3q^odBQO9XteieMb<$8LJIY7@2v zvYmXHed8A%zwp2wrE{*8s|aQIGQTmy0Z_Kf5bj>99w)E$73#PK4bs05$ZaWEAUO zSr`zca)Qla;&TRM#bhwVhXXaJ%^4Di;|l>pFU8@1#T8kHXQnp<0a8_~Y*V;ABeoSH(cMOXC0qhUqk6J|79f z&^=M@+OR&6Ery~D#5z4h{Sv~E4NNR6R=M#lYC4dZN3X$BYX(!e-$l~(Tg1DK#TbAMGLN+w6`@Q8!y#1YA=ZE;hs zUThPFMb)Z$7<9_siSnIkK(!hcZ6~v1_L2Y?2DhTnu%8uJ)uJ%;LGH^rO$Oog8k9Mj z@JKATaUaroxKKR8yK4<5tGpYB>3)rAUW4D=nLwI#(;Q@kFuf6_atAMyslJ9~P*_Ev z%~s6PL0w(jB34ihUj7L-$1i+qH7Tmy47JQHfp&^ma)d|hL=0c)-1Ll7>Iz#6#S*A`eg!orgYRJaL650QfhGweFzM^n?&DuA(7J4|R< z*99>d#MzSUFIR6*d}nLmiMFlc+LqeR0u0OZ{L_`9w2(2Ni@8&QhU5EG7`uht*;kpi zP`^1(q*A#v#hEH_^(}g&`C~d38#l+oQ?Xg&9uSQlI-;17AM80Q+F9%$8?CcvP z-H(Jv*-h`5G96b=nchT-!Z!oRNXs9o$#NA+53j)jA5|a%GfYL{8V?8yR}o6mgmQ5P zf|T7O5=G2P1&jd)GufT{Hb7cCsLw+KR2gil6*|yVo+AZ-^M!k9%kl?UB6`W3TzgoX zC<`I9ULa&B+=_;3Qn;F)^pxSs#FUu~$i_U(0-tg65G2W5TvC(95o-AC+wxsiF^(r% z+Yg7TqU}1bQ3A$N*}c^5$!HCG63S6*(6{rEk8VfloeM;m(P{YO&=BKs14v zLrFvh)E4rDtOUqhX=$@j7c5Cr28uH#GaeeOK7&H4pF0%aPLbDE5a3T0)oom)$(_bhpWh#~{RgX!+s!0)s4;vE&w!rehG)KNr8}8_w?P^U4YfE7b zK{*nS?D<{NE|nv)yW5~LU-!|E0g+nY_nD!N_lJkc>r3~nTWrUwfhWJwbL@BrV7-=B zdZvlOf?ss%5v+(*?sY0)F7;+T&0@VAsu#Y3i(L?el`yk zGea`sr`&#cp&&(zsR1MOO?d@m8g240!2kE)~Jrmx}SPiEEba_p4b}@s6wB*WfF|@Od=5&^mm=`yw=a z&g>%Ha~;_E*+OZR6ApW^m@ zCSrk|D+Sc6Zxo2cH4(~4yX#K3QD89g;1O?ZdreYS)gm6d4#~7%qWxS(1Y%$SC1p;l7&ijet`+}qC{$aNDMd@X^+Q zNus)fs+=*W+n9^v@;=ocRVfU1=Sp(myS?jDwX6nNCimp64XxE`$8uuJ>k@|r&tebZhVdJJlU+^W3>{C@j4AKoQiK5KSa)jdNN&KPOBy?N18 zc1Tq}E_?OOqL}GjO+x81ymP1`=Ql!w%*E)>tjbJK43RO^9;m*bT%?0-#A;a z4O5j!KG1Anlx7Y9s^Q1>LGfJ%1A9bv?uBTFbh(hC86eXz_&X?yb8)zcwQ4QQ%yf}J ze5A5@1{d|ISPHiOzi+-LvL>Gu+mfLYM{UGk%9Y#k>P;;BDBtkSK7BfN z&TrIU*Ai8kBNg(Q26pX-y`=rjLUy}>ZPNi!0}!sj3Jpfmw~wiTh-4sd`w&R`8FW?) z`0NTc$};h9$$)*&t2PM36F3`GDRoIQuwIs~=Zkm|^A-KfiSS5Gk-mzG@H2Nqg9d zY!hiJ`Vg>vmdG1y)W!}nFyPG|S$x6`GR9+y4kA&0VQbsOhGMa%*e>=gNh#G8(|)DN zu-lD)zlk&e5A&jASl$(}v5GTwX^fN)ikR->MVR=UfntgELlw2ycR1Ef*Mc@~sgs z(Y#KlO6X_T?U{v8P|cn;u_eA>Q>6Zq6W8DJ2Ml_gg70M^e0Ak@NmF^61116jqSZd^0=Pp(bpSk*X)|sLwq;<+m{5}-sFA6HYVk@0iNC9``@VG- zn?H4^-ImV=)Ib4{sN1KHwy>QryQ`Lq)tlBdS~>s@IZOo+RM(gcE8v1_R7}5hkEMgB zgMt<0cu>D%#K0emH$aNAP&yYA$!j?xU9n>JBh@x+%MAw7U=A&1N71$6iwp8v58R=O zwo$X4MlrdkBcWmAtIp?haDJo#XP6`UiHLss?LPs(#v{OdiR2<{QHbnKywXT@hziyS z!k|zRR?Ig;4<^sUCc6#8l)x7b_H?bo*CdZAlhMB&DEFKZ0w*GPUr`U3RidX}MBtl$ zR(@!LeUvcSv3q!2Mr6k)L=o5$u=#_xJzh{QurQ zKnXZ;On8w&|NkJ{Vld`4W;zY4dVR@~X4+@w6gus85y<(aO-rmM-oj0iPd=v2^58E^ ztE~4kGXoqBO?WG0udIu;nGWvD3@vCZ1mt^8Q&W@K#9UXh$0cw9*tl7dk>Iv7B6l^i zqca5go}QkRX-SpxJ-gr0Uf+}Z_Z66X@L3u2o36r*?mrtgs5gw6lzJw7 z{tC}K00(7K&ev|=`X+t-fjsiyV<0`UhmS|?4ha*EZc`*MRMJt89g`FQKDgg){q3vIGnbdpRE zC;AT@H!a9|Y`^e%QK3Vx&`cRQA2P)g`e)~&(VD0F2j$B%LH|H*di3bApZYz&od4(g2e7i{Wvu?G zT9D1AtUVyp>qicK|A>X$53+YxS7;;1R+CXy4c|xiui$uv!fblwChfYT`@@Uy{Z^AC zmxS}vJ9bDoaDBgNQ3E~xKLY$QBt!i&|NoQY``Ph8(&HW6yieEvpQ&6zM;So;y^oYq*}?&y*yPgOtw*xWj4vp;`HgYfym& zYQ(^QtE=F8AQ=0J?<0ZU13omCQw9h5Gi$&9^!NEm{a4cZITGGMZKwB_spL3C#SnCV z0DX2QfD^tGT$M?H0)vEhm@wMt#YFDnNZS*TWx^)g;jVMRXmWl@T1nnEaqsAH8GSz+ zYU=@@?MZ(~I}ca>V}JNX|IjS|ck{=j{`b8c|784=H(~I?LF=az;(q5R^qI$?3rEuH z!-PI#_ChfmTIM95?7e+@oi97jsq9o_*!$I0w<~Y$6@A1UsD@H$$qIiXT+cWH5oOQQ zN1)&m#4TEBXIlwl0vQ^oh$g$va_{OV`vbsiTBy75Ga&>vLWZ9ugE=R+FePV}lT?J?TV zS#bJLXxTMIsfql3^hSg(lQFj+33}@)U%=SOES7v04#wgM2Sf6u|JK?^m_3 zmB8|pDFXD;ReHVvgVRj<@VGf2AEx^s^oM*BJjFg^KX^Zx|D*oX=i8s#`~SoIU#G`q z(BCL1jz#}V_V6%!tUpTIcSN#jYwX1zq0pYk+nJ(j=npN=t&VLYqbO1H)-wx0pHSzi zk$fon(of9Zx$H`o#0njv_v`5|gp0nzKB`%`JSu^5yaoM7^W#T;^UnicO-Mrm*`}U~ zPxKGizbK*H5%tH0cJnflae97e8IDtt*We`j413&k1l9w0z%a{Wjj!a1=>Fi|uu{=Y8uxFJ zUwi0rx+!$L#l7KnrArtFCc~AQ?UMH#lNDs!D)g zzv0n^foT14(iAPQ-XmnZ#G}`LP_K+^o3sb$^Z8&8!2B^t`x_?b4~62H_PI}9=!A4k zTK`?4pnmx?=a2p()8p^|-9Gqd_5Tn1H4-AXdcs8ahgjg+se%0@tWTi2|K0!dbCa7U#_J=9 z;!lp(PI5AyNyiru4A7r}4E}{YAmj)865i+M)_y>T?JfWU1JuU9+zCRAbz+u-PXtPM6ICK!s=ZSJpel<#)MT(N0V=&=H=$Av; z4_Z#z^6c|}ZgThE!(KZiFtT-)-o!VXPHkAz+Rn?qetqwZaZ|TCx_Ya87Lswx?hy?!Q?P|e1>;|mg#NPPUz+%XYh&h?}B`2Le@{n^!cwr?mLqS zqr#1#+b0G5Fnx6UQd|I&()~e!{#m*A481Bd{ORYx{Yul5_kHTN{#WIHyP0+w3R}U4 zUS`;EfSU-8BjL0Rf27iG=-)B;Y6^1qTn7nZiE! zgCMU177IS~{ZK?s`EP&Uf3w?qfV^4Y*X??1B8Q2&P(5zvVi72=y>;<`VMLB+@E8Pa4kI@T972()=DNjopFtwfBbM) z=z+|+QD;b{%j`FbA}e9pi;-Ug+To}q(XW$4@4+&&e8q|tKX?6;&-DK~sMb^m6YEpA z&52HAhhfRMx&7PFs`yyt8S*2+oTYiE=-=xni)$e*V6}mzO^1CG6k?pb?oj@;|F2o| z@9+Or&zM2~syy-gfkA?vTs=>Ae% zesx{mWqQ~m!ePW@;~vC)B@iH+0>4wkBWFx>CWmCSOzds}-q=ougiO)lHh-$;) z7`2h2s&sj&Gy5Ud*%hi2Lp8k#`ld${*%eU1B<|VgJuCCT6x1WsM?y?-Sd8-FRV zDh5bBL!P%UgPzS36Q~S|4tlpL=S?)TA~C6(UOgZ$^l7s``&hE`z|Q0|%pG*n*x1eb zoQ@MSqkr{Q^gP-+iu%Jw^|RO8BL;1j_MJdKF3%}UJqed>3@jDXUsJ8U #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 086/111] 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 087/111] 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 088/111] 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 089/111] 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 090/111] 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 091/111] 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 092/111] 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 093/111] 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 094/111] 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 095/111] 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 096/111] 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 097/111] (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 098/111] 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 099/111] 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 100/111] 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 101/111] 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 102/111] 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 103/111] 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 104/111] 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 105/111] 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 106/111] 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 107/111] 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 108/111] 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 109/111] 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 110/111] 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 111/111] 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;