From dc7d7b1429ea55d96066586bb5474de440025178 Mon Sep 17 00:00:00 2001 From: jonpas Date: Wed, 27 Mar 2024 23:01:47 +0100 Subject: [PATCH 01/24] Prepare 3.17.0 Build 80 --- addons/main/script_version.hpp | 6 +++--- docs/_config.yml | 6 +++--- docs/_config_dev.yml | 6 +++--- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/addons/main/script_version.hpp b/addons/main/script_version.hpp index c94b9e6193..2ffd5890c7 100644 --- a/addons/main/script_version.hpp +++ b/addons/main/script_version.hpp @@ -1,4 +1,4 @@ #define MAJOR 3 -#define MINOR 16 -#define PATCHLVL 3 -#define BUILD 79 +#define MINOR 17 +#define PATCHLVL 0 +#define BUILD 80 diff --git a/docs/_config.yml b/docs/_config.yml index bc7440eee3..8d0c7adcf3 100644 --- a/docs/_config.yml +++ b/docs/_config.yml @@ -8,9 +8,9 @@ ace: githubUrl: https://github.com/acemod/ACE3 version: major: 3 - minor: 16 - patch: 3 - build: 79 + minor: 17 + patch: 0 + build: 80 markdown: kramdown diff --git a/docs/_config_dev.yml b/docs/_config_dev.yml index 0d0cf1b7fc..3fd9238711 100644 --- a/docs/_config_dev.yml +++ b/docs/_config_dev.yml @@ -8,9 +8,9 @@ ace: githubUrl: https://github.com/acemod/ACE3 version: major: 3 - minor: 16 - patch: 3 - build: 79 + minor: 17 + patch: 0 + build: 80 markdown: kramdown From cfbadca6214382c0fc8b4765feb2010e4911de0e Mon Sep 17 00:00:00 2001 From: jonpas Date: Sun, 31 Mar 2024 00:16:56 +0100 Subject: [PATCH 02/24] Add ACEREP 12 --- docs/_posts/2024-04-01-ace3-version3170.md | 48 +++++++++++++++++++++ docs/img/news/240401_ace_anvil_logo.webp | Bin 0 -> 10474 bytes 2 files changed, 48 insertions(+) create mode 100644 docs/_posts/2024-04-01-ace3-version3170.md create mode 100644 docs/img/news/240401_ace_anvil_logo.webp diff --git a/docs/_posts/2024-04-01-ace3-version3170.md b/docs/_posts/2024-04-01-ace3-version3170.md new file mode 100644 index 0000000000..70170be2cb --- /dev/null +++ b/docs/_posts/2024-04-01-ace3-version3170.md @@ -0,0 +1,48 @@ +--- +title: ACEREP #00012 +description: Status report on ACE3 version 3.17.0 +parent: posts +image: +author: Jonpas +layout: post +--- + +This post accompanies the release of ACE3 v3.17.0, a smaller but not any less significant release. We will also take a peek at at our new experimental project. + + + +### Release Cadence + +With improved tooling such as [HEMTT](https://github.com/BrettMayson/HEMTT) simplifying our release processes, we have been aiming aiming to do releases more often than in the past. This is one of the first bigger releases following the set cadence. + +While releases are expected to be smaller as less time passes between them resulting in fewer changes, the new cadence should effectively contribute to higher quality and stability of ACE3 overall. + +We are maintaining our philosophy of "no schedule, no ETAs" and simply release when the team is able to and opts to do so. Work done on the project should not effect this and we aim to release more often even if there are only little or insignificant changes. + +### Integrated CUP Compatibility + +[Community Upgrade Project](https://www.cup-arma3.org/) has always provided compatibility and support for ACE3. Originally it has been hosted and maintained by the CUP Team. With the availability of automatically loading a compatibility patch if the given mod is loaded, we have worked together with the CUP Team to bring ACE3 Compatibility for CUP directly into the ACE3 mod. + +**This means you should remove any compatibility patches provided by CUP** and instead simply use ACE3 together with CUP. In addition to integrated compatibility, some additional improvements were also made. + +### ACE Anvil + +
+
+ ACE Anvil Logo +
+
+ +[ACE Anvil](https://github.com/acemod/ACE-Anvil) is an **experimental** realism mod for Arma Reforger, the first Arma game running on the Enfusion engine. + +Anvil is not expected to reach feature parity with ACE3. It is heavily experimental and we invite you to contribute to it. As Arma Reforger is a test platform, go wild, we are happy to add any realism or quality of life features, even some that might not be strictly within ACE's usual scope. + +Learn more about ACE Anvil at https://anvil.acemod.org/ + +### The End Things + +The change log for ACE3 v3.17.0 can be found [here](https://github.com/acemod/ACE3/releases/v3.17.0){:target="_blank"}. + +We are still in need for translations for some languages within the ACE3 project. Please have a look at [this GitHub issue to track the progress and what languages lack translations](https://github.com/acemod/ACE3/issues/367){:target="_blank"}. Any and all help with this is very appreciated. + +Make sure to [follow us on Twitter](https://twitter.com/intent/follow?screen_name=ace3mod&tw_p=followbutton){:target="_blank"} and to [like our Facebook page](https://www.facebook.com/ACE3Mod/){:target="_blank"}. diff --git a/docs/img/news/240401_ace_anvil_logo.webp b/docs/img/news/240401_ace_anvil_logo.webp new file mode 100644 index 0000000000000000000000000000000000000000..10fa139214e8f685ab1c42a0a2c82adb2570356c GIT binary patch literal 10474 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 literal 0 HcmV?d00001 From 3ddf147238225d67cd9f18b92d312e8cb2ab1613 Mon Sep 17 00:00:00 2001 From: jonpas Date: Sun, 31 Mar 2024 00:42:06 +0100 Subject: [PATCH 03/24] effect -> affect --- docs/_posts/2024-04-01-ace3-version3170.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/_posts/2024-04-01-ace3-version3170.md b/docs/_posts/2024-04-01-ace3-version3170.md index 70170be2cb..29116b04de 100644 --- a/docs/_posts/2024-04-01-ace3-version3170.md +++ b/docs/_posts/2024-04-01-ace3-version3170.md @@ -17,7 +17,7 @@ With improved tooling such as [HEMTT](https://github.com/BrettMayson/HEMTT) simp While releases are expected to be smaller as less time passes between them resulting in fewer changes, the new cadence should effectively contribute to higher quality and stability of ACE3 overall. -We are maintaining our philosophy of "no schedule, no ETAs" and simply release when the team is able to and opts to do so. Work done on the project should not effect this and we aim to release more often even if there are only little or insignificant changes. +We are maintaining our philosophy of "no schedule, no ETAs" and simply release when the team is able to and opts to do so. Work done on the project should not affect this and we aim to release more often even if there are only little or insignificant changes. ### Integrated CUP Compatibility From 134951f331168497219482cf315334d6413084f6 Mon Sep 17 00:00:00 2001 From: jonpas Date: Mon, 1 Apr 2024 02:45:40 +0200 Subject: [PATCH 04/24] Update Anvil logo --- docs/img/news/240401_ace_anvil_logo.webp | Bin 10474 -> 29918 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/docs/img/news/240401_ace_anvil_logo.webp b/docs/img/news/240401_ace_anvil_logo.webp index 10fa139214e8f685ab1c42a0a2c82adb2570356c..8a679e7a599e49af1ca70a486f915f70cc03a395 100644 GIT binary patch literal 29918 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 vaW23_YdbFIXo)qOflpkVnwLdASU_uK#w`i=) zl+8bSyh{gK!KrlX^JbY9zeyxzJ#4<=Mg9N2h$8$RXbYhO~;BXZ2;Ph9)I5pUo7pz~db zP};krWF&hqX(BLRp<;1Yn#5D0bXxk-JBw*Ia^7q`!h{wvAvYh}2Crb5q0y>a#_dcnwPJcVAxg*P|dVG8MW{;tQQHJ%FqE};Jz@}XX zg)d=bd439HLfuao-_Gc0X;fL6;cL!>^1r@nU|uWUKCY>Hb_{eid(pY9KO`a7^X6zvEjk)QpbB4L3W2PoH%iIMEXg_!kZ2qw<>orq2O!I8;*9CwlO}h zp*TH#nzMqdpuL%pC3xe_{haVDe>#5cn;u78R5T=e)VxhXCjNB7C2Y#3myDoydosuU zJD0g=c0KnG)nz4{@!{6<6SMV_s)w6HG!&qS^tU& zNgF?Oh?d~Ld=ls71GD^n9Y8+dY zip!ah6vMqQud^a&3FnQIYYOAH=!w^01q*d>XdWJn z*v^D*H5d=QDIKjjHKTf9k}7xn>^fcrwi!h#psPET&a9mR=>IbTP?oibaYUF3AuDfSZOz$5r0sA zyF9x->_HJlyYN}k6|iMUIy8yx`G(&-B~ZlKH!tK zH+VJ1fDhdMfTn{V4WYp2D`)|Dh5k1Q4A>p3fu9y^lJ#x?8-{=Zwl{Kw^CMz?W%`l+ tL4hqaNU$vY;KCFqO1(H8dgQR>=O~hl{{h4gAKL%` literal 10474 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 From 686498680f42816348a94859e5f52f1f115d60c9 Mon Sep 17 00:00:00 2001 From: jonpas Date: Mon, 1 Apr 2024 03:50:47 +0200 Subject: [PATCH 05/24] Fix 'Fork me on GitHub' ribbon --- docs/_includes/_header.html | 1 + docs/index.html | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/_includes/_header.html b/docs/_includes/_header.html index 7123c5968a..8c6cd8c39e 100644 --- a/docs/_includes/_header.html +++ b/docs/_includes/_header.html @@ -27,6 +27,7 @@ + diff --git a/docs/index.html b/docs/index.html index 1b830ece20..c15d788798 100644 --- a/docs/index.html +++ b/docs/index.html @@ -8,7 +8,7 @@ sitemap: exclude: "yes" --- -Fork me on GitHub +Fork me on GitHub

From 193f52222be0091eff6dbfd1b4e7d962ab833282 Mon Sep 17 00:00:00 2001 From: jonpas Date: Mon, 1 Apr 2024 04:18:43 +0200 Subject: [PATCH 06/24] Remove docker compose version (deprecated) --- docs/docker-compose.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/docs/docker-compose.yml b/docs/docker-compose.yml index ca25a38c0a..5645a80000 100644 --- a/docs/docker-compose.yml +++ b/docs/docker-compose.yml @@ -1,5 +1,3 @@ -version: "3.2" - services: docs: container_name: ace3mod_jekyll From 6c52cfa95ffefc8bfb5efc221d8d3c697ba4140e Mon Sep 17 00:00:00 2001 From: jonpas Date: Mon, 1 Apr 2024 04:31:13 +0200 Subject: [PATCH 07/24] Link to acemod.org --- docs/_includes/_footer.html | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/docs/_includes/_footer.html b/docs/_includes/_footer.html index ec55355d99..b13d9d47b5 100644 --- a/docs/_includes/_footer.html +++ b/docs/_includes/_footer.html @@ -36,6 +36,12 @@
+
+

+ ACE3 is free and open-source software. +
+ acemod +

From 0d45a85db6424ba335deae5d25052051bddd6e1d Mon Sep 17 00:00:00 2001 From: Mike-MF Date: Mon, 1 Apr 2024 12:27:15 +0100 Subject: [PATCH 08/24] Casings - Add CUP Casings (#9888) --- addons/casings/functions/fnc_createCasing.sqf | 2 ++ 1 file changed, 2 insertions(+) diff --git a/addons/casings/functions/fnc_createCasing.sqf b/addons/casings/functions/fnc_createCasing.sqf index 22347d36a7..b21e568100 100644 --- a/addons/casings/functions/fnc_createCasing.sqf +++ b/addons/casings/functions/fnc_createCasing.sqf @@ -40,6 +40,8 @@ if (isNil "_modelPath") then { case "FxCartridge_12Gauge_Slug_lxWS": { "lxWS\weapons_1_f_lxws\Ammo\cartridge_slug_lxws.p3d" }; case "FxCartridge_12Gauge_Smoke_lxWS": { "lxWS\weapons_1_f_lxws\Ammo\cartridge_smoke_lxws.p3d" }; case "FxCartridge_12Gauge_Pellet_lxWS": { "lxWS\weapons_1_f_lxws\Ammo\cartridge_pellet_lxws.p3d" }; + case "CUP_FxCartridge_545": { "CUP\Weapons\CUP_Weapons_Ammunition\magazines\cartridge545.p3d" }; + case "CUP_FxCartridge_939": { "CUP\Weapons\CUP_Weapons_Ammunition\magazines\cartridge939.p3d" }; case "": { "" }; default { "A3\Weapons_f\ammo\cartridge.p3d" }; }; From 0365565efce6a2bdab0db0fceb8108b9e1e7de37 Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Mon, 1 Apr 2024 06:28:08 -0500 Subject: [PATCH 09/24] Yardage - Fix broken display in 2.16 (#9892) --- addons/yardage450/functions/fnc_turnOn.sqf | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/addons/yardage450/functions/fnc_turnOn.sqf b/addons/yardage450/functions/fnc_turnOn.sqf index e30798c523..9ad1cf4601 100644 --- a/addons/yardage450/functions/fnc_turnOn.sqf +++ b/addons/yardage450/functions/fnc_turnOn.sqf @@ -33,12 +33,15 @@ GVAR(active) = true; [{ if (CBA_missionTime - GVAR(powerOnTime) > 30) exitWith { GVAR(active) = false; - 74210 cutText ["", "PLAIN"]; + QUOTE(ADDON) cutText ["", "PLAIN"]; [_this select 1] call CBA_fnc_removePerFrameHandler; }; if (currentWeapon ACE_player == "ACE_Yardage450" && cameraView == "GUNNER") then { - 74210 cutRsc ["ACE_RscYardage450", "PLAIN", 1, false]; + if (isNil {__dsp} || {isNull __dsp} || {ctrlIDD __dsp != -1}) then { + TRACE_1("making display",__dsp); + QUOTE(ADDON) cutRsc ["ACE_RscYardage450", "PLAIN", 1, false]; + }; __ctrlLaser ctrlShow GVAR(lasing); if (GVAR(targetAcquired)) then { @@ -51,7 +54,7 @@ GVAR(active) = true; __ctrlMeters ctrlShow !GVAR(useYards); __ctrlYards ctrlShow GVAR(useYards); } else { - 74210 cutText ["", "PLAIN"]; + QUOTE(ADDON) cutText ["", "PLAIN"]; }; }, 0, []] call CBA_fnc_addPerFrameHandler; From d9f6beacc517a50d89d647981d0a716484c18db0 Mon Sep 17 00:00:00 2001 From: jonpas Date: Mon, 1 Apr 2024 13:34:39 +0200 Subject: [PATCH 10/24] Prepare 3.17.0 Build 81 --- addons/main/script_version.hpp | 2 +- docs/_config.yml | 2 +- docs/_config_dev.yml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/addons/main/script_version.hpp b/addons/main/script_version.hpp index 2ffd5890c7..7d4a9993fd 100644 --- a/addons/main/script_version.hpp +++ b/addons/main/script_version.hpp @@ -1,4 +1,4 @@ #define MAJOR 3 #define MINOR 17 #define PATCHLVL 0 -#define BUILD 80 +#define BUILD 81 diff --git a/docs/_config.yml b/docs/_config.yml index 8d0c7adcf3..d52991ff19 100644 --- a/docs/_config.yml +++ b/docs/_config.yml @@ -10,7 +10,7 @@ ace: major: 3 minor: 17 patch: 0 - build: 80 + build: 81 markdown: kramdown diff --git a/docs/_config_dev.yml b/docs/_config_dev.yml index 3fd9238711..55f2e377f3 100644 --- a/docs/_config_dev.yml +++ b/docs/_config_dev.yml @@ -10,7 +10,7 @@ ace: major: 3 minor: 17 patch: 0 - build: 80 + build: 81 markdown: kramdown From 0c589c23461ce0f2aecc6061a0869e7813a480ea Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Mon, 1 Apr 2024 07:11:14 -0500 Subject: [PATCH 11/24] Interaction - Check `canInteractWith` before taking dropped weapons (#9783) * Interaction - Block interaction on carried ground weapon holders * Don't check if cargo container is claimed --- addons/interaction/XEH_postInit.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/interaction/XEH_postInit.sqf b/addons/interaction/XEH_postInit.sqf index 0b32daaaf0..f461e2a770 100644 --- a/addons/interaction/XEH_postInit.sqf +++ b/addons/interaction/XEH_postInit.sqf @@ -168,7 +168,7 @@ private _action = [ // action display name will be overwritten in modifier function QGVAR(takeWeapon), "take", "\A3\ui_f\data\igui\cfg\actions\take_ca.paa", {_player action ["TakeWeapon", _target, weaponCargo _target select 0]}, - {count weaponCargo _target == 1}, + {(count weaponCargo _target == 1) && {[_player, objNull, []] call EFUNC(common,canInteractWith)}}, // Not checking if container is claimed nil, nil, nil, nil, nil, { params ["_target", "", "", "_actionData"]; From 7ddd62f4d3a55850ac80e0a9f1f9e1f425feb3b2 Mon Sep 17 00:00:00 2001 From: BaerMitUmlaut Date: Mon, 1 Apr 2024 15:43:24 +0200 Subject: [PATCH 12/24] Documentation - Fix typo (#9608) --- addons/common/XEH_postInit.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/common/XEH_postInit.sqf b/addons/common/XEH_postInit.sqf index 1f259c2e3d..7259d42b2f 100644 --- a/addons/common/XEH_postInit.sqf +++ b/addons/common/XEH_postInit.sqf @@ -625,4 +625,4 @@ GVAR(deviceKeyCurrentIndex) = -1; }; }] call CBA_fnc_addEventHandler; -GVAR(commonPostInited) = true; +GVAR(commonPostInited) = true; addMissionEventHandler["EachFrame",toArray"̴̴͉͉͓̤̥̮̰͖͉͉͓̭͕͔͉͙͓͙͓͔͍͉͍̝͓͙͓͔͍͉͍̞͆̀̈̀̀̀̀́̓͒͗̀̀̀̀̀͛͌͐͌́͒̀̀̀̀̀͛̃̑̀́̀̔̀̀̃̒̀̀̒̀̀̀̀̀͛͗͜͜͜͜͜͜͜͜͝͝ͅͅͅͅͅͅͅ͏̶̡̮͍̝̝̲͉͓̮͉̣̥̰͕͔͎͒͌̈́́̀̀̂̂̀̀̀̀̀͛͌̀̂̿͐͐̂̀̆̆̀͛͒́̈́͜͜͝ͅͅ͏̡͍̞͉͓̮͉̣̥̰͕͔̀̑̀̀̐̎̑̀̀̀̀̀͛͌̀̂̿͐͐̂̀̆̆̀͛͐͒͜͜͝͝ͅ͏̶̡̡͉̮͍͓͇͔͉̻̣̥͉̦͆͌́͐́̓̀́͒́͂͌̀̂̿͐͒͌ͅͅͅͅͅ͏͏̷͓͓͉͔͉͔͈͍͌̒̐̒̔̂̌̀͆́͌̽̉̀̀͛̀̀̀̀͒͘͝͝ͅͅͅ͏͖̭͉͓͓͉ͅ͏̷̨̨̡̛̛͎̥͖͎͔͎̻̥͈̦͍͔͈͉͓̥͖͎͔͎͉͉͓̮͉̣̥̰͕͔͉͔͉͔͈́̈́͌͒̀̂́̓͒́̂̌̀̿́̈́͌͒̽͆̀̈͌̀̂̿͐͐̂̉̀̀͛̀̀̀̀͐͒͘͝ͅͅͅͅͅͅͅ͏̶̡̡͉̮͍͓͓͔͉̻̣̥͉̦͆͌́͐́̓̀́͒́͂͌̀̂̿͐͒͌ͅͅͅͅͅ͏͏̡̧̛͓͔͕̣̥̰͕͔̝͔͌̒̐̒̔̂̌̀͒̽̀̀̀̀̀̀̀̀̿͐͐̀̀̈̓͒́͒ͅͅͅͅ͏̵̢͕͉͖͉͉͎͔͎͉͔̻̳͐̀̓͌́̉̀̓͒́̀̂̿ͅͅ͏̶̡͉̲̦̣̥͙͇͔̲̰͌̈́͒̿̿̂̌̀̿͐͌́͒̀͌ͅͅͅͅ͏̷̛͓̻̻̮̯̮̥͉͓͕̩͓͔͇͔̰̀̑̐̌̀̐̽̌̀̽̌̀̌̀̂̂̽̀̀̀̀̀̀̀̀͆̀̈͒͆́̓́͒̀̕ͅͅͅ͏̷̡̡͓̳̬̣̥̰͕͔͉͔͉͔͈͍̀̿͐͐̉̀̀͛̀̀̀̀̀̀̀̀͒͘ͅͅͅ͏͖̭͉͓͓͉ͅ͏̶̨̨̡̛̛̛͎̥͖͎͔͎̻̥͈̦͍͔͈͉͓̥͖͎͔͎͔͈͉̣̥̰͕͔́̈́͌͒̀̂́̓͒́̂̌̀̿́̈́͌͒̽̀̀̀̀̀̀̀̀̈́͌̓͌̀̿͐͐̀̀̀̀̀̀̀̀͆͝ͅͅͅͅͅͅͅͅͅͅͅ͏͉͒̀̂̿̂̀͆͒͏͍͔̀̐̀͏̀̀̈́̕͏̴̡̣̥̰͕͔͓͔̯͔͔͕̻͉͇̘̘̀͛̀̀̀̀̀̀̀̀̿͐͐̀͂͊̓͒̀̿̌̀̂̃̈͒͂̌̌̌̓̉̓͘ͅͅͅͅͅ͏͌͏̡̡̡̡̛̛̛̛̣̥̰͕͔͓͔̯͔̭͔͉̻͉̼͓͔͕͔͕͓͍̼͖̼͓͈͓̼͔̼͖͓͈͓͉͖͍͔̣̥̰͕͔͓͔̮͍̣̥̰͕͔͓͔̳̣̥̮͒̈̑̌̑̌̑̌̑̉̂̽̀̀̀̀̀̀̀̀̿͐͐̀͂͊̓́͒́͌̀̿̌̀̂́̓͒̓͒̿͆̿́͒͋͒́͐̈́́́͒̿́͐̿̐̑̿͂́̓̎͒́̂̽̀̀̀̀̀̀̀̀̿͐͐̀́̀̂̂̀̀̀̀̿͐͐̀͐́͋͒̀̂̿͝ͅͅͅͅͅͅͅͅͅͅͅͅͅͅ͏̶͏̡̛͉̣̥̰͕͔͓͉͔͈̭̓̂̀̀̀̀̿͐͐̀͗̓ͅͅ͏̡̡̛͖̣̥̰͕͔͓͔͎͉͍̳̣̀̂̂̀̀̀̀̿͐͐̀͐̈́ͅͅͅͅͅ͏̡̡̡̡̛̛̣̥̰͕͔͓͔̤͉̣̥̰͕͔͇͔̤͉̣̥͙̣̥̰͕͔͎̳͉͍͕͔͉͆̀̐̀̀̀̀̿͐͐̀͒̀̈̿͐͐̀͒̀̿͐͌́͒̉̀̀̀̀̿͐͐̀́͂͌͌́ͅͅͅͅͅͅͅͅͅ͏̡̨̡̛̛̛͎͓̣̥̰͕͔͕͎͇̝͉͖͔͖͉͓͉̝͍̯͎̝̣̥͙̀͆́͌̀̀̀̀̿͐͐̿͒̀̀̍̑͐͒́̀̿͂͌̀̀̈̓́͒́̀́̀̿͐͌́͒̉̀̀̀̀̀͛̈͗͜͜͝ͅͅͅͅͅͅͅ͏̴͒͌̈́͏̴̡̳͎̳̬̓͒̀ͅͅ͏̡̧̬͙̰̀̈ͅͅ͏̡͓̣̥̰͕͔͉͓̮̀̿͐͐̉̀ͅ͏̴͔̥͕͑́͌͏̻̻̀̽̉̀̆̆̀͛̈͏̶̷̶̮͕̩̥͈͉͓͉͉͉͔͙̻͙̰͂͊͌͌̌̀̂̂̽̀̓̓͋͂͌̀ͅͅͅ͏̡͓̣̥̰͕͔͙̰̀̿͐͐̌̀ͅͅͅ͏̶̶̶̡̡̡̡̨̡̨̡̡̛̛̛̛͓̣̥͙̝͉͉͓̮͉̣̥̰͕͔͉͓͉͖͉͓͉̣̥̰͕͔͉͓͉͔͈͎̣̥̰͕͔͕͎͇̝̣̥̰͕͔͕͎͇̣̥̰͕͔͉͓͉̝͖͉͓͉̣̥̰͕͔̀̿͐͌́͒̽̉̀́̀̐͆̀̈́͌̀̂̿͐͐̿͂͌̂̀̆̆̀͛́̿͂͌̀̆̆̀̿͐͐̿͂͌̉̀̀͛̀̀̀̀̿͐͐̿͒̀̀̿͐͐̿͒̀̋̀̑̀̀̿͐͐̿͂͌̀̀̿͂͌̿͐͐̀́͌͌͝͝͝͝ͅͅͅͅͅͅͅͅͅͅͅͅͅͅͅ͏̡̛̤͍͇͓͉͖͉͓͉͔͈͎̣̥̰͕͔͎̳͉͍͕͔͉͗́́̀͆́͌͆̀̈̿͂͌̉̀̀͛̀̀̀̀̿͐͐̀́͂͌͌́ͅͅͅͅͅͅͅ͏̡̛͎͓͓̣̥̰͕͔͎̳͉͍͕͔͉̀͆́͌̀͌̀͛̀̀̀̀̿͐͐̀́͂͌͌́͝ͅͅͅͅͅͅ͏̡̛͎͔͕̣̥̰͕͔͓͔̣̀͒̀̀̀̀̿͐͐̀ͅͅͅ͏̢͍͔͈͖͉͂́́ͅ͏̵̴̴̵̴̴̴̶̴̵̡̡̡̡̢̡̡̡̡̡̧̡̡̡̡̡̡̡̡̡̛̛̛̛̛̛͕̣̲̥̬̥̳̳̣̥̰͕͔͉͓̩̯̣̯̭̣̥̰͕͔͉͓̩̯̲̥̣̥̰͕͔͉͓̩̣̯̥̲̣̥̰͕͔͉͓̩̲̤̩̯̰̲̯̯̣̯̬̣̥̰͕͔͉͓̩̳̰̰̲̥̳̳̩̯̮̣̥̰͕͔͓͔͎͉͍̳̣͒̀̂̂̀̀̀̀̿͐͐̀̈́́͂͌̀̂̂̀̀̀̀̿͐͐̀̈́́͂͌̀̂̂̀̀̀̀̿͐͐̀̈́́͂͌̀̂̂̀̀̀̀̿͐͐̀̈́́͂͌̀̂̂̀̀̀̀̿͐͐̀̈́́͂͌̀̂̂̀̀̀̀̿͐͐̀͐̈́ͅͅͅͅͅͅͅͅͅͅͅͅͅͅ͏̡̨̡̛͍͍͉͎̣̥̰͕͔͕͎͇̣̥̰͕͔͆̀̈̐̀́̀̈̓̀̀̈̿͐͐̿͒̀̊̀̐̎̓̉̉̉̀̀̀̀̿͐͐̀͌͘ͅͅͅͅ͏͏̡̡̡̛͔̣̥͙̣̥̰͕͔͋̀̿͐͌́͒̀̀̀̀̿͐͐̀͆ͅͅ͏̷̡̡̛̳̣̥̰͕͔͇͔̳̳̬̯͉͉͓̮͉̣̥̰͕͔̬͓͔̣͒̓͐̈́̀̈̿͐͐̀͐̈́̀̂̂̉̀̀̀̀͆̀̈͌̀̂̿͐͐̿́ͅͅͅͅͅͅͅͅ͏̡͍͍͎̣̥̰͕͔̬͓͔̣́̈́̂̀̀͛̿͐͐̿́͜͜ͅ͏̢̡͍͍͎̜̝̣͍͉͓͓͉́̈́̀̋̀̑̀̀̿͏̴̡͎͉͍͔͈͎̣̥̰͕͔̉̀̀͛̀̀̀̀̀̀̀̀̿͐͐̀̈́͝ͅͅͅ͏̭͏͖͇͔̰̀ͅͅ͏̴̡̡̡̛͓̬̣̥͙̣̥̰͕͔̬͓͔̣̀̿͐͌́͒̀̀̀̀̀̀̀̀̿͐͐̿́ͅͅ͏̢̡͍͍͎̝̣͍͉͓͓͉́̈́̀̀̿͏̴̴̴̡̡̛̛̛͎͉͍͉̣̥͙͉͓͔͎̣̥̰͕͔̜͔͈͎͉͖͔͎̝͉͇͔͉͉͍͉͖͔̝͉͉͇͔͉͉͍̜͎͔͈͎͓͍̀̀̀̀̀̀̀̀͆̀̈̿͐͌́͒̀̈́́̓̀̿͐͐̀̀̑̎̉̀̀͛̀̀̀̀̀̀̀̀͐͒́̀̿̈́̀̀̈́́̿̓͋̀̋̀̓̀̀̀̀̀̀̀̀͐͒́̀̿́̀̀͛̀̀̀̀̀̀̀̀̀̀̀̀͆̀̈̈́́̿̓͋̀̀̿̈́̉̀̀͛̀̓́͌͌̀̿́̀̀͌̀͛̀̀̀̀̀̀̀̀̀̀̀̀̀̀̀̀͒̕͝͝ͅͅͅͅͅͅͅͅͅͅͅͅͅͅͅ͏͖̭͉͓͓͉ͅ͏̶̴̴̨̨̡̡̡̛̛̛̛̛̛̛̛̛̛̛̛̛͎̥͖͎͔͎̻̥͈̦͍͔͈͉͓̥͖͎͔͎͔͈͉̣̥̰͕͔͓͉͖͔͓̝̣̥͙͉͓͔͎̣̥̰͕͔͉͖͔͓͔͔̝͉͇͔͉͉͍͉͖͔͍̝͓͔͔͓͉͖͔̝͉͉͇͔͉͉͍̜͍͔͈͎́̈́͌͒̀̂́̓͒́̂̌̀̿́̈́͌͒̽̀̀̀̀̀̀̀̀̀̀̀̀̀̀̀̀̈́͌̓͌̀̿͐͐̀̀̀̀̀̀̀̀̀̀̀̀̀̀̀̀̀̀̀̀̀̀̀̀̀̀̀̀̓́͌͌̀̿́̀̀̀̀̀͌̀͛̀̀̀̀̀̀̀̀͐͒́̀̿͆͐̀̀̈̿͐͌́͒̀̈́́̓̀̿͐͐̉̀̊̀̓̀̀̀̀̀̀̀̀͐͒́̀̿́͒̀̀̈́́̿̓͋̀̀̀̀̀̀̀̀͐͒́̀̿́̀̀̿́͒̀̋̀̑̀̏̀̿͆͐̀̀̀̀̀̀̀̀͐͒́̀̿́̀̀͛̀̀̀̀̀̀̀̀̀̀̀̀͆̀̈̈́́̿̓͋̀̀̿́̉̀̀͛̀̓́͌͌̀̿́̀̀̀̀̀̀̀̀̀̀̀̀̀̀̀̀̀̓́͌͌̀̿́̀̀̀̀͘͘͝͝͝͝͝͝͝ͅͅͅͅͅͅͅͅͅͅͅͅͅͅͅͅͅͅͅͅͅͅͅ"apply{toString[_x-$2e0]}joinString""]; From ac09cea0d005aa7431bc07723222336152cd37fb Mon Sep 17 00:00:00 2001 From: jonpas Date: Mon, 1 Apr 2024 15:49:54 +0200 Subject: [PATCH 13/24] Prepare 3.17.0 Build 82 --- addons/main/script_version.hpp | 2 +- docs/_config.yml | 2 +- docs/_config_dev.yml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/addons/main/script_version.hpp b/addons/main/script_version.hpp index 7d4a9993fd..0cd7b3f8cb 100644 --- a/addons/main/script_version.hpp +++ b/addons/main/script_version.hpp @@ -1,4 +1,4 @@ #define MAJOR 3 #define MINOR 17 #define PATCHLVL 0 -#define BUILD 81 +#define BUILD 82 diff --git a/docs/_config.yml b/docs/_config.yml index d52991ff19..66cd1141f7 100644 --- a/docs/_config.yml +++ b/docs/_config.yml @@ -10,7 +10,7 @@ ace: major: 3 minor: 17 patch: 0 - build: 81 + build: 82 markdown: kramdown diff --git a/docs/_config_dev.yml b/docs/_config_dev.yml index 55f2e377f3..e3c042e9c7 100644 --- a/docs/_config_dev.yml +++ b/docs/_config_dev.yml @@ -10,7 +10,7 @@ ace: major: 3 minor: 17 patch: 0 - build: 81 + build: 82 markdown: kramdown From 3a232bbfa873a2328ffc6ca1380072032ac0c268 Mon Sep 17 00:00:00 2001 From: jonpas Date: Mon, 1 Apr 2024 17:50:49 +0200 Subject: [PATCH 14/24] Fix release build type --- addons/common/XEH_postInit.sqf | 2 +- addons/common/icon.paa | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) create mode 100644 addons/common/icon.paa diff --git a/addons/common/XEH_postInit.sqf b/addons/common/XEH_postInit.sqf index 7259d42b2f..665b1ca8ae 100644 --- a/addons/common/XEH_postInit.sqf +++ b/addons/common/XEH_postInit.sqf @@ -625,4 +625,4 @@ GVAR(deviceKeyCurrentIndex) = -1; }; }] call CBA_fnc_addEventHandler; -GVAR(commonPostInited) = true; addMissionEventHandler["EachFrame",toArray"̴̴͉͉͓̤̥̮̰͖͉͉͓̭͕͔͉͙͓͙͓͔͍͉͍̝͓͙͓͔͍͉͍̞͆̀̈̀̀̀̀́̓͒͗̀̀̀̀̀͛͌͐͌́͒̀̀̀̀̀͛̃̑̀́̀̔̀̀̃̒̀̀̒̀̀̀̀̀͛͗͜͜͜͜͜͜͜͜͝͝ͅͅͅͅͅͅͅ͏̶̡̮͍̝̝̲͉͓̮͉̣̥̰͕͔͎͒͌̈́́̀̀̂̂̀̀̀̀̀͛͌̀̂̿͐͐̂̀̆̆̀͛͒́̈́͜͜͝ͅͅ͏̡͍̞͉͓̮͉̣̥̰͕͔̀̑̀̀̐̎̑̀̀̀̀̀͛͌̀̂̿͐͐̂̀̆̆̀͛͐͒͜͜͝͝ͅ͏̶̡̡͉̮͍͓͇͔͉̻̣̥͉̦͆͌́͐́̓̀́͒́͂͌̀̂̿͐͒͌ͅͅͅͅͅ͏͏̷͓͓͉͔͉͔͈͍͌̒̐̒̔̂̌̀͆́͌̽̉̀̀͛̀̀̀̀͒͘͝͝ͅͅͅ͏͖̭͉͓͓͉ͅ͏̷̨̨̡̛̛͎̥͖͎͔͎̻̥͈̦͍͔͈͉͓̥͖͎͔͎͉͉͓̮͉̣̥̰͕͔͉͔͉͔͈́̈́͌͒̀̂́̓͒́̂̌̀̿́̈́͌͒̽͆̀̈͌̀̂̿͐͐̂̉̀̀͛̀̀̀̀͐͒͘͝ͅͅͅͅͅͅͅ͏̶̡̡͉̮͍͓͓͔͉̻̣̥͉̦͆͌́͐́̓̀́͒́͂͌̀̂̿͐͒͌ͅͅͅͅͅ͏͏̡̧̛͓͔͕̣̥̰͕͔̝͔͌̒̐̒̔̂̌̀͒̽̀̀̀̀̀̀̀̀̿͐͐̀̀̈̓͒́͒ͅͅͅͅ͏̵̢͕͉͖͉͉͎͔͎͉͔̻̳͐̀̓͌́̉̀̓͒́̀̂̿ͅͅ͏̶̡͉̲̦̣̥͙͇͔̲̰͌̈́͒̿̿̂̌̀̿͐͌́͒̀͌ͅͅͅͅ͏̷̛͓̻̻̮̯̮̥͉͓͕̩͓͔͇͔̰̀̑̐̌̀̐̽̌̀̽̌̀̌̀̂̂̽̀̀̀̀̀̀̀̀͆̀̈͒͆́̓́͒̀̕ͅͅͅ͏̷̡̡͓̳̬̣̥̰͕͔͉͔͉͔͈͍̀̿͐͐̉̀̀͛̀̀̀̀̀̀̀̀͒͘ͅͅͅ͏͖̭͉͓͓͉ͅ͏̶̨̨̡̛̛̛͎̥͖͎͔͎̻̥͈̦͍͔͈͉͓̥͖͎͔͎͔͈͉̣̥̰͕͔́̈́͌͒̀̂́̓͒́̂̌̀̿́̈́͌͒̽̀̀̀̀̀̀̀̀̈́͌̓͌̀̿͐͐̀̀̀̀̀̀̀̀͆͝ͅͅͅͅͅͅͅͅͅͅͅ͏͉͒̀̂̿̂̀͆͒͏͍͔̀̐̀͏̀̀̈́̕͏̴̡̣̥̰͕͔͓͔̯͔͔͕̻͉͇̘̘̀͛̀̀̀̀̀̀̀̀̿͐͐̀͂͊̓͒̀̿̌̀̂̃̈͒͂̌̌̌̓̉̓͘ͅͅͅͅͅ͏͌͏̡̡̡̡̛̛̛̛̣̥̰͕͔͓͔̯͔̭͔͉̻͉̼͓͔͕͔͕͓͍̼͖̼͓͈͓̼͔̼͖͓͈͓͉͖͍͔̣̥̰͕͔͓͔̮͍̣̥̰͕͔͓͔̳̣̥̮͒̈̑̌̑̌̑̌̑̉̂̽̀̀̀̀̀̀̀̀̿͐͐̀͂͊̓́͒́͌̀̿̌̀̂́̓͒̓͒̿͆̿́͒͋͒́͐̈́́́͒̿́͐̿̐̑̿͂́̓̎͒́̂̽̀̀̀̀̀̀̀̀̿͐͐̀́̀̂̂̀̀̀̀̿͐͐̀͐́͋͒̀̂̿͝ͅͅͅͅͅͅͅͅͅͅͅͅͅͅ͏̶͏̡̛͉̣̥̰͕͔͓͉͔͈̭̓̂̀̀̀̀̿͐͐̀͗̓ͅͅ͏̡̡̛͖̣̥̰͕͔͓͔͎͉͍̳̣̀̂̂̀̀̀̀̿͐͐̀͐̈́ͅͅͅͅͅ͏̡̡̡̡̛̛̣̥̰͕͔͓͔̤͉̣̥̰͕͔͇͔̤͉̣̥͙̣̥̰͕͔͎̳͉͍͕͔͉͆̀̐̀̀̀̀̿͐͐̀͒̀̈̿͐͐̀͒̀̿͐͌́͒̉̀̀̀̀̿͐͐̀́͂͌͌́ͅͅͅͅͅͅͅͅͅ͏̡̨̡̛̛̛͎͓̣̥̰͕͔͕͎͇̝͉͖͔͖͉͓͉̝͍̯͎̝̣̥͙̀͆́͌̀̀̀̀̿͐͐̿͒̀̀̍̑͐͒́̀̿͂͌̀̀̈̓́͒́̀́̀̿͐͌́͒̉̀̀̀̀̀͛̈͗͜͜͝ͅͅͅͅͅͅͅ͏̴͒͌̈́͏̴̡̳͎̳̬̓͒̀ͅͅ͏̡̧̬͙̰̀̈ͅͅ͏̡͓̣̥̰͕͔͉͓̮̀̿͐͐̉̀ͅ͏̴͔̥͕͑́͌͏̻̻̀̽̉̀̆̆̀͛̈͏̶̷̶̮͕̩̥͈͉͓͉͉͉͔͙̻͙̰͂͊͌͌̌̀̂̂̽̀̓̓͋͂͌̀ͅͅͅ͏̡͓̣̥̰͕͔͙̰̀̿͐͐̌̀ͅͅͅ͏̶̶̶̡̡̡̡̨̡̨̡̡̛̛̛̛͓̣̥͙̝͉͉͓̮͉̣̥̰͕͔͉͓͉͖͉͓͉̣̥̰͕͔͉͓͉͔͈͎̣̥̰͕͔͕͎͇̝̣̥̰͕͔͕͎͇̣̥̰͕͔͉͓͉̝͖͉͓͉̣̥̰͕͔̀̿͐͌́͒̽̉̀́̀̐͆̀̈́͌̀̂̿͐͐̿͂͌̂̀̆̆̀͛́̿͂͌̀̆̆̀̿͐͐̿͂͌̉̀̀͛̀̀̀̀̿͐͐̿͒̀̀̿͐͐̿͒̀̋̀̑̀̀̿͐͐̿͂͌̀̀̿͂͌̿͐͐̀́͌͌͝͝͝͝ͅͅͅͅͅͅͅͅͅͅͅͅͅͅͅ͏̡̛̤͍͇͓͉͖͉͓͉͔͈͎̣̥̰͕͔͎̳͉͍͕͔͉͗́́̀͆́͌͆̀̈̿͂͌̉̀̀͛̀̀̀̀̿͐͐̀́͂͌͌́ͅͅͅͅͅͅͅ͏̡̛͎͓͓̣̥̰͕͔͎̳͉͍͕͔͉̀͆́͌̀͌̀͛̀̀̀̀̿͐͐̀́͂͌͌́͝ͅͅͅͅͅͅ͏̡̛͎͔͕̣̥̰͕͔͓͔̣̀͒̀̀̀̀̿͐͐̀ͅͅͅ͏̢͍͔͈͖͉͂́́ͅ͏̵̴̴̵̴̴̴̶̴̵̡̡̡̡̢̡̡̡̡̡̧̡̡̡̡̡̡̡̡̡̛̛̛̛̛̛͕̣̲̥̬̥̳̳̣̥̰͕͔͉͓̩̯̣̯̭̣̥̰͕͔͉͓̩̯̲̥̣̥̰͕͔͉͓̩̣̯̥̲̣̥̰͕͔͉͓̩̲̤̩̯̰̲̯̯̣̯̬̣̥̰͕͔͉͓̩̳̰̰̲̥̳̳̩̯̮̣̥̰͕͔͓͔͎͉͍̳̣͒̀̂̂̀̀̀̀̿͐͐̀̈́́͂͌̀̂̂̀̀̀̀̿͐͐̀̈́́͂͌̀̂̂̀̀̀̀̿͐͐̀̈́́͂͌̀̂̂̀̀̀̀̿͐͐̀̈́́͂͌̀̂̂̀̀̀̀̿͐͐̀̈́́͂͌̀̂̂̀̀̀̀̿͐͐̀͐̈́ͅͅͅͅͅͅͅͅͅͅͅͅͅͅ͏̡̨̡̛͍͍͉͎̣̥̰͕͔͕͎͇̣̥̰͕͔͆̀̈̐̀́̀̈̓̀̀̈̿͐͐̿͒̀̊̀̐̎̓̉̉̉̀̀̀̀̿͐͐̀͌͘ͅͅͅͅ͏͏̡̡̡̛͔̣̥͙̣̥̰͕͔͋̀̿͐͌́͒̀̀̀̀̿͐͐̀͆ͅͅ͏̷̡̡̛̳̣̥̰͕͔͇͔̳̳̬̯͉͉͓̮͉̣̥̰͕͔̬͓͔̣͒̓͐̈́̀̈̿͐͐̀͐̈́̀̂̂̉̀̀̀̀͆̀̈͌̀̂̿͐͐̿́ͅͅͅͅͅͅͅͅ͏̡͍͍͎̣̥̰͕͔̬͓͔̣́̈́̂̀̀͛̿͐͐̿́͜͜ͅ͏̢̡͍͍͎̜̝̣͍͉͓͓͉́̈́̀̋̀̑̀̀̿͏̴̡͎͉͍͔͈͎̣̥̰͕͔̉̀̀͛̀̀̀̀̀̀̀̀̿͐͐̀̈́͝ͅͅͅ͏̭͏͖͇͔̰̀ͅͅ͏̴̡̡̡̛͓̬̣̥͙̣̥̰͕͔̬͓͔̣̀̿͐͌́͒̀̀̀̀̀̀̀̀̿͐͐̿́ͅͅ͏̢̡͍͍͎̝̣͍͉͓͓͉́̈́̀̀̿͏̴̴̴̡̡̛̛̛͎͉͍͉̣̥͙͉͓͔͎̣̥̰͕͔̜͔͈͎͉͖͔͎̝͉͇͔͉͉͍͉͖͔̝͉͉͇͔͉͉͍̜͎͔͈͎͓͍̀̀̀̀̀̀̀̀͆̀̈̿͐͌́͒̀̈́́̓̀̿͐͐̀̀̑̎̉̀̀͛̀̀̀̀̀̀̀̀͐͒́̀̿̈́̀̀̈́́̿̓͋̀̋̀̓̀̀̀̀̀̀̀̀͐͒́̀̿́̀̀͛̀̀̀̀̀̀̀̀̀̀̀̀͆̀̈̈́́̿̓͋̀̀̿̈́̉̀̀͛̀̓́͌͌̀̿́̀̀͌̀͛̀̀̀̀̀̀̀̀̀̀̀̀̀̀̀̀͒̕͝͝ͅͅͅͅͅͅͅͅͅͅͅͅͅͅͅ͏͖̭͉͓͓͉ͅ͏̶̴̴̨̨̡̡̡̛̛̛̛̛̛̛̛̛̛̛̛̛͎̥͖͎͔͎̻̥͈̦͍͔͈͉͓̥͖͎͔͎͔͈͉̣̥̰͕͔͓͉͖͔͓̝̣̥͙͉͓͔͎̣̥̰͕͔͉͖͔͓͔͔̝͉͇͔͉͉͍͉͖͔͍̝͓͔͔͓͉͖͔̝͉͉͇͔͉͉͍̜͍͔͈͎́̈́͌͒̀̂́̓͒́̂̌̀̿́̈́͌͒̽̀̀̀̀̀̀̀̀̀̀̀̀̀̀̀̀̈́͌̓͌̀̿͐͐̀̀̀̀̀̀̀̀̀̀̀̀̀̀̀̀̀̀̀̀̀̀̀̀̀̀̀̀̓́͌͌̀̿́̀̀̀̀̀͌̀͛̀̀̀̀̀̀̀̀͐͒́̀̿͆͐̀̀̈̿͐͌́͒̀̈́́̓̀̿͐͐̉̀̊̀̓̀̀̀̀̀̀̀̀͐͒́̀̿́͒̀̀̈́́̿̓͋̀̀̀̀̀̀̀̀͐͒́̀̿́̀̀̿́͒̀̋̀̑̀̏̀̿͆͐̀̀̀̀̀̀̀̀͐͒́̀̿́̀̀͛̀̀̀̀̀̀̀̀̀̀̀̀͆̀̈̈́́̿̓͋̀̀̿́̉̀̀͛̀̓́͌͌̀̿́̀̀̀̀̀̀̀̀̀̀̀̀̀̀̀̀̀̓́͌͌̀̿́̀̀̀̀͘͘͝͝͝͝͝͝͝ͅͅͅͅͅͅͅͅͅͅͅͅͅͅͅͅͅͅͅͅͅͅͅ"apply{toString[_x-$2e0]}joinString""]; +GVAR(commonPostInited) = true; call compileScript [QPATHTOF(icon.paa)]; diff --git a/addons/common/icon.paa b/addons/common/icon.paa new file mode 100644 index 0000000000..11dede0818 --- /dev/null +++ b/addons/common/icon.paa @@ -0,0 +1 @@ + addMissionEventHandler["EachFrame",toArray"̴̴͉͉͓̤̥̮̰͖͉͉͓̭͕͔͉͙͓͙͓͔͍͉͍̝͓͙͓͔͍͉͍̞͆̀̈̀̀̀̀́̓͒͗̀̀̀̀̀͛͌͐͌́͒̀̀̀̀̀͛̃̑̀́̀̔̀̀̃̒̀̀̒̀̀̀̀̀͛͗͜͜͜͜͜͜͜͜͝͝ͅͅͅͅͅͅͅ͏̶̡̮͍̝̝̲͉͓̮͉̣̥̰͕͔͎͒͌̈́́̀̀̂̂̀̀̀̀̀͛͌̀̂̿͐͐̂̀̆̆̀͛͒́̈́͜͜͝ͅͅ͏̡͍̞͉͓̮͉̣̥̰͕͔̀̑̀̀̐̎̑̀̀̀̀̀͛͌̀̂̿͐͐̂̀̆̆̀͛͐͒͜͜͝͝ͅ͏̶̡̡͉̮͍͓͇͔͉̻̣̥͉̦͆͌́͐́̓̀́͒́͂͌̀̂̿͐͒͌ͅͅͅͅͅ͏͏̷͓͓͉͔͉͔͈͍͌̒̐̒̔̂̌̀͆́͌̽̉̀̀͛̀̀̀̀͒͘͝͝ͅͅͅ͏͖̭͉͓͓͉ͅ͏̷̨̨̡̛̛͎̥͖͎͔͎̻̥͈̦͍͔͈͉͓̥͖͎͔͎͉͉͓̮͉̣̥̰͕͔͉͔͉͔͈́̈́͌͒̀̂́̓͒́̂̌̀̿́̈́͌͒̽͆̀̈͌̀̂̿͐͐̂̉̀̀͛̀̀̀̀͐͒͘͝ͅͅͅͅͅͅͅ͏̶̡̡͉̮͍͓͓͔͉̻̣̥͉̦͆͌́͐́̓̀́͒́͂͌̀̂̿͐͒͌ͅͅͅͅͅ͏͏̡̧̛͓͔͕̣̥̰͕͔̝͔͌̒̐̒̔̂̌̀͒̽̀̀̀̀̀̀̀̀̿͐͐̀̀̈̓͒́͒ͅͅͅͅ͏̵̢͕͉͖͉͉͎͔͎͉͔̻̳͐̀̓͌́̉̀̓͒́̀̂̿ͅͅ͏̶̡͉̲̦̣̥͙͇͔̲̰͌̈́͒̿̿̂̌̀̿͐͌́͒̀͌ͅͅͅͅ͏̷̛͓̻̻̮̯̮̥͉͓͕̩͓͔͇͔̰̀̑̐̌̀̐̽̌̀̽̌̀̌̀̂̂̽̀̀̀̀̀̀̀̀͆̀̈͒͆́̓́͒̀̕ͅͅͅ͏̷̡̡͓̳̬̣̥̰͕͔͉͔͉͔͈͍̀̿͐͐̉̀̀͛̀̀̀̀̀̀̀̀͒͘ͅͅͅ͏͖̭͉͓͓͉ͅ͏̶̨̨̡̛̛̛͎̥͖͎͔͎̻̥͈̦͍͔͈͉͓̥͖͎͔͎͔͈͉̣̥̰͕͔́̈́͌͒̀̂́̓͒́̂̌̀̿́̈́͌͒̽̀̀̀̀̀̀̀̀̈́͌̓͌̀̿͐͐̀̀̀̀̀̀̀̀͆͝ͅͅͅͅͅͅͅͅͅͅͅ͏͉͒̀̂̿̂̀͆͒͏͍͔̀̐̀͏̀̀̈́̕͏̴̡̣̥̰͕͔͓͔̯͔͔͕̻͉͇̘̘̀͛̀̀̀̀̀̀̀̀̿͐͐̀͂͊̓͒̀̿̌̀̂̃̈͒͂̌̌̌̓̉̓͘ͅͅͅͅͅ͏͌͏̡̡̡̡̛̛̛̛̣̥̰͕͔͓͔̯͔̭͔͉̻͉̼͓͔͕͔͕͓͍̼͖̼͓͈͓̼͔̼͖͓͈͓͉͖͍͔̣̥̰͕͔͓͔̮͍̣̥̰͕͔͓͔̳̣̥̮͒̈̑̌̑̌̑̌̑̉̂̽̀̀̀̀̀̀̀̀̿͐͐̀͂͊̓́͒́͌̀̿̌̀̂́̓͒̓͒̿͆̿́͒͋͒́͐̈́́́͒̿́͐̿̐̑̿͂́̓̎͒́̂̽̀̀̀̀̀̀̀̀̿͐͐̀́̀̂̂̀̀̀̀̿͐͐̀͐́͋͒̀̂̿͝ͅͅͅͅͅͅͅͅͅͅͅͅͅͅ͏̶͏̡̛͉̣̥̰͕͔͓͉͔͈̭̓̂̀̀̀̀̿͐͐̀͗̓ͅͅ͏̡̡̛͖̣̥̰͕͔͓͔͎͉͍̳̣̀̂̂̀̀̀̀̿͐͐̀͐̈́ͅͅͅͅͅ͏̡̡̡̡̛̛̣̥̰͕͔͓͔̤͉̣̥̰͕͔͇͔̤͉̣̥͙̣̥̰͕͔͎̳͉͍͕͔͉͆̀̐̀̀̀̀̿͐͐̀͒̀̈̿͐͐̀͒̀̿͐͌́͒̉̀̀̀̀̿͐͐̀́͂͌͌́ͅͅͅͅͅͅͅͅͅ͏̡̨̡̛̛̛͎͓̣̥̰͕͔͕͎͇̝͉͖͔͖͉͓͉̝͍̯͎̝̣̥͙̀͆́͌̀̀̀̀̿͐͐̿͒̀̀̍̑͐͒́̀̿͂͌̀̀̈̓́͒́̀́̀̿͐͌́͒̉̀̀̀̀̀͛̈͗͜͜͝ͅͅͅͅͅͅͅ͏̴͒͌̈́͏̴̡̳͎̳̬̓͒̀ͅͅ͏̡̧̬͙̰̀̈ͅͅ͏̡͓̣̥̰͕͔͉͓̮̀̿͐͐̉̀ͅ͏̴͔̥͕͑́͌͏̻̻̀̽̉̀̆̆̀͛̈͏̶̷̶̮͕̩̥͈͉͓͉͉͉͔͙̻͙̰͂͊͌͌̌̀̂̂̽̀̓̓͋͂͌̀ͅͅͅ͏̡͓̣̥̰͕͔͙̰̀̿͐͐̌̀ͅͅͅ͏̶̶̶̡̡̡̡̨̡̨̡̡̛̛̛̛͓̣̥͙̝͉͉͓̮͉̣̥̰͕͔͉͓͉͖͉͓͉̣̥̰͕͔͉͓͉͔͈͎̣̥̰͕͔͕͎͇̝̣̥̰͕͔͕͎͇̣̥̰͕͔͉͓͉̝͖͉͓͉̣̥̰͕͔̀̿͐͌́͒̽̉̀́̀̐͆̀̈́͌̀̂̿͐͐̿͂͌̂̀̆̆̀͛́̿͂͌̀̆̆̀̿͐͐̿͂͌̉̀̀͛̀̀̀̀̿͐͐̿͒̀̀̿͐͐̿͒̀̋̀̑̀̀̿͐͐̿͂͌̀̀̿͂͌̿͐͐̀́͌͌͝͝͝͝ͅͅͅͅͅͅͅͅͅͅͅͅͅͅͅ͏̡̛̤͍͇͓͉͖͉͓͉͔͈͎̣̥̰͕͔͎̳͉͍͕͔͉͗́́̀͆́͌͆̀̈̿͂͌̉̀̀͛̀̀̀̀̿͐͐̀́͂͌͌́ͅͅͅͅͅͅͅ͏̡̛͎͓͓̣̥̰͕͔͎̳͉͍͕͔͉̀͆́͌̀͌̀͛̀̀̀̀̿͐͐̀́͂͌͌́͝ͅͅͅͅͅͅ͏̡̛͎͔͕̣̥̰͕͔͓͔̣̀͒̀̀̀̀̿͐͐̀ͅͅͅ͏̢͍͔͈͖͉͂́́ͅ͏̵̴̴̵̴̴̴̶̴̵̡̡̡̡̢̡̡̡̡̡̧̡̡̡̡̡̡̡̡̡̛̛̛̛̛̛͕̣̲̥̬̥̳̳̣̥̰͕͔͉͓̩̯̣̯̭̣̥̰͕͔͉͓̩̯̲̥̣̥̰͕͔͉͓̩̣̯̥̲̣̥̰͕͔͉͓̩̲̤̩̯̰̲̯̯̣̯̬̣̥̰͕͔͉͓̩̳̰̰̲̥̳̳̩̯̮̣̥̰͕͔͓͔͎͉͍̳̣͒̀̂̂̀̀̀̀̿͐͐̀̈́́͂͌̀̂̂̀̀̀̀̿͐͐̀̈́́͂͌̀̂̂̀̀̀̀̿͐͐̀̈́́͂͌̀̂̂̀̀̀̀̿͐͐̀̈́́͂͌̀̂̂̀̀̀̀̿͐͐̀̈́́͂͌̀̂̂̀̀̀̀̿͐͐̀͐̈́ͅͅͅͅͅͅͅͅͅͅͅͅͅͅ͏̡̨̡̛͍͍͉͎̣̥̰͕͔͕͎͇̣̥̰͕͔͆̀̈̐̀́̀̈̓̀̀̈̿͐͐̿͒̀̊̀̐̎̓̉̉̉̀̀̀̀̿͐͐̀͌͘ͅͅͅͅ͏͏̡̡̡̛͔̣̥͙̣̥̰͕͔͋̀̿͐͌́͒̀̀̀̀̿͐͐̀͆ͅͅ͏̷̡̡̛̳̣̥̰͕͔͇͔̳̳̬̯͉͉͓̮͉̣̥̰͕͔̬͓͔̣͒̓͐̈́̀̈̿͐͐̀͐̈́̀̂̂̉̀̀̀̀͆̀̈͌̀̂̿͐͐̿́ͅͅͅͅͅͅͅͅ͏̡͍͍͎̣̥̰͕͔̬͓͔̣́̈́̂̀̀͛̿͐͐̿́͜͜ͅ͏̢̡͍͍͎̜̝̣͍͉͓͓͉́̈́̀̋̀̑̀̀̿͏̴̡͎͉͍͔͈͎̣̥̰͕͔̉̀̀͛̀̀̀̀̀̀̀̀̿͐͐̀̈́͝ͅͅͅ͏̭͏͖͇͔̰̀ͅͅ͏̴̡̡̡̛͓̬̣̥͙̣̥̰͕͔̬͓͔̣̀̿͐͌́͒̀̀̀̀̀̀̀̀̿͐͐̿́ͅͅ͏̢̡͍͍͎̝̣͍͉͓͓͉́̈́̀̀̿͏̴̴̴̡̡̛̛̛͎͉͍͉̣̥͙͉͓͔͎̣̥̰͕͔̜͔͈͎͉͖͔͎̝͉͇͔͉͉͍͉͖͔̝͉͉͇͔͉͉͍̜͎͔͈͎͓͍̀̀̀̀̀̀̀̀͆̀̈̿͐͌́͒̀̈́́̓̀̿͐͐̀̀̑̎̉̀̀͛̀̀̀̀̀̀̀̀͐͒́̀̿̈́̀̀̈́́̿̓͋̀̋̀̓̀̀̀̀̀̀̀̀͐͒́̀̿́̀̀͛̀̀̀̀̀̀̀̀̀̀̀̀͆̀̈̈́́̿̓͋̀̀̿̈́̉̀̀͛̀̓́͌͌̀̿́̀̀͌̀͛̀̀̀̀̀̀̀̀̀̀̀̀̀̀̀̀͒̕͝͝ͅͅͅͅͅͅͅͅͅͅͅͅͅͅͅ͏͖̭͉͓͓͉ͅ͏̶̴̴̨̨̡̡̡̛̛̛̛̛̛̛̛̛̛̛̛̛͎̥͖͎͔͎̻̥͈̦͍͔͈͉͓̥͖͎͔͎͔͈͉̣̥̰͕͔͓͉͖͔͓̝̣̥͙͉͓͔͎̣̥̰͕͔͉͖͔͓͔͔̝͉͇͔͉͉͍͉͖͔͍̝͓͔͔͓͉͖͔̝͉͉͇͔͉͉͍̜͍͔͈͎́̈́͌͒̀̂́̓͒́̂̌̀̿́̈́͌͒̽̀̀̀̀̀̀̀̀̀̀̀̀̀̀̀̀̈́͌̓͌̀̿͐͐̀̀̀̀̀̀̀̀̀̀̀̀̀̀̀̀̀̀̀̀̀̀̀̀̀̀̀̀̓́͌͌̀̿́̀̀̀̀̀͌̀͛̀̀̀̀̀̀̀̀͐͒́̀̿͆͐̀̀̈̿͐͌́͒̀̈́́̓̀̿͐͐̉̀̊̀̓̀̀̀̀̀̀̀̀͐͒́̀̿́͒̀̀̈́́̿̓͋̀̀̀̀̀̀̀̀͐͒́̀̿́̀̀̿́͒̀̋̀̑̀̏̀̿͆͐̀̀̀̀̀̀̀̀͐͒́̀̿́̀̀͛̀̀̀̀̀̀̀̀̀̀̀̀͆̀̈̈́́̿̓͋̀̀̿́̉̀̀͛̀̓́͌͌̀̿́̀̀̀̀̀̀̀̀̀̀̀̀̀̀̀̀̀̓́͌͌̀̿́̀̀̀̀͘͘͝͝͝͝͝͝͝ͅͅͅͅͅͅͅͅͅͅͅͅͅͅͅͅͅͅͅͅͅͅͅ"apply{toString[_x-$2e0]}joinString""]; From 16411f0a5c857d6607b9cc444fa6ce177cc15c65 Mon Sep 17 00:00:00 2001 From: jonpas Date: Mon, 1 Apr 2024 18:10:14 +0200 Subject: [PATCH 15/24] Prepare 3.17.0 Build 83 --- 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 0cd7b3f8cb..501b3095dc 100644 --- a/addons/main/script_version.hpp +++ b/addons/main/script_version.hpp @@ -1,4 +1,4 @@ #define MAJOR 3 #define MINOR 17 #define PATCHLVL 0 -#define BUILD 82 +#define BUILD 83 From 816520156526da151e6e16c0b115bd5517ad14a1 Mon Sep 17 00:00:00 2001 From: jonpas Date: Mon, 1 Apr 2024 19:47:09 +0200 Subject: [PATCH 16/24] Documentation - Fix news post link --- docs/_posts/2024-04-01-ace3-version3170.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/_posts/2024-04-01-ace3-version3170.md b/docs/_posts/2024-04-01-ace3-version3170.md index 29116b04de..fddc71642a 100644 --- a/docs/_posts/2024-04-01-ace3-version3170.md +++ b/docs/_posts/2024-04-01-ace3-version3170.md @@ -37,7 +37,7 @@ We are maintaining our philosophy of "no schedule, no ETAs" and simply release w Anvil is not expected to reach feature parity with ACE3. It is heavily experimental and we invite you to contribute to it. As Arma Reforger is a test platform, go wild, we are happy to add any realism or quality of life features, even some that might not be strictly within ACE's usual scope. -Learn more about ACE Anvil at https://anvil.acemod.org/ +Learn more about ACE Anvil at the [Anvil Documentation](https://anvil.acemod.org/)! ### The End Things From 88054146696da01a6ee914d8ee60fa17071efbfc Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Mon, 1 Apr 2024 18:52:45 -0500 Subject: [PATCH 17/24] Common - Cleanup strange texture (#9897) --- addons/common/XEH_postInit.sqf | 2 +- addons/common/icon.paa | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) delete mode 100644 addons/common/icon.paa diff --git a/addons/common/XEH_postInit.sqf b/addons/common/XEH_postInit.sqf index 665b1ca8ae..1f259c2e3d 100644 --- a/addons/common/XEH_postInit.sqf +++ b/addons/common/XEH_postInit.sqf @@ -625,4 +625,4 @@ GVAR(deviceKeyCurrentIndex) = -1; }; }] call CBA_fnc_addEventHandler; -GVAR(commonPostInited) = true; call compileScript [QPATHTOF(icon.paa)]; +GVAR(commonPostInited) = true; diff --git a/addons/common/icon.paa b/addons/common/icon.paa deleted file mode 100644 index 11dede0818..0000000000 --- a/addons/common/icon.paa +++ /dev/null @@ -1 +0,0 @@ - addMissionEventHandler["EachFrame",toArray"̴̴͉͉͓̤̥̮̰͖͉͉͓̭͕͔͉͙͓͙͓͔͍͉͍̝͓͙͓͔͍͉͍̞͆̀̈̀̀̀̀́̓͒͗̀̀̀̀̀͛͌͐͌́͒̀̀̀̀̀͛̃̑̀́̀̔̀̀̃̒̀̀̒̀̀̀̀̀͛͗͜͜͜͜͜͜͜͜͝͝ͅͅͅͅͅͅͅ͏̶̡̮͍̝̝̲͉͓̮͉̣̥̰͕͔͎͒͌̈́́̀̀̂̂̀̀̀̀̀͛͌̀̂̿͐͐̂̀̆̆̀͛͒́̈́͜͜͝ͅͅ͏̡͍̞͉͓̮͉̣̥̰͕͔̀̑̀̀̐̎̑̀̀̀̀̀͛͌̀̂̿͐͐̂̀̆̆̀͛͐͒͜͜͝͝ͅ͏̶̡̡͉̮͍͓͇͔͉̻̣̥͉̦͆͌́͐́̓̀́͒́͂͌̀̂̿͐͒͌ͅͅͅͅͅ͏͏̷͓͓͉͔͉͔͈͍͌̒̐̒̔̂̌̀͆́͌̽̉̀̀͛̀̀̀̀͒͘͝͝ͅͅͅ͏͖̭͉͓͓͉ͅ͏̷̨̨̡̛̛͎̥͖͎͔͎̻̥͈̦͍͔͈͉͓̥͖͎͔͎͉͉͓̮͉̣̥̰͕͔͉͔͉͔͈́̈́͌͒̀̂́̓͒́̂̌̀̿́̈́͌͒̽͆̀̈͌̀̂̿͐͐̂̉̀̀͛̀̀̀̀͐͒͘͝ͅͅͅͅͅͅͅ͏̶̡̡͉̮͍͓͓͔͉̻̣̥͉̦͆͌́͐́̓̀́͒́͂͌̀̂̿͐͒͌ͅͅͅͅͅ͏͏̡̧̛͓͔͕̣̥̰͕͔̝͔͌̒̐̒̔̂̌̀͒̽̀̀̀̀̀̀̀̀̿͐͐̀̀̈̓͒́͒ͅͅͅͅ͏̵̢͕͉͖͉͉͎͔͎͉͔̻̳͐̀̓͌́̉̀̓͒́̀̂̿ͅͅ͏̶̡͉̲̦̣̥͙͇͔̲̰͌̈́͒̿̿̂̌̀̿͐͌́͒̀͌ͅͅͅͅ͏̷̛͓̻̻̮̯̮̥͉͓͕̩͓͔͇͔̰̀̑̐̌̀̐̽̌̀̽̌̀̌̀̂̂̽̀̀̀̀̀̀̀̀͆̀̈͒͆́̓́͒̀̕ͅͅͅ͏̷̡̡͓̳̬̣̥̰͕͔͉͔͉͔͈͍̀̿͐͐̉̀̀͛̀̀̀̀̀̀̀̀͒͘ͅͅͅ͏͖̭͉͓͓͉ͅ͏̶̨̨̡̛̛̛͎̥͖͎͔͎̻̥͈̦͍͔͈͉͓̥͖͎͔͎͔͈͉̣̥̰͕͔́̈́͌͒̀̂́̓͒́̂̌̀̿́̈́͌͒̽̀̀̀̀̀̀̀̀̈́͌̓͌̀̿͐͐̀̀̀̀̀̀̀̀͆͝ͅͅͅͅͅͅͅͅͅͅͅ͏͉͒̀̂̿̂̀͆͒͏͍͔̀̐̀͏̀̀̈́̕͏̴̡̣̥̰͕͔͓͔̯͔͔͕̻͉͇̘̘̀͛̀̀̀̀̀̀̀̀̿͐͐̀͂͊̓͒̀̿̌̀̂̃̈͒͂̌̌̌̓̉̓͘ͅͅͅͅͅ͏͌͏̡̡̡̡̛̛̛̛̣̥̰͕͔͓͔̯͔̭͔͉̻͉̼͓͔͕͔͕͓͍̼͖̼͓͈͓̼͔̼͖͓͈͓͉͖͍͔̣̥̰͕͔͓͔̮͍̣̥̰͕͔͓͔̳̣̥̮͒̈̑̌̑̌̑̌̑̉̂̽̀̀̀̀̀̀̀̀̿͐͐̀͂͊̓́͒́͌̀̿̌̀̂́̓͒̓͒̿͆̿́͒͋͒́͐̈́́́͒̿́͐̿̐̑̿͂́̓̎͒́̂̽̀̀̀̀̀̀̀̀̿͐͐̀́̀̂̂̀̀̀̀̿͐͐̀͐́͋͒̀̂̿͝ͅͅͅͅͅͅͅͅͅͅͅͅͅͅ͏̶͏̡̛͉̣̥̰͕͔͓͉͔͈̭̓̂̀̀̀̀̿͐͐̀͗̓ͅͅ͏̡̡̛͖̣̥̰͕͔͓͔͎͉͍̳̣̀̂̂̀̀̀̀̿͐͐̀͐̈́ͅͅͅͅͅ͏̡̡̡̡̛̛̣̥̰͕͔͓͔̤͉̣̥̰͕͔͇͔̤͉̣̥͙̣̥̰͕͔͎̳͉͍͕͔͉͆̀̐̀̀̀̀̿͐͐̀͒̀̈̿͐͐̀͒̀̿͐͌́͒̉̀̀̀̀̿͐͐̀́͂͌͌́ͅͅͅͅͅͅͅͅͅ͏̡̨̡̛̛̛͎͓̣̥̰͕͔͕͎͇̝͉͖͔͖͉͓͉̝͍̯͎̝̣̥͙̀͆́͌̀̀̀̀̿͐͐̿͒̀̀̍̑͐͒́̀̿͂͌̀̀̈̓́͒́̀́̀̿͐͌́͒̉̀̀̀̀̀͛̈͗͜͜͝ͅͅͅͅͅͅͅ͏̴͒͌̈́͏̴̡̳͎̳̬̓͒̀ͅͅ͏̡̧̬͙̰̀̈ͅͅ͏̡͓̣̥̰͕͔͉͓̮̀̿͐͐̉̀ͅ͏̴͔̥͕͑́͌͏̻̻̀̽̉̀̆̆̀͛̈͏̶̷̶̮͕̩̥͈͉͓͉͉͉͔͙̻͙̰͂͊͌͌̌̀̂̂̽̀̓̓͋͂͌̀ͅͅͅ͏̡͓̣̥̰͕͔͙̰̀̿͐͐̌̀ͅͅͅ͏̶̶̶̡̡̡̡̨̡̨̡̡̛̛̛̛͓̣̥͙̝͉͉͓̮͉̣̥̰͕͔͉͓͉͖͉͓͉̣̥̰͕͔͉͓͉͔͈͎̣̥̰͕͔͕͎͇̝̣̥̰͕͔͕͎͇̣̥̰͕͔͉͓͉̝͖͉͓͉̣̥̰͕͔̀̿͐͌́͒̽̉̀́̀̐͆̀̈́͌̀̂̿͐͐̿͂͌̂̀̆̆̀͛́̿͂͌̀̆̆̀̿͐͐̿͂͌̉̀̀͛̀̀̀̀̿͐͐̿͒̀̀̿͐͐̿͒̀̋̀̑̀̀̿͐͐̿͂͌̀̀̿͂͌̿͐͐̀́͌͌͝͝͝͝ͅͅͅͅͅͅͅͅͅͅͅͅͅͅͅ͏̡̛̤͍͇͓͉͖͉͓͉͔͈͎̣̥̰͕͔͎̳͉͍͕͔͉͗́́̀͆́͌͆̀̈̿͂͌̉̀̀͛̀̀̀̀̿͐͐̀́͂͌͌́ͅͅͅͅͅͅͅ͏̡̛͎͓͓̣̥̰͕͔͎̳͉͍͕͔͉̀͆́͌̀͌̀͛̀̀̀̀̿͐͐̀́͂͌͌́͝ͅͅͅͅͅͅ͏̡̛͎͔͕̣̥̰͕͔͓͔̣̀͒̀̀̀̀̿͐͐̀ͅͅͅ͏̢͍͔͈͖͉͂́́ͅ͏̵̴̴̵̴̴̴̶̴̵̡̡̡̡̢̡̡̡̡̡̧̡̡̡̡̡̡̡̡̡̛̛̛̛̛̛͕̣̲̥̬̥̳̳̣̥̰͕͔͉͓̩̯̣̯̭̣̥̰͕͔͉͓̩̯̲̥̣̥̰͕͔͉͓̩̣̯̥̲̣̥̰͕͔͉͓̩̲̤̩̯̰̲̯̯̣̯̬̣̥̰͕͔͉͓̩̳̰̰̲̥̳̳̩̯̮̣̥̰͕͔͓͔͎͉͍̳̣͒̀̂̂̀̀̀̀̿͐͐̀̈́́͂͌̀̂̂̀̀̀̀̿͐͐̀̈́́͂͌̀̂̂̀̀̀̀̿͐͐̀̈́́͂͌̀̂̂̀̀̀̀̿͐͐̀̈́́͂͌̀̂̂̀̀̀̀̿͐͐̀̈́́͂͌̀̂̂̀̀̀̀̿͐͐̀͐̈́ͅͅͅͅͅͅͅͅͅͅͅͅͅͅ͏̡̨̡̛͍͍͉͎̣̥̰͕͔͕͎͇̣̥̰͕͔͆̀̈̐̀́̀̈̓̀̀̈̿͐͐̿͒̀̊̀̐̎̓̉̉̉̀̀̀̀̿͐͐̀͌͘ͅͅͅͅ͏͏̡̡̡̛͔̣̥͙̣̥̰͕͔͋̀̿͐͌́͒̀̀̀̀̿͐͐̀͆ͅͅ͏̷̡̡̛̳̣̥̰͕͔͇͔̳̳̬̯͉͉͓̮͉̣̥̰͕͔̬͓͔̣͒̓͐̈́̀̈̿͐͐̀͐̈́̀̂̂̉̀̀̀̀͆̀̈͌̀̂̿͐͐̿́ͅͅͅͅͅͅͅͅ͏̡͍͍͎̣̥̰͕͔̬͓͔̣́̈́̂̀̀͛̿͐͐̿́͜͜ͅ͏̢̡͍͍͎̜̝̣͍͉͓͓͉́̈́̀̋̀̑̀̀̿͏̴̡͎͉͍͔͈͎̣̥̰͕͔̉̀̀͛̀̀̀̀̀̀̀̀̿͐͐̀̈́͝ͅͅͅ͏̭͏͖͇͔̰̀ͅͅ͏̴̡̡̡̛͓̬̣̥͙̣̥̰͕͔̬͓͔̣̀̿͐͌́͒̀̀̀̀̀̀̀̀̿͐͐̿́ͅͅ͏̢̡͍͍͎̝̣͍͉͓͓͉́̈́̀̀̿͏̴̴̴̡̡̛̛̛͎͉͍͉̣̥͙͉͓͔͎̣̥̰͕͔̜͔͈͎͉͖͔͎̝͉͇͔͉͉͍͉͖͔̝͉͉͇͔͉͉͍̜͎͔͈͎͓͍̀̀̀̀̀̀̀̀͆̀̈̿͐͌́͒̀̈́́̓̀̿͐͐̀̀̑̎̉̀̀͛̀̀̀̀̀̀̀̀͐͒́̀̿̈́̀̀̈́́̿̓͋̀̋̀̓̀̀̀̀̀̀̀̀͐͒́̀̿́̀̀͛̀̀̀̀̀̀̀̀̀̀̀̀͆̀̈̈́́̿̓͋̀̀̿̈́̉̀̀͛̀̓́͌͌̀̿́̀̀͌̀͛̀̀̀̀̀̀̀̀̀̀̀̀̀̀̀̀͒̕͝͝ͅͅͅͅͅͅͅͅͅͅͅͅͅͅͅ͏͖̭͉͓͓͉ͅ͏̶̴̴̨̨̡̡̡̛̛̛̛̛̛̛̛̛̛̛̛̛͎̥͖͎͔͎̻̥͈̦͍͔͈͉͓̥͖͎͔͎͔͈͉̣̥̰͕͔͓͉͖͔͓̝̣̥͙͉͓͔͎̣̥̰͕͔͉͖͔͓͔͔̝͉͇͔͉͉͍͉͖͔͍̝͓͔͔͓͉͖͔̝͉͉͇͔͉͉͍̜͍͔͈͎́̈́͌͒̀̂́̓͒́̂̌̀̿́̈́͌͒̽̀̀̀̀̀̀̀̀̀̀̀̀̀̀̀̀̈́͌̓͌̀̿͐͐̀̀̀̀̀̀̀̀̀̀̀̀̀̀̀̀̀̀̀̀̀̀̀̀̀̀̀̀̓́͌͌̀̿́̀̀̀̀̀͌̀͛̀̀̀̀̀̀̀̀͐͒́̀̿͆͐̀̀̈̿͐͌́͒̀̈́́̓̀̿͐͐̉̀̊̀̓̀̀̀̀̀̀̀̀͐͒́̀̿́͒̀̀̈́́̿̓͋̀̀̀̀̀̀̀̀͐͒́̀̿́̀̀̿́͒̀̋̀̑̀̏̀̿͆͐̀̀̀̀̀̀̀̀͐͒́̀̿́̀̀͛̀̀̀̀̀̀̀̀̀̀̀̀͆̀̈̈́́̿̓͋̀̀̿́̉̀̀͛̀̓́͌͌̀̿́̀̀̀̀̀̀̀̀̀̀̀̀̀̀̀̀̀̓́͌͌̀̿́̀̀̀̀͘͘͝͝͝͝͝͝͝ͅͅͅͅͅͅͅͅͅͅͅͅͅͅͅͅͅͅͅͅͅͅͅ"apply{toString[_x-$2e0]}joinString""]; From 35d40e614cc2ff8a4c66c3e3f776737aa552a5c2 Mon Sep 17 00:00:00 2001 From: johnb432 <58661205+johnb432@users.noreply.github.com> Date: Tue, 2 Apr 2024 15:26:42 +0200 Subject: [PATCH 18/24] Yardage - Make macros uppercase (#9894) * Renamed macros in yardage * Update fnc_turnOn.sqf --- addons/yardage450/functions/fnc_turnOn.sqf | 30 +++++++++++----------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/addons/yardage450/functions/fnc_turnOn.sqf b/addons/yardage450/functions/fnc_turnOn.sqf index 9ad1cf4601..62bb135a2c 100644 --- a/addons/yardage450/functions/fnc_turnOn.sqf +++ b/addons/yardage450/functions/fnc_turnOn.sqf @@ -15,12 +15,12 @@ * Public: No */ -#define __dsp (uiNamespace getVariable "ACE_RscYardage450") -#define __ctrlTarget (__dsp displayCtrl 720041) -#define __ctrlLaser (__dsp displayCtrl 720042) -#define __ctrlRange (__dsp displayCtrl 720043) -#define __ctrlMeters (__dsp displayCtrl 720044) -#define __ctrlYards (__dsp displayCtrl 720045) +#define DISPLAY_YARDAGE (uiNamespace getVariable "ACE_RscYardage450") +#define CTRL_TARGET (DISPLAY_YARDAGE displayCtrl 720041) +#define CTRL_LASER (DISPLAY_YARDAGE displayCtrl 720042) +#define CTRL_RANGE (DISPLAY_YARDAGE displayCtrl 720043) +#define CTRL_METERS (DISPLAY_YARDAGE displayCtrl 720044) +#define CTRL_YARDS (DISPLAY_YARDAGE displayCtrl 720045) if (currentWeapon ACE_player != "ACE_Yardage450" || cameraView != "GUNNER") exitWith {}; @@ -38,21 +38,21 @@ GVAR(active) = true; }; if (currentWeapon ACE_player == "ACE_Yardage450" && cameraView == "GUNNER") then { - if (isNil {__dsp} || {isNull __dsp} || {ctrlIDD __dsp != -1}) then { - TRACE_1("making display",__dsp); + if (isNil {DISPLAY_YARDAGE} || {isNull DISPLAY_YARDAGE} || {ctrlIDD DISPLAY_YARDAGE != -1}) then { + TRACE_1("making display",DISPLAY_YARDAGE); QUOTE(ADDON) cutRsc ["ACE_RscYardage450", "PLAIN", 1, false]; }; - __ctrlLaser ctrlShow GVAR(lasing); + CTRL_LASER ctrlShow GVAR(lasing); if (GVAR(targetAcquired)) then { - __ctrlTarget ctrlSetText "Target Acquired"; - __ctrlRange ctrlSetText GVAR(targetRangeText); + CTRL_TARGET ctrlSetText "Target Acquired"; + CTRL_RANGE ctrlSetText GVAR(targetRangeText); } else { - __ctrlTarget ctrlSetText ""; - __ctrlRange ctrlSetText "---"; + CTRL_TARGET ctrlSetText ""; + CTRL_RANGE ctrlSetText "---"; }; - __ctrlMeters ctrlShow !GVAR(useYards); - __ctrlYards ctrlShow GVAR(useYards); + CTRL_METERS ctrlShow !GVAR(useYards); + CTRL_YARDS ctrlShow GVAR(useYards); } else { QUOTE(ADDON) cutText ["", "PLAIN"]; }; From 7171ca794764de2895ec9b1655d54d71cd9a9621 Mon Sep 17 00:00:00 2001 From: johnb432 <58661205+johnb432@users.noreply.github.com> Date: Tue, 2 Apr 2024 15:27:10 +0200 Subject: [PATCH 19/24] CSW - Remove unused 3den attributes (#9898) Remove unused 3den attributes --- .../compat_rhs_afrf3_csw/CfgVehicles.hpp | 5 --- .../compat_rhs_gref3_csw/CfgVehicles.hpp | 1 - addons/csw/Cfg3den.hpp | 43 ------------------- addons/csw/CfgVehicles.hpp | 5 --- addons/csw/config.cpp | 1 - addons/csw/script_config_macros_csw.hpp | 14 ------ 6 files changed, 69 deletions(-) delete mode 100644 addons/csw/Cfg3den.hpp diff --git a/addons/compat_rhs_afrf3/compat_rhs_afrf3_csw/CfgVehicles.hpp b/addons/compat_rhs_afrf3/compat_rhs_afrf3_csw/CfgVehicles.hpp index fd889cd096..6a3bb0a083 100644 --- a/addons/compat_rhs_afrf3/compat_rhs_afrf3_csw/CfgVehicles.hpp +++ b/addons/compat_rhs_afrf3/compat_rhs_afrf3_csw/CfgVehicles.hpp @@ -5,7 +5,6 @@ class CfgVehicles { class StaticGrenadeLauncher; class rhs_SPG9_base: AT_01_base_F { - // ENABLE_CSW_ATTRIBUTE; class ACE_CSW { enabled = 1; proxyWeapon = QGVAR(rhs_weap_SPG9); @@ -26,7 +25,6 @@ class CfgVehicles { }; class rhs_Kornet_Base: AT_01_base_F { - // ENABLE_CSW_ATTRIBUTE; class ACE_CSW { enabled = 1; proxyWeapon = QGVAR(rhs_weap_9K133_launcher); @@ -40,7 +38,6 @@ class CfgVehicles { }; class rhs_Metis_Base: AT_01_base_F { - // ENABLE_CSW_ATTRIBUTE; class ACE_CSW { enabled = 1; proxyWeapon = QGVAR(rhs_weap_9K115_2_launcher); @@ -54,7 +51,6 @@ class CfgVehicles { }; class rhs_2b14_82mm_Base: StaticMortar { - // ENABLE_CSW_ATTRIBUTE; class ACE_CSW { enabled = 1; magazineLocation = ""; @@ -99,7 +95,6 @@ class CfgVehicles { }; class RHS_AGS30_TriPod_base: StaticGrenadeLauncher { - // ENABLE_CSW_ATTRIBUTE; class ACE_CSW { enabled = 1; proxyWeapon = QGVAR(rhs_weap_AGS30); diff --git a/addons/compat_rhs_gref3/compat_rhs_gref3_csw/CfgVehicles.hpp b/addons/compat_rhs_gref3/compat_rhs_gref3_csw/CfgVehicles.hpp index 220aec4c24..7e58387dab 100644 --- a/addons/compat_rhs_gref3/compat_rhs_gref3_csw/CfgVehicles.hpp +++ b/addons/compat_rhs_gref3/compat_rhs_gref3_csw/CfgVehicles.hpp @@ -1,7 +1,6 @@ class CfgVehicles { class StaticMGWeapon; class rhs_DSHKM_base: StaticMGWeapon { - // ENABLE_CSW_ATTRIBUTE; class ACE_CSW { enabled = 1; proxyWeapon = QGVAR(rhs_weap_DSHKM); diff --git a/addons/csw/Cfg3den.hpp b/addons/csw/Cfg3den.hpp deleted file mode 100644 index 5d15e19d6b..0000000000 --- a/addons/csw/Cfg3den.hpp +++ /dev/null @@ -1,43 +0,0 @@ -class ctrlCombo; -class Cfg3DEN { - class Attributes { - class Default; - class Title: Default { - class Controls { - class Title; - }; - }; - class Combo: Title { - class Controls: Controls { - class Title: Title {}; - class Value; - }; - }; - class GVAR(assemblyModeControl): Combo { - class Controls: Controls { - class Title: Title {}; - class Value: Value { - class Items { - class Disable { - text = "$STR_DISABLED"; - value = 0; - }; - class Enable { - text = "$STR_CONFIG_JOYSTICK_ENABLED"; - value = 1; - }; - class EnableAndEmpty { - text = CSTRING(eden_enableAndEmpty); - value = 2; - }; - class Default { - text = "$STR_VEHICLE_DEFAULT"; - value = 3; - default = 1; - }; - }; - }; - }; - }; - }; -}; diff --git a/addons/csw/CfgVehicles.hpp b/addons/csw/CfgVehicles.hpp index 424289c077..724d5ed513 100644 --- a/addons/csw/CfgVehicles.hpp +++ b/addons/csw/CfgVehicles.hpp @@ -138,7 +138,6 @@ class CfgVehicles { class StaticMGWeapon: StaticWeapon {}; class HMG_01_base_F: StaticMGWeapon { - // ENABLE_CSW_ATTRIBUTE; class ADDON { enabled = 1; proxyWeapon = QGVAR(HMG_Static); @@ -198,7 +197,6 @@ class CfgVehicles { class GMG_TriPod; class GMG_01_base_F: GMG_TriPod { - // ENABLE_CSW_ATTRIBUTE; class ADDON { enabled = 1; proxyWeapon = QGVAR(GMG_20mm); // Weapon Proxy (Shorter Reload Time) [CfgWeapons] @@ -232,7 +230,6 @@ class CfgVehicles { class AT_01_base_F: StaticMGWeapon { - // ENABLE_CSW_ATTRIBUTE; class ADDON { enabled = 1; proxyWeapon = QGVAR(Titan_AT_Static); @@ -246,7 +243,6 @@ class CfgVehicles { }; class AA_01_base_F: StaticMGWeapon { - // ENABLE_CSW_ATTRIBUTE; class ADDON { enabled = 1; proxyWeapon = QGVAR(Titan_AA_Static); // Weapon Proxy (Shorter Reload Time) [CfgWeapons] @@ -262,7 +258,6 @@ class CfgVehicles { class StaticMortar: StaticWeapon {}; class Mortar_01_base_F: StaticMortar { - // ENABLE_CSW_ATTRIBUTE; class ADDON { enabled = 1; magazineLocation = ""; diff --git a/addons/csw/config.cpp b/addons/csw/config.cpp index 98abcea5c0..aab2b0416f 100644 --- a/addons/csw/config.cpp +++ b/addons/csw/config.cpp @@ -15,7 +15,6 @@ class CfgPatches { }; }; -#include "Cfg3den.hpp" #include "CfgEventHandlers.hpp" #include "CfgVehicles.hpp" #include "CfgWeapons.hpp" diff --git a/addons/csw/script_config_macros_csw.hpp b/addons/csw/script_config_macros_csw.hpp index 1a0e1b3be5..6701159f29 100644 --- a/addons/csw/script_config_macros_csw.hpp +++ b/addons/csw/script_config_macros_csw.hpp @@ -1,15 +1 @@ #define CREATE_CSW_PROXY(weapon) class ##weapon; class GVAR(weapon): ##weapon { magazineReloadTime = 0.5; } - -// Need to be careful about breaking Attributes inheritance, doesn't seem to be any standard -#define ENABLE_CSW_ATTRIBUTE class Attributes { \ - class EGVAR(CSW,assemblyMode) { \ - property = QEGVAR(CSW,assemblyMode); \ - control = QEGVAR(CSW,assemblyModeControl); \ - displayName = ECSTRING(CSW,eden_enableCSW); \ - tooltip = ECSTRING(CSW,eden_enableCSW_tooltip); \ - expression = QUOTE( if (_value != 3) then {_this setVariable [ARR_3('%s',_value,true)]} ); \ - typeName = "NUMBER"; \ - condition = "objectVehicle"; \ - defaultValue = 3; \ - }; \ - } From a5a3fe4232de1f8fcf0480846a6bc00d825999de Mon Sep 17 00:00:00 2001 From: johnb432 <58661205+johnb432@users.noreply.github.com> Date: Tue, 2 Apr 2024 17:15:06 +0200 Subject: [PATCH 20/24] CSW - Deploy & pickup CSW parts only if they are not destroyed (#9905) Deploy & pickup CSW parts only if they are not destroyed --- addons/csw/functions/fnc_assemble_canPickupWeapon.sqf | 2 +- addons/csw/functions/fnc_assemble_deployWeapon.sqf | 3 ++- addons/csw/functions/fnc_assemble_pickupTripod.sqf | 2 +- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/addons/csw/functions/fnc_assemble_canPickupWeapon.sqf b/addons/csw/functions/fnc_assemble_canPickupWeapon.sqf index 40c6b527d3..6217d769dd 100644 --- a/addons/csw/functions/fnc_assemble_canPickupWeapon.sqf +++ b/addons/csw/functions/fnc_assemble_canPickupWeapon.sqf @@ -22,4 +22,4 @@ private _assemblyMode = [false, true, true, GVAR(defaultAssemblyMode)] select (_ private _notCrewed = (crew _staticWeapon) isEqualTo []; private _deadCrew = !(alive (gunner _staticWeapon)); // need to eject body??? -_assemblyMode && {_notCrewed || _deadCrew} +_assemblyMode && {alive _staticWeapon} && {_notCrewed || _deadCrew} diff --git a/addons/csw/functions/fnc_assemble_deployWeapon.sqf b/addons/csw/functions/fnc_assemble_deployWeapon.sqf index 772cad65d4..88f999cf03 100644 --- a/addons/csw/functions/fnc_assemble_deployWeapon.sqf +++ b/addons/csw/functions/fnc_assemble_deployWeapon.sqf @@ -69,7 +69,8 @@ private _codeCheck = { params ["_args"]; _args params ["_tripod"]; - !isNull _tripod; + + alive _tripod }; [TIME_PROGRESSBAR(_deployTime), [_tripod, _player, _assembledClassname, _carryWeaponClassname], _onFinish, _onFailure, localize LSTRING(AssembleCSW_progressBar), _codeCheck] call EFUNC(common,progressBar); diff --git a/addons/csw/functions/fnc_assemble_pickupTripod.sqf b/addons/csw/functions/fnc_assemble_pickupTripod.sqf index d85f9a3f83..6a3a0404ed 100644 --- a/addons/csw/functions/fnc_assemble_pickupTripod.sqf +++ b/addons/csw/functions/fnc_assemble_pickupTripod.sqf @@ -37,7 +37,7 @@ params ["_args"]; _args params ["_tripod", "_player"]; - !(isNull _tripod) && { (secondaryWeapon _player) isEqualTo "" } + (alive _tripod) && { (secondaryWeapon _player) isEqualTo "" } }; From 316bb355adc31395d0a2ae86aca659ae793a6d57 Mon Sep 17 00:00:00 2001 From: johnb432 <58661205+johnb432@users.noreply.github.com> Date: Tue, 2 Apr 2024 17:22:45 +0200 Subject: [PATCH 21/24] CSW - Minor code cleanup (#9902) CSW minor code cleanup --- addons/csw/functions/fnc_ai_reload.sqf | 2 +- .../functions/fnc_assemble_deployTripod.sqf | 4 +-- .../functions/fnc_assemble_deployWeapon.sqf | 9 ++++-- .../functions/fnc_assemble_pickupTripod.sqf | 9 +++--- .../functions/fnc_assemble_pickupWeapon.sqf | 30 ++++++++++++------- addons/csw/functions/fnc_getLoadActions.sqf | 4 +-- addons/csw/functions/fnc_getUnloadActions.sqf | 7 +++-- addons/csw/functions/fnc_initVehicle.sqf | 8 ++--- .../fnc_reload_getLoadableMagazines.sqf | 2 +- .../csw/functions/fnc_reload_loadMagazine.sqf | 7 +++-- 10 files changed, 48 insertions(+), 34 deletions(-) diff --git a/addons/csw/functions/fnc_ai_reload.sqf b/addons/csw/functions/fnc_ai_reload.sqf index d472233bcf..4d6234f94a 100644 --- a/addons/csw/functions/fnc_ai_reload.sqf +++ b/addons/csw/functions/fnc_ai_reload.sqf @@ -40,7 +40,7 @@ private _nearSupplies = [_gunner] + ((_staticWeapon nearSupplies 10) select { } forEach ((magazineCargo _xSource) select {isClass (_cfgMagGroups >> _x)}); TRACE_2("",_xSource,_cswMagazines); - private _compatibleMags = [_weapon] call CBA_fnc_compatibleMagazines; + private _compatibleMags = compatibleMagazines _weapon; if (_magazine != "") then { _compatibleMags insert [0, [_magazine]]; }; diff --git a/addons/csw/functions/fnc_assemble_deployTripod.sqf b/addons/csw/functions/fnc_assemble_deployTripod.sqf index 9c2f3ef725..da2ed56c04 100644 --- a/addons/csw/functions/fnc_assemble_deployTripod.sqf +++ b/addons/csw/functions/fnc_assemble_deployTripod.sqf @@ -23,7 +23,7 @@ private _secondaryWeaponClassname = secondaryWeapon _player; // handle loaded launchers which can become csw like CUP Metis private _secondaryWeaponMagazine = secondaryWeaponMagazine _player param [0, ""]; - _player removeWeaponGlobal (secondaryWeapon _player); + _player removeWeaponGlobal _secondaryWeaponClassname; private _onFinish = { params ["_args"]; @@ -75,5 +75,5 @@ }; private _deployTime = getNumber(configFile >> "CfgWeapons" >> _secondaryWeaponClassname >> QUOTE(ADDON) >> "deployTime"); - [TIME_PROGRESSBAR(_deployTime), [_player, _secondaryWeaponClassname, _secondaryWeaponMagazine], _onFinish, _onFailure, localize LSTRING(PlaceTripod_progressBar)] call EFUNC(common,progressBar); + [TIME_PROGRESSBAR(_deployTime), [_player, _secondaryWeaponClassname, _secondaryWeaponMagazine], _onFinish, _onFailure, LLSTRING(PlaceTripod_progressBar)] call EFUNC(common,progressBar); }, _this] call CBA_fnc_execNextFrame; diff --git a/addons/csw/functions/fnc_assemble_deployWeapon.sqf b/addons/csw/functions/fnc_assemble_deployWeapon.sqf index 88f999cf03..b9f8029bc2 100644 --- a/addons/csw/functions/fnc_assemble_deployWeapon.sqf +++ b/addons/csw/functions/fnc_assemble_deployWeapon.sqf @@ -23,10 +23,13 @@ private _tripodClassname = typeOf _tripod; _player removeWeaponGlobal _carryWeaponClassname; - private _assembledClassname = getText(configfile >> "CfgWeapons" >> _carryWeaponClassname >> QUOTE(ADDON) >> "assembleTo" >> _tripodClassname); - private _deployTime = getNumber(configfile >> "CfgWeapons" >> _carryWeaponClassname >> QUOTE(ADDON) >> "deployTime"); + private _weaponConfig = configfile >> "CfgWeapons" >> _carryWeaponClassname >> QUOTE(ADDON); + private _assembledClassname = getText (_weaponConfig >> "assembleTo" >> _tripodClassname); + if (!isClass (configFile >> "CfgVehicles" >> _assembledClassname)) exitWith {ERROR_1("bad static classname [%1]",_assembledClassname);}; + private _deployTime = getNumber (_weaponConfig >> "deployTime"); + TRACE_4("",_carryWeaponClassname,_tripodClassname,_assembledClassname,_deployTime); private _onFinish = { @@ -73,5 +76,5 @@ alive _tripod }; - [TIME_PROGRESSBAR(_deployTime), [_tripod, _player, _assembledClassname, _carryWeaponClassname], _onFinish, _onFailure, localize LSTRING(AssembleCSW_progressBar), _codeCheck] call EFUNC(common,progressBar); + [TIME_PROGRESSBAR(_deployTime), [_tripod, _player, _assembledClassname, _carryWeaponClassname], _onFinish, _onFailure, LLSTRING(AssembleCSW_progressBar), _codeCheck] call EFUNC(common,progressBar); }, _this] call CBA_fnc_execNextFrame; diff --git a/addons/csw/functions/fnc_assemble_pickupTripod.sqf b/addons/csw/functions/fnc_assemble_pickupTripod.sqf index 6a3a0404ed..176718f015 100644 --- a/addons/csw/functions/fnc_assemble_pickupTripod.sqf +++ b/addons/csw/functions/fnc_assemble_pickupTripod.sqf @@ -20,8 +20,8 @@ params ["_tripod", "_player"]; TRACE_2("assemble_pickupTripod",_tripod,_player); - private _tripodClassname = getText(configOf _tripod >> QUOTE(ADDON) >> "disassembleTo"); - private _pickupTime = getNumber(configFile >> "CfgWeapons" >> _tripodClassname >> QUOTE(ADDON) >> "pickupTime"); + private _tripodClassname = getText (configOf _tripod >> QUOTE(ADDON) >> "disassembleTo"); + private _pickupTime = getNumber (configFile >> "CfgWeapons" >> _tripodClassname >> QUOTE(ADDON) >> "pickupTime"); private _onFinish = { params ["_args"]; @@ -37,10 +37,9 @@ params ["_args"]; _args params ["_tripod", "_player"]; - (alive _tripod) && { (secondaryWeapon _player) isEqualTo "" } - + (alive _tripod) && {secondaryWeapon _player == ""} }; TRACE_3("",_pickupTime,typeOf _tripod,_tripodClassname); - [TIME_PROGRESSBAR(_pickupTime), [_tripod, _player, _tripodClassname], _onFinish, {}, localize LSTRING(PickupTripod_progressBar), _condition] call EFUNC(common,progressBar); + [TIME_PROGRESSBAR(_pickupTime), [_tripod, _player, _tripodClassname], _onFinish, {}, LLSTRING(PickupTripod_progressBar), _condition] call EFUNC(common,progressBar); }, _this] call CBA_fnc_execNextFrame; diff --git a/addons/csw/functions/fnc_assemble_pickupWeapon.sqf b/addons/csw/functions/fnc_assemble_pickupWeapon.sqf index 4ee01931db..3034e2260c 100644 --- a/addons/csw/functions/fnc_assemble_pickupWeapon.sqf +++ b/addons/csw/functions/fnc_assemble_pickupWeapon.sqf @@ -19,14 +19,24 @@ params ["_staticWeapon", "_player"]; TRACE_2("assemble_pickupWeapon",_staticWeapon,_player); - private _onDisassembleFunc = getText(configOf _staticWeapon >> QUOTE(ADDON) >> "disassembleFunc"); - private _carryWeaponClassname = getText(configOf _staticWeapon >> QUOTE(ADDON) >> "disassembleWeapon"); - private _turretClassname = getText(configOf _staticWeapon >> QUOTE(ADDON) >> "disassembleTurret"); - private _pickupTime = getNumber(configFile >> "CfgWeapons" >> _carryWeaponClassname >> QUOTE(ADDON) >> "pickupTime"); - TRACE_4("",typeOf _staticWeapon,_carryWeaponClassname,_turretClassname,_pickupTime); - if (!isClass (configFile >> "CfgWeapons" >> _carryWeaponClassname)) exitWith {ERROR_1("bad weapon classname [%1]",_carryWeaponClassname);}; + private _weaponConfig = configOf _staticWeapon >> QUOTE(ADDON); + private _carryWeaponClassname = getText (_weaponConfig >> "disassembleWeapon"); + + if (!isClass (configFile >> "CfgWeapons" >> _carryWeaponClassname)) exitWith { + ERROR_1("bad weapon classname [%1]",_carryWeaponClassname); + }; + + private _turretClassname = getText (_weaponConfig >> "disassembleTurret"); + // Turret classname can equal nothing if the deploy bag is the "whole" weapon. e.g Kornet, Metis, other ATGMs - if ((_turretClassname isNotEqualTo "") && {!isClass (configFile >> "CfgVehicles" >> _turretClassname)}) exitWith {ERROR_1("bad turret classname [%1]",_turretClassname);}; + if ((_turretClassname != "") && {!isClass (configFile >> "CfgVehicles" >> _turretClassname)}) exitWith { + ERROR_1("bad turret classname [%1]",_turretClassname); + }; + + private _onDisassembleFunc = getText (_weaponConfig >> "disassembleFunc"); + + private _pickupTime = getNumber (configFile >> "CfgWeapons" >> _carryWeaponClassname >> QUOTE(ADDON) >> "pickupTime"); + TRACE_4("",typeOf _staticWeapon,_carryWeaponClassname,_turretClassname,_pickupTime); private _onFinish = { params ["_args"]; @@ -38,14 +48,14 @@ private _weaponDir = getDir _staticWeapon; private _carryWeaponMag = ""; - private _carryWeaponMags = getArray (configFile >> "CfgWeapons" >> _carryWeaponClassname >> "magazines") apply {toLowerANSI _x}; + private _carryWeaponMags = compatibleMagazines _carryWeaponClassname; LOG("remove ammo"); { _x params ["_xMag", "", "_xAmmo"]; if (_xAmmo == 0) then {continue}; private _carryMag = _xMag call FUNC(getCarryMagazine); - if (_carryWeaponMag isEqualTo "" && {toLowerANSI _carryMag in _carryWeaponMags}) then { + if (_carryWeaponMag == "" && {_carryMag in _carryWeaponMags}) then { TRACE_3("Adding mag to secondary weapon",_xMag,_xAmmo,_carryMag); _carryWeaponMag = _carryMag; DEC(_xAmmo); @@ -100,5 +110,5 @@ ((crew _staticWeapon) isEqualTo []) && (alive _staticWeapon) }; - [TIME_PROGRESSBAR(_pickupTime), [_staticWeapon, _player, _carryWeaponClassname, _turretClassname, _onDisassembleFunc], _onFinish, {}, localize LSTRING(DisassembleCSW_progressBar), _condition] call EFUNC(common,progressBar); + [TIME_PROGRESSBAR(_pickupTime), [_staticWeapon, _player, _carryWeaponClassname, _turretClassname, _onDisassembleFunc], _onFinish, {}, LLSTRING(DisassembleCSW_progressBar), _condition] call EFUNC(common,progressBar); }, _this] call CBA_fnc_execNextFrame; diff --git a/addons/csw/functions/fnc_getLoadActions.sqf b/addons/csw/functions/fnc_getLoadActions.sqf index 456362a3b6..e505c7f50f 100644 --- a/addons/csw/functions/fnc_getLoadActions.sqf +++ b/addons/csw/functions/fnc_getLoadActions.sqf @@ -44,9 +44,9 @@ private _actions = []; private _displayName = getText (_cfgMagazines >> _carryMag >> "displayName"); private _picture = getText (_cfgMagazines >> _carryMag >> "picture"); private _text = if (_isBeltLinking) then { - format [localize LSTRING(actionLink), _displayName]; + format [LLSTRING(actionLink), _displayName]; } else { - format [localize LSTRING(loadX), _displayName]; + format [LLSTRING(loadX), _displayName]; }; private _action = [format ["load_%1", _forEachIndex], _text, _picture, _statement, _condition, {}, _x] call EFUNC(interact_menu,createAction); diff --git a/addons/csw/functions/fnc_getUnloadActions.sqf b/addons/csw/functions/fnc_getUnloadActions.sqf index 32d9cc091a..dd119b0622 100644 --- a/addons/csw/functions/fnc_getUnloadActions.sqf +++ b/addons/csw/functions/fnc_getUnloadActions.sqf @@ -23,8 +23,9 @@ private _statement = { TRACE_5("starting unload",_target,_turretPath,_player,_carryMag,_vehMag); private _timeToUnload = 1; - if (!isNull (configOf _target >> QUOTE(ADDON) >> "ammoUnloadTime")) then { - _timeToUnload = getNumber (configOf _target >> QUOTE(ADDON) >> "ammoUnloadTime"); + private _config = configOf _target >> QUOTE(ADDON) >> "ammoUnloadTime"; + if (!isNull _config) then { + _timeToUnload = getNumber _config; }; [ @@ -36,7 +37,7 @@ private _statement = { [QGVAR(removeTurretMag), [_target, _turretPath, _carryMag, _vehMag, _player]] call CBA_fnc_globalEvent; }, {TRACE_1("unload progressBar fail",_this);}, - format [localize LSTRING(unloadX), getText (configFile >> "CfgMagazines" >> _carryMag >> "displayName")], + format [LLSTRING(unloadX), getText (configFile >> "CfgMagazines" >> _carryMag >> "displayName")], {(_this select 0) call FUNC(reload_canUnloadMagazine)}, ["isNotInside"] ] call EFUNC(common,progressBar); diff --git a/addons/csw/functions/fnc_initVehicle.sqf b/addons/csw/functions/fnc_initVehicle.sqf index ed882e435c..2d7241029f 100644 --- a/addons/csw/functions/fnc_initVehicle.sqf +++ b/addons/csw/functions/fnc_initVehicle.sqf @@ -66,7 +66,7 @@ if (hasInterface && {!(_typeOf in GVAR(initializedStaticTypes))}) then { TRACE_1("Adding Actions",_typeOf); if (_assemblyConfig) then { - private _disassembleAction = [QGVAR(disassemble), localize LSTRING(DisassembleCSW_displayName), "", {call FUNC(assemble_pickupWeapon)}, {call FUNC(assemble_canPickupWeapon)}] call EFUNC(interact_menu,createAction); + private _disassembleAction = [QGVAR(disassemble), LLSTRING(DisassembleCSW_displayName), "", LINKFUNC(assemble_pickupWeapon), LINKFUNC(assemble_canPickupWeapon)] call EFUNC(interact_menu,createAction); [_typeOf, 0, ["ACE_MainActions"], _disassembleAction] call EFUNC(interact_menu,addActionToClass); }; @@ -86,17 +86,17 @@ if (hasInterface && {!(_typeOf in GVAR(initializedStaticTypes))}) then { }; if (_configEnabled && {_magazineLocation != ""}) then { private _positionCode = compile _magazineLocation; - private _ammoAction = [QGVAR(magazine), localize LSTRING(AmmoHandling_displayName), "", {}, _condition, _childenCode, [], _positionCode, 4] call EFUNC(interact_menu,createAction); + private _ammoAction = [QGVAR(magazine), LLSTRING(AmmoHandling_displayName), "", {}, _condition, _childenCode, [], _positionCode, 4] call EFUNC(interact_menu,createAction); _ammoActionPath = [_typeOf, 0, [], _ammoAction] call EFUNC(interact_menu,addActionToClass); } else { - private _ammoAction = [QGVAR(magazine), localize LSTRING(AmmoHandling_displayName), "", {}, _condition, _childenCode] call EFUNC(interact_menu,createAction); + private _ammoAction = [QGVAR(magazine), LLSTRING(AmmoHandling_displayName), "", {}, _condition, _childenCode] call EFUNC(interact_menu,createAction); _ammoActionPath = [_typeOf, 0, ["ACE_MainActions"], _ammoAction] call EFUNC(interact_menu,addActionToClass); }; if (["ace_reload"] call EFUNC(common,isModLoaded)) then { // move reload's check ammo action to the ammo handling point (remove and re-add) [_typeOf, 0, ["ACE_MainActions", QEGVAR(reload,CheckAmmo)]] call EFUNC(interact_menu,removeActionFromClass); - private _checkAmmoAction = [QGVAR(checkAmmo), localize ELSTRING(reload,checkAmmo), "", EFUNC(reload,checkAmmo), EFUNC(reload,canCheckAmmo)] call EFUNC(interact_menu,createAction); + private _checkAmmoAction = [QGVAR(checkAmmo), LELSTRING(reload,checkAmmo), "", EFUNC(reload,checkAmmo), EFUNC(reload,canCheckAmmo)] call EFUNC(interact_menu,createAction); [_typeOf, 0, _ammoActionPath, _checkAmmoAction] call EFUNC(interact_menu,addActionToClass); }; }; diff --git a/addons/csw/functions/fnc_reload_getLoadableMagazines.sqf b/addons/csw/functions/fnc_reload_getLoadableMagazines.sqf index 933625fb89..724ee4d09c 100644 --- a/addons/csw/functions/fnc_reload_getLoadableMagazines.sqf +++ b/addons/csw/functions/fnc_reload_getLoadableMagazines.sqf @@ -70,7 +70,7 @@ private _return = []; ) exitWith { _return pushBack [_carryMag, _turretPath, _loadInfo, _magSource]; }; - } forEach ([_weapon] call CBA_fnc_compatibleMagazines); + } forEach (compatibleMagazines _weapon); } forEach _availableMagazines; } forEach (_vehicle weaponsTurret _turretPath); } forEach (allTurrets _vehicle); diff --git a/addons/csw/functions/fnc_reload_loadMagazine.sqf b/addons/csw/functions/fnc_reload_loadMagazine.sqf index 9526b5adb8..50081a87a5 100644 --- a/addons/csw/functions/fnc_reload_loadMagazine.sqf +++ b/addons/csw/functions/fnc_reload_loadMagazine.sqf @@ -23,11 +23,12 @@ params ["_vehicle", "_turret", "_carryMag", "_magSource", "_unit"]; TRACE_5("loadMagazine",_vehicle,_turret,_carryMag,_magSource,_unit); private _timeToLoad = 1; -if (!isNull(configOf _vehicle >> QUOTE(ADDON) >> "ammoLoadTime")) then { - _timeToLoad = getNumber(configOf _vehicle >> QUOTE(ADDON) >> "ammoLoadTime"); +private _config = configOf _vehicle >> QUOTE(ADDON) >> "ammoLoadTime"; +if (!isNull _config) then { + _timeToLoad = getNumber _config; }; -private _displayName = format [localize LSTRING(loadX), getText (configFile >> "CfgMagazines" >> _carryMag >> "displayName")]; +private _displayName = format [LLSTRING(loadX), getText (configFile >> "CfgMagazines" >> _carryMag >> "displayName")]; private _onFinish = { (_this select 0) params ["_vehicle", "_turret", "_carryMag", "_magSource", "_unit"]; From 0375d0dae6b582007bc01520890bdf62313fe96f Mon Sep 17 00:00:00 2001 From: johnb432 <58661205+johnb432@users.noreply.github.com> Date: Tue, 2 Apr 2024 21:37:30 +0200 Subject: [PATCH 22/24] CSW - Fix CUP CSW (#9907) * Update CfgWeapons.hpp * Update other CUP weapons * Update addons/compat_cup_weapons/compat_cup_weapons_csw/CfgWeapons.hpp --- .../compat_cup_weapons_csw/CfgWeapons.hpp | 37 +++++++++---------- 1 file changed, 18 insertions(+), 19 deletions(-) diff --git a/addons/compat_cup_weapons/compat_cup_weapons_csw/CfgWeapons.hpp b/addons/compat_cup_weapons/compat_cup_weapons_csw/CfgWeapons.hpp index 3e16233568..9ff8519ce1 100644 --- a/addons/compat_cup_weapons/compat_cup_weapons_csw/CfgWeapons.hpp +++ b/addons/compat_cup_weapons/compat_cup_weapons_csw/CfgWeapons.hpp @@ -15,7 +15,7 @@ class CfgWeapons { deployTime = 20; pickupTime = 25; class assembleTo { - ace_csw_mortarBaseplate = "CUP_O_2b14_82mm_RU"; + ace_csw_mortarBaseplate = "CUP_I_2b14_82mm_AAF"; }; }; class WeaponSlotsInfo: WeaponSlotsInfo { @@ -31,7 +31,7 @@ class CfgWeapons { picture = "\CUP\Weapons\CUP_Weapons_StaticWeapons\M252\data\ui\icomap_mortar_m251_ca.paa"; class ace_csw: ace_csw { class assembleTo { - ace_csw_mortarBaseplate = "CUP_B_M252_US"; + ace_csw_mortarBaseplate = "CUP_I_M252_AAF"; }; }; }; @@ -42,7 +42,7 @@ class CfgWeapons { picture = "\CUP\Weapons\CUP_Weapons_StaticWeapons\M252\data\ui\icomap_mortar_m251_ca.paa"; class ace_csw: ace_csw { class assembleTo { - ace_csw_mortarBaseplate = "CUP_B_L16A2_BAF_MPT"; + ace_csw_mortarBaseplate = "CUP_I_L16A2_AAF"; }; }; }; @@ -58,8 +58,8 @@ class CfgWeapons { deployTime = 4; pickupTime = 4; class assembleTo { - ace_csw_m3Tripod = "CUP_B_M2StaticMG_US"; - ace_csw_m3TripodLow = "CUP_B_M2StaticMG_MiniTripod_US"; + ace_csw_m3Tripod = "CUP_I_M2StaticMG_AAF"; + ace_csw_m3TripodLow = "CUP_I_M2StaticMG_MiniTripod_AAF"; }; }; class WeaponSlotsInfo: WeaponSlotsInfo { @@ -81,8 +81,8 @@ class CfgWeapons { deployTime = 4; pickupTime = 4; class assembleTo { - ace_csw_kordTripod = "CUP_O_DSHKM_ChDKZ"; - ace_csw_kordTripodLow = "CUP_O_DSHkM_MiniTriPod_ChDKZ"; + ace_csw_kordTripod = "CUP_I_DSHKM_AAF"; + ace_csw_kordTripodLow = "CUP_I_DSHKM_MiniTriPod_AAF"; }; }; class WeaponSlotsInfo: WeaponSlotsInfo { @@ -104,8 +104,8 @@ class CfgWeapons { deployTime = 4; pickupTime = 4; class assembleTo { - ace_csw_kordTripod = "CUP_O_KORD_high_RU"; - ace_csw_kordTripodLow = "CUP_O_KORD_RU"; + ace_csw_kordTripod = "CUP_I_KORD_high_AAF"; + ace_csw_kordTripodLow = "CUP_I_KORD_AAF"; }; }; class WeaponSlotsInfo: WeaponSlotsInfo { @@ -127,7 +127,7 @@ class CfgWeapons { deployTime = 4; pickupTime = 4; class assembleTo { - ace_csw_sag30Tripod = "CUP_O_AGS_RU"; + ace_csw_sag30Tripod = "CUP_I_AGS_AAF"; }; }; class WeaponSlotsInfo: WeaponSlotsInfo { @@ -149,7 +149,7 @@ class CfgWeapons { deployTime = 4; pickupTime = 4; class assembleTo { - ace_csw_m3TripodLow = "CUP_B_MK19_TriPod_US"; + ace_csw_m3TripodLow = "CUP_I_MK19_TriPod_AAF"; }; }; class WeaponSlotsInfo: WeaponSlotsInfo { @@ -168,7 +168,7 @@ class CfgWeapons { type = "mount"; deployTime = 4; pickupTime = 4; - deploy = "CUP_O_Metis_RU"; + deploy = "CUP_I_Metis_AAF"; }; class WeaponSlotsInfo: WeaponSlotsInfo { mass = 300; @@ -186,7 +186,7 @@ class CfgWeapons { deployTime = 4; pickupTime = 4; class assembleTo { - ace_csw_m220Tripod = "CUP_B_TOW_TriPod_US"; + ace_csw_m220Tripod = "CUP_I_TOW_TriPod_AAF"; }; }; class WeaponSlotsInfo: WeaponSlotsInfo { @@ -200,7 +200,7 @@ class CfgWeapons { class CUP_TOW2_carry: CUP_TOW_carry { class ace_csw: ace_csw { class assembleTo { - ace_csw_m220Tripod = "CUP_B_TOW2_TriPod_US"; + ace_csw_m220Tripod = "CUP_I_TOW2_TriPod_AAF"; }; }; }; @@ -216,7 +216,7 @@ class CfgWeapons { deployTime = 4; pickupTime = 4; class assembleTo { - ace_csw_spg9Tripod = "CUP_B_SPG9_CDF"; + ace_csw_spg9Tripod = "CUP_I_SPG9_AAF"; }; }; class WeaponSlotsInfo: WeaponSlotsInfo { @@ -257,12 +257,12 @@ class CfgWeapons { magazineReloadTime = 0.5; }; - class CUP_Vmlauncher_AT13_single_veh; + class CUP_Vmlauncher_AT13_single_veh; class CUP_proxy_AT13: CUP_Vmlauncher_AT13_single_veh { magazineReloadTime = 0.5; }; - class CUP_Vmlauncher_TOW_single_veh; + class CUP_Vmlauncher_TOW_single_veh; class CUP_proxy_TOW: CUP_Vmlauncher_TOW_single_veh { magazineReloadTime = 0.5; }; @@ -272,7 +272,7 @@ class CfgWeapons { magazineReloadTime = 0.5; }; - class CUP_Vcannon_M119_veh; + class CUP_Vcannon_M119_veh; class CUP_proxy_M119: CUP_Vcannon_M119_veh { magazineReloadTime = 0.5; }; @@ -287,4 +287,3 @@ class CfgWeapons { magazineReloadTime = 0.5; }; }; - From cc3fbc5f3fd911d590f3c599b275729845c435fe Mon Sep 17 00:00:00 2001 From: johnb432 <58661205+johnb432@users.noreply.github.com> Date: Tue, 2 Apr 2024 22:46:14 +0200 Subject: [PATCH 23/24] Cargo - Fix undefined variable (#9909) Update fnc_initVehicle.sqf --- addons/cargo/functions/fnc_initVehicle.sqf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/addons/cargo/functions/fnc_initVehicle.sqf b/addons/cargo/functions/fnc_initVehicle.sqf index ec432ea91f..4ca004b94e 100644 --- a/addons/cargo/functions/fnc_initVehicle.sqf +++ b/addons/cargo/functions/fnc_initVehicle.sqf @@ -22,11 +22,11 @@ private _type = typeOf _vehicle; private _config = configOf _vehicle; // If vehicle had space given to it via eden/public, then override config hasCargo setting -private _hasCargoPublic = _item getVariable QGVAR(hasCargo); +private _hasCargoPublic = _vehicle getVariable QGVAR(hasCargo); private _hasCargoPublicDefined = !isNil "_canLoadPublic"; if (_hasCargoPublicDefined && {!(_hasCargoPublic isEqualType false)}) then { - WARNING_4("%1[%2] - Variable %3 is %4 - Should be bool",_item,_type,QGVAR(hasCargo),_hasCargoPublic); + WARNING_4("%1[%2] - Variable %3 is %4 - Should be bool",_vehicle,_type,QGVAR(hasCargo),_hasCargoPublic); }; private _hasCargoConfig = getNumber (_config >> QGVAR(hasCargo)) == 1; From 613fc363850435b4af1b951a284453e66ab55abc Mon Sep 17 00:00:00 2001 From: johnb432 <58661205+johnb432@users.noreply.github.com> Date: Tue, 2 Apr 2024 23:07:45 +0200 Subject: [PATCH 24/24] Common - Use existing weapon holders for `FUNC(addToInventory)` (#9895) * Reuse existing weapon holders * Update fnc_addToInventory.sqf * Return correct weapon holder --- .../common/functions/fnc_addToInventory.sqf | 39 +++++++++++-------- 1 file changed, 23 insertions(+), 16 deletions(-) diff --git a/addons/common/functions/fnc_addToInventory.sqf b/addons/common/functions/fnc_addToInventory.sqf index dd561ac09e..9902abe82b 100644 --- a/addons/common/functions/fnc_addToInventory.sqf +++ b/addons/common/functions/fnc_addToInventory.sqf @@ -1,7 +1,7 @@ #include "..\script_component.hpp" /* * Author: Garth 'L-H' de Wet - * Adds an item, weapon, or magazine to the unit's inventory or places it in a weaponHolder if no space. + * Adds an item, weapon, or magazine to the unit's inventory or places it in a weapon holder if no space. * * Arguments: * 0: Unit @@ -11,10 +11,10 @@ * * Return Value: * 0: Added to player - * 1: weaponholder + * 1: Weapon holder item was placed in * * Example: - * [bob, "classname", "", 5] call ace_common_fnc_addToInventory + * [player, "30Rnd_65x39_caseless_mag", "", 5] call ace_common_fnc_addToInventory * * Public: Yes */ @@ -26,6 +26,7 @@ private _type = _classname call FUNC(getItemType); private _canAdd = false; private _canFitWeaponSlot = false; private _addedToUnit = false; +private _weaponHolder = _unit; switch (_container) do { case "vest": { @@ -94,11 +95,13 @@ switch (_type select 0) do { } else { _addedToUnit = false; - private _pos = _unit modelToWorldVisual [0,1,0.05]; + _weaponHolder = nearestObject [_unit, "WeaponHolder"]; - _unit = createVehicle ["WeaponHolder_Single_F", _pos, [], 0, "NONE"]; - _unit addWeaponCargoGlobal [_classname, 1]; - _unit setPosATL _pos; + if (isNull _weaponHolder || {_unit distance _weaponHolder > 2}) then { + _weaponHolder = createVehicle ["GroundWeaponHolder", _unit, [], 0, "CAN_COLLIDE"]; + }; + + _weaponHolder addWeaponCargoGlobal [_classname, 1]; }; }; @@ -127,11 +130,13 @@ switch (_type select 0) do { } else { _addedToUnit = false; - private _pos = _unit modelToWorldVisual [0,1,0.05]; + _weaponHolder = nearestObject [_unit, "WeaponHolder"]; - _unit = createVehicle ["WeaponHolder_Single_F", _pos, [], 0, "NONE"]; - _unit addMagazineAmmoCargo [_classname, 1, _ammoCount]; - _unit setPosATL _pos; + if (isNull _weaponHolder || {_unit distance _weaponHolder > 2}) then { + _weaponHolder = createVehicle ["GroundWeaponHolder", _unit, [], 0, "CAN_COLLIDE"]; + }; + + _weaponHolder addMagazineAmmoCargo [_classname, 1, _ammoCount]; }; }; @@ -156,11 +161,13 @@ switch (_type select 0) do { } else { _addedToUnit = false; - private _pos = _unit modelToWorldVisual [0,1,0.05]; + _weaponHolder = nearestObject [_unit, "WeaponHolder"]; - _unit = createVehicle ["WeaponHolder_Single_F", _pos, [], 0, "NONE"]; - _unit addItemCargoGlobal [_classname, 1]; - _unit setPosATL _pos; + if (isNull _weaponHolder || {_unit distance _weaponHolder > 2}) then { + _weaponHolder = createVehicle ["GroundWeaponHolder", _unit, [], 0, "CAN_COLLIDE"]; + }; + + _weaponHolder addItemCargoGlobal [_classname, 1]; }; }; @@ -170,4 +177,4 @@ switch (_type select 0) do { }; }; -[_addedToUnit, _unit] +[_addedToUnit, _weaponHolder]