From 03332f001928af312c43dd5288aaf899fcc46c03 Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Tue, 26 Sep 2023 16:09:34 -0500 Subject: [PATCH 001/348] Prep 3.16.0 Build 70 --- README.md | 2 +- addons/main/script_mod.hpp | 2 +- addons/main/script_version.hpp | 6 +++--- docs/_config.yml | 6 +++--- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index 61001011d4..2aa8f9c669 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,7 @@

- ACE3 Version + ACE3 Version ACE3 Issues diff --git a/addons/main/script_mod.hpp b/addons/main/script_mod.hpp index 167466d853..12faeb07c0 100644 --- a/addons/main/script_mod.hpp +++ b/addons/main/script_mod.hpp @@ -11,7 +11,7 @@ // MINIMAL required version for the Mod. Components can specify others.. #define REQUIRED_VERSION 2.14 -#define REQUIRED_CBA_VERSION {3,15,7} +#define REQUIRED_CBA_VERSION {3,16,0} #ifndef COMPONENT_BEAUTIFIED #define COMPONENT_BEAUTIFIED COMPONENT diff --git a/addons/main/script_version.hpp b/addons/main/script_version.hpp index 098eec73cb..fa5af189d3 100644 --- a/addons/main/script_version.hpp +++ b/addons/main/script_version.hpp @@ -1,4 +1,4 @@ #define MAJOR 3 -#define MINOR 15 -#define PATCHLVL 2 -#define BUILD 69 +#define MINOR 16 +#define PATCHLVL 0 +#define BUILD 70 diff --git a/docs/_config.yml b/docs/_config.yml index 1ac4f3a7a5..9051aa2fd9 100644 --- a/docs/_config.yml +++ b/docs/_config.yml @@ -8,9 +8,9 @@ ace: githubUrl: https://github.com/acemod/ACE3 version: major: 3 - minor: 15 - patch: 2 - build: 69 + minor: 16 + patch: 0 + build: 70 markdown: kramdown From b818f9f6e4ed36ae545691f2a3dfbd9135539c62 Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Wed, 11 Oct 2023 16:01:11 -0500 Subject: [PATCH 002/348] Prep 3.16.0 Build 71 --- addons/main/script_version.hpp | 2 +- docs/_config.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/addons/main/script_version.hpp b/addons/main/script_version.hpp index fa5af189d3..0303b1e804 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 0 -#define BUILD 70 +#define BUILD 71 diff --git a/docs/_config.yml b/docs/_config.yml index 9051aa2fd9..a571ccd498 100644 --- a/docs/_config.yml +++ b/docs/_config.yml @@ -10,7 +10,7 @@ ace: major: 3 minor: 16 patch: 0 - build: 70 + build: 71 markdown: kramdown From 60f0249161c738a7b5366b8b85305d199f053ac0 Mon Sep 17 00:00:00 2001 From: Bob-Murphy <50651578+Bob-Murphy@users.noreply.github.com> Date: Tue, 17 Oct 2023 11:55:52 +0200 Subject: [PATCH 003/348] SPE Compat - Add Spearhead 1944 fuel drums to refuel system (#9505) * Create land.hpp * Update CfgVehicles.hpp --- addons/compat_spe/CfgVehicles.hpp | 1 + addons/compat_spe/CfgVehicles/land.hpp | 13 +++++++++++++ 2 files changed, 14 insertions(+) create mode 100644 addons/compat_spe/CfgVehicles/land.hpp diff --git a/addons/compat_spe/CfgVehicles.hpp b/addons/compat_spe/CfgVehicles.hpp index 9ed470ec58..62da370549 100644 --- a/addons/compat_spe/CfgVehicles.hpp +++ b/addons/compat_spe/CfgVehicles.hpp @@ -4,4 +4,5 @@ class CfgVehicles { #include "CfgVehicles\spe_boxes.hpp" #include "CfgVehicles\tracked.hpp" #include "CfgVehicles\wheeled.hpp" + #include "CfgVehicles\land.hpp" }; diff --git a/addons/compat_spe/CfgVehicles/land.hpp b/addons/compat_spe/CfgVehicles/land.hpp new file mode 100644 index 0000000000..68ec9d4d89 --- /dev/null +++ b/addons/compat_spe/CfgVehicles/land.hpp @@ -0,0 +1,13 @@ +// fuel objects + +class SPE_items_base; +class Land_SPE_Fuel_Barrel_German: SPE_items_base { + transportFuel = 0; + EGVAR(refuel,hooks)[] = {{0, 0, 0.5}}; // reference is Land_FlexibleTank_01_F + EGVAR(refuel,fuelCargo) = 300; // reference is Land_FlexibleTank_01_F +}; +class Land_SPE_Fuel_Barrel_US: SPE_items_base { + transportFuel = 0; + EGVAR(refuel,hooks)[] = {{0, 0, 0.5}}; // reference is Land_FlexibleTank_01_F + EGVAR(refuel,fuelCargo) = 300; // reference is Land_FlexibleTank_01_F +}; From 5686647b57cc8ccdf34bebe07e5b16f04d903a73 Mon Sep 17 00:00:00 2001 From: BrettMayson Date: Tue, 17 Oct 2023 03:58:43 -0600 Subject: [PATCH 004/348] Docs - use draft PR over WIP (#9504) docs: use draft pr over wip --- .github/CONTRIBUTING.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md index af6ab70854..a2e6e53c4d 100644 --- a/.github/CONTRIBUTING.md +++ b/.github/CONTRIBUTING.md @@ -36,7 +36,7 @@ We welcome anyone to contribute to this repository. Issues that we are actively When contributing to this repository, please first discuss the change you wish to make via issue or [Discord](https://acemod.org/discord) with the [ACE3 project maintainers](https://ace3.acemod.org/team.html) before making a change. This may not be necessary if you are contributing for something which has an existing issue in our repository already. -1. Please make a pull request (PR) as early as possible. This lets use help you in the proces of developing it. When opening a work in progress pull request, mark your PR with a `WIP:` prefix. +1. Please make a pull request (PR) as early as possible. This lets use help you in the proces of developing it. When opening a work in progress pull request, use GitHub's draft feature. This will mark the PR as a work in progress and will prevent it from being merged until you mark it as ready for review. 2. Describe what this pull request will do and how it solves this in the description of your PR. A clear intent and description of the way the issue is resolved will help us to review the PR more efficiently. 3. Please follow our [Development Guidelines](https://ace3.acemod.org/wiki/development/). From ed1ef14749f90b7c9105951751594521091c6219 Mon Sep 17 00:00:00 2001 From: Bob-Murphy <50651578+Bob-Murphy@users.noreply.github.com> Date: Tue, 17 Oct 2023 16:37:18 +0200 Subject: [PATCH 005/348] SPE Compat - Fix Spearhead 1944 fuel drums for refuel system (#9507) --- addons/compat_spe/CfgVehicles.hpp | 1 - addons/compat_spe/CfgVehicles/land.hpp | 13 ------------- addons/compat_spe/CfgVehicles/spe_boxes.hpp | 12 ++++++++++++ 3 files changed, 12 insertions(+), 14 deletions(-) delete mode 100644 addons/compat_spe/CfgVehicles/land.hpp diff --git a/addons/compat_spe/CfgVehicles.hpp b/addons/compat_spe/CfgVehicles.hpp index 62da370549..9ed470ec58 100644 --- a/addons/compat_spe/CfgVehicles.hpp +++ b/addons/compat_spe/CfgVehicles.hpp @@ -4,5 +4,4 @@ class CfgVehicles { #include "CfgVehicles\spe_boxes.hpp" #include "CfgVehicles\tracked.hpp" #include "CfgVehicles\wheeled.hpp" - #include "CfgVehicles\land.hpp" }; diff --git a/addons/compat_spe/CfgVehicles/land.hpp b/addons/compat_spe/CfgVehicles/land.hpp deleted file mode 100644 index 68ec9d4d89..0000000000 --- a/addons/compat_spe/CfgVehicles/land.hpp +++ /dev/null @@ -1,13 +0,0 @@ -// fuel objects - -class SPE_items_base; -class Land_SPE_Fuel_Barrel_German: SPE_items_base { - transportFuel = 0; - EGVAR(refuel,hooks)[] = {{0, 0, 0.5}}; // reference is Land_FlexibleTank_01_F - EGVAR(refuel,fuelCargo) = 300; // reference is Land_FlexibleTank_01_F -}; -class Land_SPE_Fuel_Barrel_US: SPE_items_base { - transportFuel = 0; - EGVAR(refuel,hooks)[] = {{0, 0, 0.5}}; // reference is Land_FlexibleTank_01_F - EGVAR(refuel,fuelCargo) = 300; // reference is Land_FlexibleTank_01_F -}; diff --git a/addons/compat_spe/CfgVehicles/spe_boxes.hpp b/addons/compat_spe/CfgVehicles/spe_boxes.hpp index 2d6afc9b4a..ebf70f5518 100644 --- a/addons/compat_spe/CfgVehicles/spe_boxes.hpp +++ b/addons/compat_spe/CfgVehicles/spe_boxes.hpp @@ -31,5 +31,17 @@ class SPE_Fuel_Barrel_US_01: SPE_Fuel_Barrel_base { EGVAR(refuel,hooks)[] = {{0.2,0,0.22}}; }; class SPE_Fuel_Barrel_German_01: SPE_Fuel_Barrel_base { + EGVAR(cargo,size) = 2; //reference SPE_Fuel_Barrel_US_01 + EGVAR(cargo,canLoad) = 1; //reference SPE_Fuel_Barrel_US_01 + + EGVAR(dragging,canCarry) = 1; //reference SPE_Fuel_Barrel_US_01 + EGVAR(dragging,carryPosition)[] = {0,1,1}; //reference SPE_Fuel_Barrel_US_01 + EGVAR(dragging,carryDirection) = 0; //reference SPE_Fuel_Barrel_US_01 + + EGVAR(dragging,canDrag) = 1; //reference SPE_Fuel_Barrel_US_01 + EGVAR(dragging,dragPosition)[] = {0,1.2,0}; //reference SPE_Fuel_Barrel_US_01 + EGVAR(dragging,dragDirection) = 0; //reference SPE_Fuel_Barrel_US_01 + + EGVAR(refuel,fuelCargo) = 208; //reference SPE_Fuel_Barrel_US_01 EGVAR(refuel,hooks)[] = {{0.32,0,-0.3}}; }; From 6e8a27c9a6615a57d5a775d4a1b82d5ec1183007 Mon Sep 17 00:00:00 2001 From: amsteadrayle <2516219+amsteadrayle@users.noreply.github.com> Date: Tue, 17 Oct 2023 10:43:44 -0400 Subject: [PATCH 006/348] Medical GUI - Remake body outline textures (#9503) Co-authored-by: jonpas --- .../data/body_image/arm_left_s.paa | Bin 27247 -> 27942 bytes .../data/body_image/arm_right_s.paa | Bin 27209 -> 27923 bytes addons/medical_gui/data/body_image/head_s.paa | Bin 25893 -> 26369 bytes .../data/body_image/leg_left_s.paa | Bin 28342 -> 29129 bytes .../data/body_image/leg_right_s.paa | Bin 28406 -> 28771 bytes .../medical_gui/data/body_image/torso_s.paa | Bin 27341 -> 27987 bytes extras/scripts/medical_dummy_outline.bat | 31 ++++++++++++++++++ 7 files changed, 31 insertions(+) create mode 100644 extras/scripts/medical_dummy_outline.bat diff --git a/addons/medical_gui/data/body_image/arm_left_s.paa b/addons/medical_gui/data/body_image/arm_left_s.paa index 58682a5a73cdd090071f698c78925e5df50540f8..4c55e6143ea150de197ba8d5bfa819272888426c 100644 GIT binary patch literal 27942 zcmeHQ3s@6ZzCUMXPC|HP5JEtN%#ar-AXQVDj+K>}#^ zc2{>1rD_|kQ1@z=R+Oqa6!79cvrxu$T;zuY_CL1lSF>KvS9ln0P&i@FdlcFaeKp-@MZt0!=1my)-d&3TB{)6&)rInae5>s6LIEu zmbWwK>xBgL0JM`C#JKkbIP@SeLckC60F%iylmjvVks@TTWl>7zyf{IMZpk*0?~_-c z8wPDvXE7ZaSxkX{#xocO#sh-Ca1&yJqT3p3K`9#*BHW`Q-`$hixhg*6P=cx8Nh`~a zW}qqJw?*OP{8@qwsV}oa=(1z0+z>ER0YPs?#(n~uzqD1~L@dvvh zMsha)yFaqJ(5y?DmSGOdFrkOay|OO8WAz+H=TVtVCt1!0i(YQB;-+7K?)t3u`Z3>Z zYS>nFDaAc*d@G|B#$5t~UII$^M&^Ro@atV64P*vSj`9!lM?r-qO>vaPIZESn&Q_u; zEJr;GuL$_c2ZAc17Em%!uH#&&Cv>`cRGZ5#o%&i)Ea z+NWPm=o!rBGysTSfaB}RBW?U9D1i^?26YB8@&+BwxA-SM!^R69LUT=0mY&QR$iZDr z@g1A#>8_Pf1qkzb*&x0JeVu>Ia&4o1hY&^*aeJ~l4@5yr|H?~kJaq`Xysqf@MrG@v z&mwHyaEy_>MbB`pjK+^{$Eu<&Y_t;8L3YBPRKepP*kUtNXmY0IHOE}N^<(PJkH}|I zly+s?%Aia-mEXo7K}9JP3%ha`Y|jJkFfvakH2d3D*lf-o2~wzf%-6MrWlEwe^0SB| zD=}&4iLPR;P)eff!O0tP@<6Jf@{?+sFfN5lfF@JWM}u4Wd8!DCD)=xP`nmBVfzJRx+|{zRb$%a6bP)Vr!A2;`|wH}OEB_%fR&z+n`!d0$rN>i7;u zCAM#-=nsn*-IJ8*-OaMo?EdWCLg*;2I|lg5d>6pOkSU+!E>6EsL)$i#adXw2j&)l) z7=4y`IXkX0*^B1FQLC4^n5-g5K464ie*t#xzBpvQDGt313H>|sP z_VE}9O3`hyy*>-u0%o|-+)rEr5W{1jt!vOKfF^!n-CKV3Pg*^fK-FM_K+!ObGi$PV z6GK}KNLHR{dDrpWYdUxH)#%sWu4mU ziV1Rg7%9h7p$bRYEJvvxE6K;xUs{s1aiv~pCFNjpn`V-q7L}kBTL2w?oBb2sY#a;p zf*XA)T|yX)>Klx*+J?UPhTV%hk6mZ=J0)&l765LPSm!Pl0>Sva! zHUzux1#K(2w+f59oa1$#i=S)Q*f#KrMUau?_ycn~-|;iO($$Uk9R;YBm{eDD7pFKD z)C>1ebob`!w%x+}wBGhQwp#7MY!s2)ptqJH*>eZxhupaccK;;_^^o}Hxvtz>M2I{nC0Rc#_2W3VOqxrxb7MS}cI z<@v8TJ*@CC>Y6NFl=PA%Daq~5+o!8O%riu7p5sbqJ8$&}&*i3hubQw{uAbnFq!jt03qggWe> zez}1knTstb6-lbo@wPZhP)TSy?!04ey<>q2@QA%%ccJxKLqRW;WN_o6T`uBt3%|Y`Ju%SL zOkEynOSxK?rgxfQ2*_*GAGGo5y$O?8j)&#>uYRJiwMgJ~12H~j^&(f20AT)Y&19vk zA399r%!FnqMkpAW-b67yJBGBeL)wzL1pT2BiV6kjM#zpzLS=*)mG%Hap3(k>F2iXa z-djuz<;*Nb0iTRkTAO1CkPTD8)YH)}n_oK0Ts*bQMkIkCUbsnR_OSNwDLeF>3O#w% zQCc6jUZZ!as2313nK@>}KzARgY|*dSrynU4(}P`R;<60GBbspW$czz~=7--9SQoFw z=s~d;=o>oo8*w+pC}%zaB3(8oM0EQza=fkl%md@^u3~#@PU(AVWGO<;SSK9hV#qH< zWY?3#ZG+0atLFIie+ejMFw}=+dZq<~k7nwYoVpKt8dSiHu7Rl|^xfpW7zBXEZ7wjT ziM%y3*CdOF-?!+wX4DCm5c>IbI{(UBT;{=iH-XkVEM*C(&f6ySN}xL$c= zd;gA)hyy6d=iG;slZ45%14y?*0%NF|UnB74G3*!?F?iIs-14&r!vJ>X(Xrr%8%jSM zlzM}drhdBJrOTYxiT!$P*(Bj-_FQP4vRdo$JiW%u6H>y6qXc{6+qut5Y72Z`>+6D? z{|a3r*sX6I-w|QxK(xe4gK{Lo?Un0z4_)<9#34? z3pK&&gG}94(o_gS#W^){G>Y1jX%QXOa#99mNUOd6PJG8N54x-n^1KbCIRR2$#}Ei_ zl-Mbhq03aT=1Ir5}oNIoV0ITfL{JpVa2gUH(Z&5JXPQ&rVj{dWa{R|OL)YUq^SUS_rXSw zyl!VW^n^1|kYkhd5qKiu$Qb((%^@QJhxW?7F85kNuCXpgO^P~a+Ksj}M&_1x0O+Y# z3r1575$=hZqPCjVRq${H~140~*dO zHrimQ)K({PDt5F@q9D4~#kZ~5`Tk1C+eUNg_L>~qc>;LgXzBWk_L@`=V=@(rjece@ za-Ufr;#o@G4_X^NuX{q8A^po^qcCAIKFyuCAEVt3h~iuo|<-eSwTV3@T^l-wx$6?Sv#3Hx*5C1FV^X1=45HJnr&j!MnO)b zcHLhv?EJ%`8cG)3go7{#7zxL-TsjK=?58{5Pg)o~(l^X%E*(a!5&aMs`{H7W_8P!W z?#$_)=%28JW+nuSPH%NRv6fs7Bme-p+ySX^f2)im);C;OgEEne&4* zt667Yj3-%7Iu3zUlSFY%Fq`a7FDeq7?9Yja>(byZlP{%xjxfn|Sxg8`WP?Js+IThs zKp1m;-4Od~0?K5=3Wo{2cN`bM0XzQOGhaI_``usjfL$_t@@;#~tQAEkaG2GLcdDU` zh1s8mN{JSIWumSInt5KN-+IoRhN)lqo2uvjt*Ts_cxX2yNz8$~*`BCcP{h`bBUrAo z7iw7-gUIeRJ85(I>d$4^;Q*}Iegnr7L(b;TE7w{}W_e)7dUh%AC>>jl$O4KA3c5K5 z)@!&^GLxCN1)s|-8dWDNQ=;0>{cUhkDK)eA3z~w)<%o2v2s7 z!?vf%^bxFIdhv-3MUgyYgUykDe8%(Ime6W)Lvc0L#@4hhYL22+t_ZPJBL@gbXIeUS zP8<5A$#fa0HvHy%J?msh6KH=q9cnp-UCnrb#6CeTHWAC;Vc5Uhca5C57um!}J1_NaDh_WCS244Yr82Iu) zeKT3YWJ12=i8_tAG8`OyQRKB)7<>izJ@EN0@=`1ezC?bezLja2mbqZ8xH6e63{h`f z0~roIj*^LQrP;TLF^m_dd*xxq>`GqzU$HRw3dqC2mj}sHVn)Y8FTb^lrZZ3OI}qQw zDz!sgS&`9bOxXGBijS%)lw#dg4`m|n#lqk#!2f~If037BVelpLGkfM+7dmjNlDIO= zeq-e7s%LlO5T01a<^g{R<||LH0idv;00)nKg~7LgJPcfU5cz3RC=|)H8>W1d|J!j^ z6qUc}6LDn-X%(>>aZnwb2(gX>*F}Bo@0XuI-A4fi-v*LCi2PSzz&B>s`ml39U)Uz{ zx6;hFkzzU~PD>T*_^YR;$T#=Kx38YlZyy5u9+>?8Hu-D;Pc(MRUVBmGH;KQc^z-+@ zL6QH3g}cG>9Nomm4Dq=U%ZLB@xAhlz?xVm!p^x2b?;FZR{vvGfBMjcJ#l7|(@AtDM zy9yUlRdbh$&oLYf^YizE6<&WafCu^rGEn&K=bwMRDC3bokfCTY(fi(sZ+~O0OXPP^ zrP&o_cPvml%EtD|2g3UUK5XHO7ZhRv`OE$Sbsq)%^c`sQQ0`7xD7`=5i~sBJeqgmb z%HDN68|US}UZ;`h#Z&}89t`k*pz-%_&3DswoafNTZ!O*sO2E`xNBi)gCMxQ`)9m}> zJ8Rc^@nDfL5Fh$m^c-loQr8 zpPYesz_-xTPatN1KF8k|^~VD;aJ(R6QyxBC>x&n77cUteJUJ_<1S_Sft|fIb2G zh!kM(6_5{c*Ygzy-vaaq(4$Wr0{Riqhk!l61~H%yJ_;}aeF*47Kpz73pwA!%>_Gr8 z2mFNqKIk(C0e>NYj{^88fR6(BD1eW=6kr1O@H?@Gy!aac;?GI=3WIL}7#4tGed6%g zU>N-KV|NN)z5m$V?8iNy$30%;9GpXle+o&Iyo?ORnfb)@M)jn(y=etJps2?^pMTbP zp=Dy)Y?C71xHod_-bim+-KeOjDCsxSZfDH+{-)LC|Il~rpa|r(=qC>H9y1tn>eSLf zv-ZyE-0M4LfU}N`|1AD6c;LseKa_%}8?%1f$cXxoot+(405CDKee^IceIfh%zJ6s1 zK7;Cb{#|kXC_|x;%}uLlqZj_(OAnqWzVGYLn*PWh;!{|rx!?!yPM9B6;PHrw_5XT! zMK`j_>`yDgKSUi!E9z4K2HzitJ^H@uTVQ=Y3NZK2;7-r&(_Cx)J#A$$aN-gFN}sX*rDAOwl>px14*)mko`F55Sf_ zfyc`B|I)0|BD98nt^8Iq5H=L6nZtL;$z+=OcZ-z{v__6#BS(0>8SLKq2mIfXMUqii zailNFK6}DH9t{V9pl|#%YCjpI;SPMZYtA{Zb;0WNm(!MmT=5TWd9_XaC3y;4R7_7Q TB(vi8jtXyVXTpRDeM;~@w2T_4 literal 27247 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 diff --git a/addons/medical_gui/data/body_image/arm_right_s.paa b/addons/medical_gui/data/body_image/arm_right_s.paa index 613ff387ffab4eae098962ba0dff909618a7c895..daff9d099e133bc10c3588e5d7015ed562265124 100644 GIT binary patch literal 27923 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 diff --git a/addons/medical_gui/data/body_image/head_s.paa b/addons/medical_gui/data/body_image/head_s.paa index f4daa0a9b6113a855e0e7c4c0d17fdda6063d5e0..9acf69a15581c8ec5eace1b01f6189e4aaf22c15 100644 GIT binary patch literal 26369 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 literal 25893 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 EHz4fT&Hw-a diff --git a/addons/medical_gui/data/body_image/leg_right_s.paa b/addons/medical_gui/data/body_image/leg_right_s.paa index 1b9bf0ba64c3419f12e0618f17f5859f64dc6ad4..4fcace26ed1f1940262ef2ba151a972955126b2f 100644 GIT binary patch literal 28771 zcmeHw4OmlGw&*_RWQTu}0D&NeoIprGM4;MK#sp4ci%>f#AQ;AM0SJ4JHAx z+G#6T@vi|C+upX*dE!qqciIC4w2sW!cG^yTSP+m}s}<`HEz`a^N#5RxvGbU@-~Hy@ z_szZdvi-J)&Dm@1y?*xEYpt`-0ea@m(-qI1_ppu!0Qmg#&k1jPsjdjOJ*eRJJl%qP z+$K=P?T7O77cuB(E2_QG0DL(GfNvfJ;O062es~ggy5#WPQA^vlG$Oa%XO6jQTcT_1n9srC+BN5R;H1h@s+J_(fhLu6e;HX-rUXyJ9 zOQ;yaK2i4C&=|#=9?uFg2!J7dRi07BoNH9QaPN93}0b2B@}SGh+whN7<%c${Xg%xv^W;z%ejX%5gi}x<^E9&fo+)BfU&bsFAkGV%S69$F` z&RHQol)C|d*`4Zj$qrLG>mdjt>Ec5kxxJeX;$$<>y#i3!aI$cx!X6SV78?skYmThA zd^JV6nVGUpUc($ybd?ns-(kRNwu}t=;*@E60jRl2Ao@k;;_cn>_H%Tc7aMQtt%sk; za;#Hmm|%i{Q*Jg%dk))$Y?zVc?fw(TL(XG8c*F&Sd^&OBwHqkh<4E-HR~24W1-b&$g)$ z`35@Myc{N;9XHiE%KPmRa)#!87h_01%^O#_55PC%o6G8&lilUUJ6tc&(C{nrh%hX> zf#j~kdhkrG>e-_T`aU0z!rxo^_;mHEgk1uRO7q=8`^GbMDl-E^&N?#sns01W=5_~X zMC-`z6iv6ERF#>A7X)by`m|ko?i$Qreni{f9?{?7DW(nVASrD>Wm=ZfQAWr$-B9uM zFOFXNH#y@Jzal+_?UC2fP;eo+qph1(v2C{jKSzT8I!(UY7Qff#_9V@uYd9HI^r706 ztWND52^;d`S0L@n`D)F!Rcp4ca(jewy2dT5xcrzWh09A~+u*{pHff)&q;J3@1im8E z5kaE4%P$u0j?uM>(J0@{6;17qGhaXw5rBdo#ll+(dK1Dr3UV5we-sK_p3bDMo(*j( zdfuJcy^i2Qq8;VS9Bb#8zgp_yi_bqoY@nYvrE(q~2?}Zz^LKI{;kJ`qy!$TYSIo+< zPV`q0f09I(;7(CMpb7|@Ot@J zX?;<@A1=}*ixb&4^9s;rI6UVA+U$}M(M0#oM2Zw&%}nZS`{5ubrs8KGDe6B;|AMW( z4Oj1yeMxWTWF$YqQT|*SYobOT7MX{)rm`dz1qzNTivFte&k=dyF^-B?9jg<#EAadS z^`_LVj}NDE7I}xZAlB)o%X6jai_+OzKD;75kvpAA&Z3`ZO}EGTISF9!W>0zlz!kpn z+xz!yz7RLH+jS*8O5ajcORv#tUyQdUnI)t(3HApAYLX;?ZZIchAzorWm_N?(BlMz}`CTaB{9+uxcl^4%9`7JXW73B)|dU39#U3 ziAN=|SQAOr*tjW6NLok8^gryAo{P1OFcRP^3@N_?M3nPpgW$M_PY}n!b4OJhNP2Cq z>l=fRS34qUjOxjg_W9=+$qwa`Ky*?5wDy$gFn5(V3^vp%*O2s@%_W1Bye8?b)EfN@ zG1d|P%v4TUF5>9hps-QW+hj)5-`uPoji;<>_TLY9=rS|OyAk}>E`3@|T#t-j?gyLh z1LLn%n+`eFK9^$d;ES(BGRavda!=E%H+PIhiE2k=<8ihgnI9y>3lhc9#Fj$4B9;NX zYjf%!?~U89Vx>Ho(Vo$NTuK+P(r7@&TH8ch+IW{|$L~ED_pHi1!b<=JZHoCleq3nQ zv;a-}vOpGt7#hZ1;|1+LR@7H7m0Gp5jx8aDps?k&0Z)=9iTC3@yDKl(FBcNE`cNW* zCW8s#4y%7Hp&IMr5Sp!IsIWR?&*OL^a`PU@%gX8K3J z&zVOH2yjB7J@A+^_dwz;x#mCtpy%Z}=M<-VWbkXT=r^VM0 z9wPDPLmm~f@$=lW5_43KW%Zl^0Us9hZ?~Tg;hcX3Lq_1eK}b5aaNgNQ>AA*|K6;)@ zb|&gX>Gr0W0S_dugN8b7ALXCdJZEVxf&5ErNda(sH2)?fy0r|g=URDVps-1pBa+pX zX7=w(&AaJ=80Nnch{rt$WnY0ktWp3zf*BqXamn2RV?^a z!Fq&+PAPBpe8>7Zj`cDo30|B+CeI>gj{0F2vaKW;=BP?YVb4#|50B|YC$z2RUhX;- zrNl;GxVWc;Or4@jT8VAb_2Lgqse2Nycm!c!p=1j~-bV8-8eR+v_pT`1rQ%9>7w+Hs z_~orjWcpzue6y#jAMHgY@pY{Yio&Vg7sT;fTB!^9$kd7?#9V!(usu?CO!^a7Er|4l z%v9E8_7LArJGoH!v{OsYy@0HG0pJ9b2;0;G|MVGmp1LTFlgXVf>dSa)W)>+aw>6Uz ze(liE!em$81-BqfB_WUEgN$hZC;+iN+CPQH*ETbhu*_LPk^)D0LK>%o zUo0gO=^zuG>arB5xP$)Deuk`OXr+4Hp=oYe2tzM$%i=Pkx-IJwYk1eQ>KBfl)T=lh z!2<;&O0!k|gUt_kpL-~xaypmCTR4Dxq7b{JjHG8R!Pr=gLymQ^&VvLT2)<*k=36~T1C!+3d16K3-q(~|3H+wuK`dPB7yEUxDgTP&K;D+DL z-pw71m(;pFkuxMlqHI*;v=M@v4WTj4ateS`U=5jQ?efE#oUK^(E=I@4>gBs+&hs#2 z-SMLSccpzu*RyjIZwce8yX50>-Q`b3b(a?j7dy-SJmDi-Fbduhh8;oH_9n8nZ-eLB zRL_z^hBzRT=apY9+>i8E&X)6T=EgsBaO;9Nr;Z3uI#PtzsLqe%5w|S*iU>I4!|7Ns z42QsmB-NT)r6dnnAz^c@u0vGEI_1=Nq7yT+^nNG<+lmOAV{raf z({NCt3=C2{P}rkbAZBQqWD}$6x>gi6sMs!eQ6K;8!8r3U7eYvot@opP6rny49pY_9z(pNkt?6Nk8F|@q~Q6 z`>JM%NA#@9EsKyW_8g%@I+u%O@_Wi1E90zPDBh7MxgkP1_SRG-@~M)+F!@aa@8S~`h0ElwuJlA} zDQ|qiK6CGu87j>|2*iW|P?)!V#Cf%rh}F%mbcB}p5%lhR4i z%Mm}}l<8i^s1DTPTl<@R$;+P)Od>DTr} z)>fFXOKo};1zM~pNNoI3YDj)lyem}6YT>M}QLwv38fqUS4GaiRPTE{1?Hl->7Um{~ zD5h&{@K$i4{kb<7U>7__@veta{4;xJrkKkKzy#fUdv;(Jn}_CdDt>M=TiBAUwV-&3 zhNEJu8qC;pQHkTWoQ-597~ahhyu^#OB@Zs@x5K1%2Bu$hWOQdV{c8=ecsUWjXUU(* z1}SjLH6C8Sdeu9R4r!Dc8#xMUgKwm)L!zj=V=px`@z#WvD|3*J<)BwnP(@{m8GNr7bLX40g!p}G&`hI<8OEX~z z2N3zVIN_maC5*n{`zR-X(*ODJ3b=e&ypkdq0F$rrE0!VUt%neBFlJOdP`tFF4&^@{ zATL>LMWm|LR*WKi#F91y%Tn?d`M#($yX6LzRs$rFe`!z@Y&KIND3@WJdiC{=)2Y`U zXtpuo-V6kW_yBwol@;{#ta^&!eV5Au7)pQ8h{JMw?(x$)h$3d13Z*l5DpBMG`HZH zqjZLO23*yN%(i;{Cc8zhd5WUqy-_dfScwKFLL3$E;|SKm+j`h`{@iQ7W-W9QmxxBrll;-oza4dcKzVsmi?F5iZF}*|jH}PGV=k_;WA3;|yb+`1T73I;1au{mgMw zx`NG>JC{=i6p0;^(!m`IgXDQnT|}{(=BXr&j>m5M^%r(uq=})TKT@0C$DtqlI3*50 zalE9T4%3wJ(g5EILTRODF*)}m6wKm5s@NU5xghii<#``v&N^Ne>#Z-Gp2ogR6I>+B zuJ@%X1}uCy2%fA}J=3PZK)-Yej>+3w(%2T>vt9?gmfb{?h(jNO!d-~@LQfEEvn_u< zqaWqo0ERGW!7#f?)!8C_nvP&wApK$W`Yrh@Rw!8u5ef=!DcKuDaWV2fQD4lp=T53k zJJhQmacvR`uA|%vw+T&10AK2;E_*_~rfwhz!eFrQsN%s|I{5Yoh?!?V$lgOa`w!7^ zoh`O^V!NcGWrLvWBSL^ZF?p7j9G&d8aZ(@N6IiOn~(iFF)VDv8_|4$3L zL<}JA$NrxMiY>kETI3wx=iVW2n%=o19{YxAdjTERe4 zm$kQ1GE@&|ydos50^DmWyJJQ!;Kd0%uR2z$T!K={Q*zE8qh}0;EKMd{c2;fr)%dy{ zND2hO_l8y5uwSJGgpgzmBJ&O?4tYP~j5B=TKKHlg-^!0QRF?-S*-{>MuoOj~;xT^7 zS}OF>W9^}F z)9cE-%*amLG;SzUBY-R4Q=4Y0*B=(wE`pL|b_eeKqDwXybt1C2DLlp*2_d2UWX&H> zH!9e{DBhE~Za{qjJj5~n`g&J=SaQekEe!IUOYn)MX1i!^to1rC=zQ5Jp?o@9Bd^aS zBd+gMbqpG_ItELV%?x4_3aY@Kg|khhiVk9h7}$h}xeVTF`6hd>P}#XKtSMU8*)3)| zGiw%wp|s8cqgdp;PVSCLQ;*tR@{Nai5$~gryuB)xX~p1m<}MPhSDO;VIuDd1mnm|v z@U3^%WdmqY7{4N1RC#ri;$#pXiavJyCc7}$X@?9+M%y!|_MNZsnvHs7SP&vyE_pY- zr!;tHw4#52!N2tu8vT!-Yx!Efr%i!&fFA*U@Ns}fm%w@mtcSpQ2&@Op0UFhSJqXwX ztP8l%s0Q>QpbuCVaG_BR=tDpsurA<2qZ-hMfIeVdz=cLNpbr6kz`B47jcPz20{Vb; z0T&w8fIbBD0qX)TG^zo82Ca(7GqxFLZces*WI^%vbJse-F57|I3`0OHdt7K# z1MA9_znDb)Fyl^3b!FT+jJZ(tX1W|BEaop10d*teLyQ=@~#KM zE5DsQEKl?rqd0UQe$`6ql{c2Zm$<*8uV_6wX75-%2lp4Fl4Cp~?LQvj?T=mw3+xZK z8AhY)WU!BX^jayeu)!;TEYBwUk&J$Ht_{oA@OR|->_JEQtLR*jPyQ*8QsKjT0r^iB zdEZvgJNq~C@4T^7R5nrI~;{c5=lVSZ& zlvnirrVr1({nDNNf8zc9px1tSdkYio)&W{mb=`6BWEjr;w5yjsD&XpJt)`&kp6j$tO=-~F#ISM|M7<;@Q;21Y;eexU8+0F5q_VZBe3*M6Ye zpm=0M3SQrTFaCq}$WiCZKK}rz2Qv{q(DreFMwiJbe|{@+{2R{Rqf^a?3wvXXG9K5AXjJgT60uJKtkO`GJ_X>!tng7Wwi6C_xaA_vDuMMEM;6 zH+QCo?4)n|cSL0~&i7Q@&i9BRk3nA+3FLe3M^1LxPxAR#gw4*KTJ3_IO=THdhNRo zy_dTCZ7hG^eI$N}UJw3Mv0%g-9|Yt-`Q`rx=&jCLzF{_|gaG&pB1PzVzwdbvdIMZ6 zYph;%^4kG#K9Im4gS=g6be)X)9+zLsBsK4a=#?*w|j3mUFWL!a(Mvc>(3 zMp$o)@ZUEeg}}eXg+?_X|H;4pu`F?+Q4PrRAD1Ts7y$fVB?_=HphkgZ6fh(IxEVp# z*IQ`xe}I1h{`s`wr~M>tE)LVGk}+q{F)ipjwpHs5!%+LKPs7On zSib0Cb>(N(RbKh)ko*lsbOsH5;mS|{#PxEwwHJYqmWIN8?U-JC>}ozbwl#Ho(`kSE zZliZ1J>=r*l|laXj|{+qhpQ_;R#$%f{|o)XC5ZUy@+UC84OFyi*`t_&?BNXy0Q>{Fv%)qjw@b%h0jAY4_K9k7Ys~BP31ejLtTx z_ZWsw_qWHiC&EwmcJQ(_CVv_VJ3tChfYX$|G&E}eSJOx11PaeTi$FF7abhxrF%ds= zTs!x8WfC?kMxBlz|H*D-Y}(5g-h25=Z}vS(C=^AbzdmqBt^Wzx*3|TuSI>T9tpw9A zLdCDZNSXgB@|y;9!pCfhw0C^;(bIqS_+a)r5${)+Rx~oh{HM)`5T^p~Q1SoF3urDo&gR-CA xE%HkjqrpLIlo%Z>x&3Sz2QlbRF8v=yorf$c;%6vYl*;aCU#wfMTkJ#gzXA3`#sL5T literal 28406 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 Date: Tue, 17 Oct 2023 10:17:22 -0500 Subject: [PATCH 007/348] Github - Remove tasks from PR template (#9501) * Github - Remove doc task from PR template * Update PULL_REQUEST_TEMPLATE.md --- .github/PULL_REQUEST_TEMPLATE.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index 5f42f937fe..5bdf51df2a 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -4,6 +4,6 @@ ### IMPORTANT -- [ ] If the contribution affects [the documentation](https://github.com/acemod/ACE3/tree/master/docs), please include your changes in this pull request so the documentation will appear on the [website](https://ace3.acemod.org/). -- [ ] [Development Guidelines](https://ace3.acemod.org/wiki/development/) are read, understood and applied. -- [ ] Title of this PR uses our standard template `Component - Add|Fix|Improve|Change|Make|Remove {changes}`. +- If the contribution affects [the documentation](https://github.com/acemod/ACE3/tree/master/docs), please include your changes in this pull request so the documentation will appear on the [website](https://ace3.acemod.org/). +- [Development Guidelines](https://ace3.acemod.org/wiki/development/) are read, understood and applied. +- Title of this PR uses our standard template `Component - Add|Fix|Improve|Change|Make|Remove {changes}`. From 7b418b7731b52d6c5549922175594e4bdebdbde3 Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Tue, 17 Oct 2023 13:40:24 -0500 Subject: [PATCH 008/348] Tools - Update publisher for compats moving to main (#9339) Co-authored-by: jonpas --- tools/publish.py | 60 +++++++++--------------------------------------- 1 file changed, 11 insertions(+), 49 deletions(-) diff --git a/tools/publish.py b/tools/publish.py index c7254fdc14..5ddc6980ae 100644 --- a/tools/publish.py +++ b/tools/publish.py @@ -90,71 +90,33 @@ def main(argv): if repl.lower() != "y": return 0 - - #ACE Main - http://steamcommunity.com/sharedfiles/filedetails/?id=463939057 # Note: command line publisher doesn't like our file structure, just upload this one manually - - #compat_r3f: r3 - https://steamcommunity.com/sharedfiles/filedetails/?id=2202404402 - publishFolder(os.path.join(ace_optionals_dir,"@ace_compat_r3f"), "2202404402", changelog_path) - - #compat_rh_acc: - https://steamcommunity.com/sharedfiles/filedetails/?id=2202407118 - publishFolder(os.path.join(ace_optionals_dir,"@ace_compat_rh_acc"), "2202407118", changelog_path) - - #compat_rh_de: - https://steamcommunity.com/sharedfiles/filedetails/?id=2202407963 - publishFolder(os.path.join(ace_optionals_dir,"@ace_compat_rh_de"), "2202407963", changelog_path) - - #compat_rh_m4: - https://steamcommunity.com/sharedfiles/filedetails/?id=2202408647 - publishFolder(os.path.join(ace_optionals_dir,"@ace_compat_rh_m4"), "2202408647", changelog_path) - - #compat_rh_pdw: - https://steamcommunity.com/sharedfiles/filedetails/?id=2202409303 - publishFolder(os.path.join(ace_optionals_dir,"@ace_compat_rh_pdw"), "2202409303", changelog_path) - - #ace_compat_rhs_afrf3: RHS Russians - http://steamcommunity.com/sharedfiles/filedetails/?id=773131200 - publishFolder(os.path.join(ace_optionals_dir,"@ace_compat_rhs_afrf3"), "773131200", changelog_path) - - #ace_compat_rhs_gref3: RHS GREF - http://steamcommunity.com/sharedfiles/filedetails/?id=884966711 - publishFolder(os.path.join(ace_optionals_dir,"@ace_compat_rhs_gref3"), "884966711", changelog_path) - - #ace_compat_rhs_saf3: RHS SAF - http://steamcommunity.com/sharedfiles/filedetails/?id=2174495332 - publishFolder(os.path.join(ace_optionals_dir,"@ace_compat_rhs_saf3"), "2174495332", changelog_path) - - #ace_compat_rhs_usf3: RHS USA - http://steamcommunity.com/sharedfiles/filedetails/?id=773125288 - publishFolder(os.path.join(ace_optionals_dir,"@ace_compat_rhs_usf3"), "773125288", changelog_path) - - #compat_rksl_pm_ii: - https://steamcommunity.com/sharedfiles/filedetails/?id=2202410630 - publishFolder(os.path.join(ace_optionals_dir,"@ace_compat_rksl_pm_ii"), "2202410630", changelog_path) - - #compat_sma3_iansky: - https://steamcommunity.com/sharedfiles/filedetails/?id=2202411104 - publishFolder(os.path.join(ace_optionals_dir,"@ace_compat_sma3_iansky"), "2202411104", changelog_path) - #noactionmenu: - https://steamcommunity.com/sharedfiles/filedetails/?id=2202412030 publishFolder(os.path.join(ace_optionals_dir,"@ace_noactionmenu"), "2202412030", changelog_path) - + #nocrosshair: - https://steamcommunity.com/sharedfiles/filedetails/?id=2202412481 publishFolder(os.path.join(ace_optionals_dir,"@ace_nocrosshair"), "2202412481", changelog_path) - + + #nomedical: - https://steamcommunity.com/sharedfiles/filedetails/?id=3053169823 + publishFolder(os.path.join(ace_optionals_dir,"@ace_nomedical"), "3053169823", changelog_path) + + #norealisticnames: - https://steamcommunity.com/sharedfiles/filedetails/?id=3053177117 + publishFolder(os.path.join(ace_optionals_dir,"@ace_norealisticnames"), "3053177117", changelog_path) + #nouniformrestrictions: - https://steamcommunity.com/sharedfiles/filedetails/?id=2202413047 publishFolder(os.path.join(ace_optionals_dir,"@ace_nouniformrestrictions"), "2202413047", changelog_path) - + #particles: - https://steamcommunity.com/sharedfiles/filedetails/?id=2202413537 publishFolder(os.path.join(ace_optionals_dir,"@ace_particles"), "2202413537", changelog_path) - + #realisticdispersion: - https://steamcommunity.com/sharedfiles/filedetails/?id=2202414018 publishFolder(os.path.join(ace_optionals_dir,"@ace_realisticdispersion"), "2202414018", changelog_path) - + #tracers: - https://steamcommunity.com/sharedfiles/filedetails/?id=2202414450 publishFolder(os.path.join(ace_optionals_dir,"@ace_tracers"), "2202414450", changelog_path) - #ace_compat_gm: - https://steamcommunity.com/sharedfiles/filedetails/?id=2633534991 - publishFolder(os.path.join(ace_optionals_dir,"@ace_compat_gm"), "2633534991", changelog_path) - - #ace_compat_sog: - https://steamcommunity.com/sharedfiles/filedetails/?id=2633537792 - publishFolder(os.path.join(ace_optionals_dir,"@ace_compat_sog"), "2633537792", changelog_path) - - - if __name__ == "__main__": main(sys.argv) From 1036a58aeec345dc5d1354d0accc14748861c869 Mon Sep 17 00:00:00 2001 From: jonpas Date: Tue, 17 Oct 2023 20:41:59 +0200 Subject: [PATCH 009/348] Prep 3.16.0 Build 72 --- addons/main/script_version.hpp | 2 +- docs/_config.yml | 2 +- docs/_config_dev.yml | 6 +++--- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/addons/main/script_version.hpp b/addons/main/script_version.hpp index 0303b1e804..5541d788f1 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 0 -#define BUILD 71 +#define BUILD 72 diff --git a/docs/_config.yml b/docs/_config.yml index a571ccd498..f3e2b09e6b 100644 --- a/docs/_config.yml +++ b/docs/_config.yml @@ -10,7 +10,7 @@ ace: major: 3 minor: 16 patch: 0 - build: 71 + build: 72 markdown: kramdown diff --git a/docs/_config_dev.yml b/docs/_config_dev.yml index 4a05c7f94e..d765ef797d 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: 13 - patch: 2 - build: 49 + minor: 16 + patch: 0 + build: 72 markdown: kramdown From b9748041d415d1ce671e468ecc54a341c4a5a4e0 Mon Sep 17 00:00:00 2001 From: Grim <69561145+LinkIsGrim@users.noreply.github.com> Date: Tue, 17 Oct 2023 20:19:09 -0400 Subject: [PATCH 010/348] Field Manual - Fix HuntIR Monitor & Fortify Tool display names (#9509) * fix huntir/fortify tool display names * add note on sutures --- addons/fieldmanual/CfgHints.hpp | 4 ++-- addons/fieldmanual/stringtable.xml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/addons/fieldmanual/CfgHints.hpp b/addons/fieldmanual/CfgHints.hpp index 26d7a14805..80d2864b0d 100644 --- a/addons/fieldmanual/CfgHints.hpp +++ b/addons/fieldmanual/CfgHints.hpp @@ -122,7 +122,7 @@ class CfgHints { }; class ACE_FortifyTool: ACE_FieldManual_Base { logicalOrder = 13; - arguments[] = {BASE_ARGUMENTS, QUOTE('ACE_HuntIR_Monitor' call FUNC(getItemName))}; + arguments[] = {BASE_ARGUMENTS, QUOTE('ACE_FortifyTool' call FUNC(getItemName))}; displayName = "%14"; displayNameShort = CSTRING(Items_FortifyTool_ShortName); description = CSTRING(Items_FortifyTool_Description); @@ -130,7 +130,7 @@ class CfgHints { }; class ACE_HuntIR_Monitor: ACE_FieldManual_Base { logicalOrder = 14; - arguments[] = {BASE_ARGUMENTS, QUOTE('ACE_CableTie' call FUNC(getItemName))}; + arguments[] = {BASE_ARGUMENTS, QUOTE('ACE_HuntIR_monitor' call FUNC(getItemName))}; displayName = "%14"; displayNameShort = CSTRING(Items_HuntIR_Monitor_ShortName); description = CSTRING(Items_HuntIR_Monitor_Description); diff --git a/addons/fieldmanual/stringtable.xml b/addons/fieldmanual/stringtable.xml index 240ebc106e..8c9f59070f 100644 --- a/addons/fieldmanual/stringtable.xml +++ b/addons/fieldmanual/stringtable.xml @@ -99,7 +99,7 @@ Zapobiegaj Ponownemu Otwieraniu się Ran - A %3Surgical Kit%4 is used to prevent wounds from reopening after being bandaged. Depending on settings, it can also clear trauma.<br/><br/>%3Usage:%4<br/>%2Use [%3%13%4] or [%3%14%4] and select %3Advanced Treatment%4.<br/>%2Select %3Use Surgical Kit%4. + A %3Surgical Kit%4 is used to prevent wounds from reopening after being bandaged. Depending on settings, it can also clear trauma and may require additional %3Sutures%4 to close wounds. Sutures are consumable, much like bandages, and are not a replacement for the Surgical Kit.<br/><br/>%3Usage:%4<br/>%2Use [%3%13%4] or [%3%14%4] and select %3Advanced Treatment%4.<br/>%2Select %3Use Surgical Kit%4. %3Zestaw do Szycia%4 jest używany do zapobiegania otwieraniu się ran po ich zabandażowaniu. W zależności od ustawień może także je leczyć.<br/><br/>%3Użycie:%4<br/>%2Użyj [%3%13%4] lub [%3%14%4] i wybierz %3Zaawansowane Zabiegi%4.<br/>%2Wybierz %3Użyj Zestawu do Szycia%4. From 97b68fc7ae1048dd85932863e802359c55489177 Mon Sep 17 00:00:00 2001 From: Grim <69561145+LinkIsGrim@users.noreply.github.com> Date: Wed, 18 Oct 2023 00:51:27 -0400 Subject: [PATCH 011/348] Medical GUI - Fix Medical Menu triage button position (#9515) fix --- addons/medical_gui/gui.hpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/addons/medical_gui/gui.hpp b/addons/medical_gui/gui.hpp index 07ccd554f0..562ab9e1b8 100644 --- a/addons/medical_gui/gui.hpp +++ b/addons/medical_gui/gui.hpp @@ -114,7 +114,7 @@ class GVAR(BodyImage): RscControlsGroupNoScrollbars { class GVAR(TriageToggle): RscButton { idc = -1; onButtonClick = QUOTE([ctrlParent (_this select 0)] call FUNC(toggleTriageSelect)); - x = QUOTE(POS_X(13.33)); + x = QUOTE(POS_X(13.83)); y = QUOTE(POS_Y(15.5)); w = QUOTE(POS_W(12.33)); h = QUOTE(POS_H(1.1)); @@ -125,7 +125,7 @@ class GVAR(TriageToggle): RscButton { class GVAR(TriageSelect): RscControlsGroupNoScrollbars { idc = IDC_TRIAGE_SELECT; - x = QUOTE(POS_X(13.33)); + x = QUOTE(POS_X(13.83)); y = QUOTE(POS_Y(16.6)); w = QUOTE(POS_W(12.33)); h = QUOTE(POS_H(5.5)); From abb6519d6ddc210667d47460fb55e9dbff798588 Mon Sep 17 00:00:00 2001 From: TIANYAO ZHANG <88520881+ZHANGTIANYAO1@users.noreply.github.com> Date: Thu, 19 Oct 2023 01:18:39 +0800 Subject: [PATCH 012/348] Translations - Update Chinessimp (#9517) Update chinessimp translation to stringtable.xml --- addons/medical_gui/stringtable.xml | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/addons/medical_gui/stringtable.xml b/addons/medical_gui/stringtable.xml index ef08d7b26b..9fde42b834 100644 --- a/addons/medical_gui/stringtable.xml +++ b/addons/medical_gui/stringtable.xml @@ -1281,18 +1281,22 @@ Peek Medical Info on Hit Podgląd Informacji Medycznych po Zranieniu + 点击查看医疗信息 Temporarily show medical info when injured. Tymczasowe wyświetlanie informacji medycznych po zranieniu. + 受伤时暂时显示医疗信息。 Medical Peek Duration on Hit Czas trwania podglądu informacji medycznych po zranieniu + 击中时的医疗信息显示持续时间 How long the medical info peek remains open after being injured. Jak długo podgląd informacji medycznych pozostaje otwarty po otrzymaniu obrażeń. + 受伤后医疗信息会开放多长时间? Show Trauma Sustained @@ -1301,6 +1305,7 @@ Pokaż Doznane Urazy Zeigen Sie das erlittene Trauma 외상 지속 표시 + 显示遭受的创伤 Show trauma sustained in the injury list. @@ -1309,14 +1314,17 @@ Pokaż odniesione obrażenia na liście obrażeń. Zeigen Sie das erlittene Trauma in der Verletzungsliste an. 부상 목록에 발생한 외상을 표시합니다. + 在伤情表上显示创伤 Body Part Outline Color Kolor Konturu Części Ciała + 身体部位轮廓颜色 Color of outline around selected body part. Kolor konturu wokół wybranej części ciała. + 选定身体部位周围的轮廓颜色。 Minor Trauma @@ -1325,6 +1333,7 @@ Niewielki Uraz Kleineres Trauma 약한 외상 + 轻微创伤 Major Trauma @@ -1333,6 +1342,7 @@ Poważny Uraz Großes Trauma 중간 외상 + 中度创伤 Severe Trauma @@ -1341,6 +1351,7 @@ Ciężki Uraz Schweres Trauma 강한 외상 + 重度创伤 Chronic Trauma @@ -1349,35 +1360,44 @@ Przewlekły Uraz Chronisches Trauma 심각한 외상 + 慢性创伤 L L + L R P + R in your inventory w twoim ekwipunku + 在你的库存中 in patient's inventory w ekwipunku pacjenta + 在病人库存中 in vehicle's inventory w ekwipunku pojazdu + 在车辆库存中 No effect until tourniquet removed + 止血带取下后才有效果 Show Tourniquet Warning + 显示止血带警告 Show a warning tooltip when a tourniquet will interfere with a medical action. + 当止血带干扰医疗操作时,显示警告提示。 From b2b49cc993271127b8f52a767e8ec18ddab58d17 Mon Sep 17 00:00:00 2001 From: Grim <69561145+LinkIsGrim@users.noreply.github.com> Date: Wed, 18 Oct 2023 14:17:22 -0400 Subject: [PATCH 013/348] Arsenal - Fix saving loadouts on new profiles (#9523) * fix * Fix unrelated TRACE macro in arsenal * Update addons/arsenal/functions/fnc_onArsenalOpen.sqf Co-authored-by: PabstMirror --------- Co-authored-by: PabstMirror --- addons/arsenal/functions/fnc_onArsenalOpen.sqf | 4 ++++ addons/arsenal/functions/fnc_statTextStatement_magCount.sqf | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/addons/arsenal/functions/fnc_onArsenalOpen.sqf b/addons/arsenal/functions/fnc_onArsenalOpen.sqf index 74ef584cc9..bf85e20bb5 100644 --- a/addons/arsenal/functions/fnc_onArsenalOpen.sqf +++ b/addons/arsenal/functions/fnc_onArsenalOpen.sqf @@ -42,6 +42,10 @@ if (isNil QGVAR(defaultLoadoutsList)) then { }; }; +if (isNil {profileNamespace getVariable QGVAR(saved_loadouts)}) then { + profileNamespace setVariable [QGVAR(saved_loadouts), []]; +}; + if (isNil QGVAR(virtualItems)) then { private _virtualItems = [ [IDX_VIRT_WEAPONS, createHashMapFromArray [[IDX_VIRT_PRIMARY_WEAPONS, createHashMap], [IDX_VIRT_SECONDARY_WEAPONS, createHashMap], [IDX_VIRT_HANDGUN_WEAPONS, createHashMap]]], diff --git a/addons/arsenal/functions/fnc_statTextStatement_magCount.sqf b/addons/arsenal/functions/fnc_statTextStatement_magCount.sqf index b2b46307fc..82d68d4848 100644 --- a/addons/arsenal/functions/fnc_statTextStatement_magCount.sqf +++ b/addons/arsenal/functions/fnc_statTextStatement_magCount.sqf @@ -14,6 +14,6 @@ */ params ["", "_config"]; -TRACE_1("statTextStatement_magCount",_config) +TRACE_1("statTextStatement_magCount",_config); getNumber (_config >> "count"); From 209edf0433e442631a6dac2f8520ed52a83db63d Mon Sep 17 00:00:00 2001 From: Grim <69561145+LinkIsGrim@users.noreply.github.com> Date: Wed, 18 Oct 2023 14:51:00 -0400 Subject: [PATCH 014/348] Arsenal - Add `FUNC(getVirtualItems)` (#9512) add API --- addons/arsenal/XEH_PREP.hpp | 1 + .../arsenal/functions/fnc_getVirtualItems.sqf | 39 +++++++++++++++++++ 2 files changed, 40 insertions(+) create mode 100644 addons/arsenal/functions/fnc_getVirtualItems.sqf diff --git a/addons/arsenal/XEH_PREP.hpp b/addons/arsenal/XEH_PREP.hpp index 3b063d8ebe..3864a810d8 100644 --- a/addons/arsenal/XEH_PREP.hpp +++ b/addons/arsenal/XEH_PREP.hpp @@ -39,6 +39,7 @@ PREP(fillLeftPanel); PREP(fillLoadoutsList); PREP(fillRightPanel); PREP(fillSort); +PREP(getVirtualItems); PREP(handleActions); PREP(handleLoadoutsSearchbar); PREP(handleMouse); diff --git a/addons/arsenal/functions/fnc_getVirtualItems.sqf b/addons/arsenal/functions/fnc_getVirtualItems.sqf new file mode 100644 index 0000000000..0666b34087 --- /dev/null +++ b/addons/arsenal/functions/fnc_getVirtualItems.sqf @@ -0,0 +1,39 @@ +#include "..\script_component.hpp" +#include "..\defines.hpp" +/* + * Author: johnb43, Grim + * Gets list of virtual items available to the object. + * + * Arguments: + * 0: Target + * + * Return Value: + * Virtual Items + * + * Example: + * cursorObject call ace_arsenal_fnc_getVirtualItems + * + * Public: Yes +*/ +params [["_object", objNull, [objNull]]]; + +private _virtualItems = _object getVariable QGVAR(virtualItems); +if (isNil "_virtualItems") exitWith {createHashMap}; + +private _virtualItemsFlat = +_virtualItems; +private _weapons = _virtualItemsFlat deleteAt IDX_VIRT_WEAPONS; +private _attachments = _virtualItemsFlat deleteAt IDX_VIRT_ATTACHMENTS; + +for "_index" from IDX_VIRT_ITEMS_ALL to IDX_VIRT_MISC_ITEMS do { + _virtualItemsFlat merge [_virtualItemsFlat deleteAt _index, true]; +}; + +for "_index" from IDX_VIRT_PRIMARY_WEAPONS to IDX_VIRT_HANDGUN_WEAPONS do { + _virtualItemsFlat merge [_weapons deleteAt _index, true]; +}; + +for "_index" from IDX_VIRT_OPTICS_ATTACHMENTS to IDX_VIRT_BIPOD_ATTACHMENTS do { + _virtualItemsFlat merge [_attachments deleteAt _index, true]; +}; + +_virtualItemsFlat // return From c92eca7751ba92c41b1d55341a8a077adbd6d322 Mon Sep 17 00:00:00 2001 From: MiszczuZPolski <71414303+MiszczuZPolski@users.noreply.github.com> Date: Wed, 18 Oct 2023 21:02:30 +0200 Subject: [PATCH 015/348] Medical Treatment - Improve display name for arsenal tab (#9525) * add new display name for arsenal tab * german language added * Update stringtable.xml * Update stringtable.xml --- addons/medical_treatment/XEH_preInit.sqf | 2 +- addons/medical_treatment/stringtable.xml | 13 +++++++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/addons/medical_treatment/XEH_preInit.sqf b/addons/medical_treatment/XEH_preInit.sqf index 79ec737aa6..68b80b5d0d 100644 --- a/addons/medical_treatment/XEH_preInit.sqf +++ b/addons/medical_treatment/XEH_preInit.sqf @@ -48,7 +48,7 @@ GVAR(facilityClasses) = []; // Custom Arsenal tab if (["ace_arsenal"] call EFUNC(common,isModLoaded)) then { - [MEDICAL_TREATMENT_ITEMS, LELSTRING(medical,Category), ARSENAL_CATEGORY_ICON, -1, true] call EFUNC(arsenal,addRightPanelButton); + [MEDICAL_TREATMENT_ITEMS, LLSTRING(medicalTab), ARSENAL_CATEGORY_ICON, -1, true] call EFUNC(arsenal,addRightPanelButton); }; ADDON = true; diff --git a/addons/medical_treatment/stringtable.xml b/addons/medical_treatment/stringtable.xml index 1dbb876418..74e6f8ef6b 100644 --- a/addons/medical_treatment/stringtable.xml +++ b/addons/medical_treatment/stringtable.xml @@ -4784,5 +4784,18 @@ Bestimmt, wie wirksam Bandagen beim Verschließen von Wunden sind. 붕대가 상처를 치료하는 데 얼마나 효과적으로 지속되는지 결정합니다. + + Medical Items + Przedmioty Medyczne + Matériel médical + 의료 물품 + Orvosi felszerelés + Медицинские предметы + Zdravotnický materiál + Tıbbi Ürünler + Medizinisches Material + 医療品 + Objetos médicos + From 262b7fe5c6449e1c13a6b2be141a309380925277 Mon Sep 17 00:00:00 2001 From: Mike-MF Date: Wed, 18 Oct 2023 20:03:21 +0100 Subject: [PATCH 016/348] Night Vision - Add prefix to `colorPreset` (#9520) * Add ACE Prefix to colorPreset, update docs. * remove pointless bwc --- .../functions/fnc_refreshGoggleType.sqf | 7 ++++--- addons/nightvision/script_component.hpp | 4 ++-- docs/wiki/framework/nightvision-framework.md | 17 +++++++++++++---- 3 files changed, 19 insertions(+), 9 deletions(-) diff --git a/addons/nightvision/functions/fnc_refreshGoggleType.sqf b/addons/nightvision/functions/fnc_refreshGoggleType.sqf index 60ac627889..7414e58d02 100644 --- a/addons/nightvision/functions/fnc_refreshGoggleType.sqf +++ b/addons/nightvision/functions/fnc_refreshGoggleType.sqf @@ -27,7 +27,8 @@ private _nvgGen = 3; private _blurRadius = -1; // Adds Array of Params / Original ACE3's (ST's) by default. (NVG_GREEN_PRESET) -private _preset = getArray (configFile >> "CfgWeapons" >> "NVGoggles" >> "colorPreset"); +private _preset = getArray (configFile >> "CfgWeapons" >> "NVGoggles" >> QGVAR(colorPreset)); + if ((alive ACE_player) && {isNull (ACE_controlledUAV select 0)}) then { if (((vehicle ACE_player) == ACE_player) || { // Test if we are using player's nvg or if sourced from vehicle: @@ -47,7 +48,7 @@ if ((alive ACE_player) && {isNull (ACE_controlledUAV select 0)}) then { TRACE_1("souce: binocular",binocular ACE_player); // Source is from player's binocular (Rangefinder/Vector21bNite) private _config = configFile >> "CfgWeapons" >> (binocular ACE_player); if (isNumber (_config >> QGVAR(generation))) then {_nvgGen = getNumber (_config >> QGVAR(generation));}; - if (isArray (_config >> "colorPreset")) then {_preset = getArray (_config >> "colorPreset");}; + if (isArray (_config >> QGVAR(colorPreset))) then {_preset = getArray (_config >> QGVAR(colorPreset));}; }; TRACE_1("source: hmd",GVAR(playerHMD)); // Source is player's HMD (or possibly a NVG scope, but no good way to detect that) @@ -62,7 +63,7 @@ if ((alive ACE_player) && {isNull (ACE_controlledUAV select 0)}) then { if (isNumber (_config >> QGVAR(bluRadius))) then {_blurRadius = getNumber (_config >> QGVAR(bluRadius));}; }; if (isNumber (_config >> QGVAR(generation))) then {_nvgGen = getNumber (_config >> QGVAR(generation));}; - if (isArray (_config >> "colorPreset")) then {_preset = getArray (_config >> "colorPreset");}; + if (isArray (_config >> QGVAR(colorPreset))) then {_preset = getArray (_config >> QGVAR(colorPreset));}; } else { TRACE_1("source: vehicle - defaults",typeOf vehicle ACE_player); }; diff --git a/addons/nightvision/script_component.hpp b/addons/nightvision/script_component.hpp index 2bf48a8d05..68548ed39f 100644 --- a/addons/nightvision/script_component.hpp +++ b/addons/nightvision/script_component.hpp @@ -19,8 +19,8 @@ // Effect Settings / Magic values to tweak: -#define NVG_GREEN_PRESET colorPreset[] = {0, {0.0, 0.0, 0.0, 0.0}, {1.3, 1.2, 0.0, 0.9}, {6, 1, 1, 0.0}} -#define NVG_WHITE_PRESET colorPreset[] = {0.0, {0.0, 0.0, 0.0, 0.0}, {1.1, 0.8, 1.9, 0.9}, {1, 1, 6, 0.0}} +#define NVG_GREEN_PRESET GVAR(colorPreset)[] = {0, {0.0, 0.0, 0.0, 0.0}, {1.3, 1.2, 0.0, 0.9}, {6, 1, 1, 0.0}} +#define NVG_WHITE_PRESET GVAR(colorPreset)[] = {0.0, {0.0, 0.0, 0.0, 0.0}, {1.1, 0.8, 1.9, 0.9}, {1, 1, 6, 0.0}} // Decreases fog when in air vehicles #define ST_NVG_AIR_FOG_MULTIPLIER 0.5 diff --git a/docs/wiki/framework/nightvision-framework.md b/docs/wiki/framework/nightvision-framework.md index 8d9bf7eda7..5f91421b8d 100644 --- a/docs/wiki/framework/nightvision-framework.md +++ b/docs/wiki/framework/nightvision-framework.md @@ -27,10 +27,19 @@ class CfgWeapons { author = ECSTRING(common,ACETeam); descriptionShort = "Biocular nightvision goggles"; displayName = "NV Goggles (Bio)"; - GVAR(border) = QPATHTOF(data\nvg_mask_binos_4096.paa); // Edge mask for different tube configurations. Three types: mono, bino and quad. - GVAR(bluRadius) = 0.13; // Edge blur radius. - GVAR(eyeCups) = 1; // Does have eyecups. - GVAR(generation) = 4; // Generation 4. Affects image quality. + ace_nightvision_border = QPATHTOF(data\nvg_mask_binos_4096.paa); // Edge mask for different tube configurations. Three types: mono, bino and quad. + ace_nightvision_bluRadius = 0.13; // Edge blur radius. + ace_nightvision_colorPreset[] = {0, {0.0, 0.0, 0.0, 0.0}, {1.3, 1.2, 0.0, 0.9}, {6, 1, 1, 0.0}}; // Green preset + ace_nightvision_eyeCups = 1; // Does have eyecups. + ace_nightvision_generation = 4; // Generation 4. Affects image quality. }; }; ``` + +## 2. Color Presets + +Additional color presets + +```cpp +ace_nightvision_colorPreset[] = {0.0, {0.0, 0.0, 0.0, 0.0}, {1.1, 0.8, 1.9, 0.9}, {1, 1, 6, 0.0}}; // White Phosphor Preset +``` From 902e3655369c59f1b82ed84e86d4cc533aa21b32 Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Wed, 18 Oct 2023 14:19:20 -0500 Subject: [PATCH 017/348] Tools - Update `addon.toml` to HEMTT 1.9.1 (#9511) Tools - Update addon.toml to hemtt1.91 --- addons/fire/addon.toml | 2 +- addons/medical/addon.toml | 2 +- addons/medical_ai/addon.toml | 2 +- addons/medical_blood/addon.toml | 2 +- addons/medical_damage/addon.toml | 2 +- addons/medical_engine/addon.toml | 2 +- addons/medical_feedback/addon.toml | 2 +- addons/medical_gui/addon.toml | 2 +- addons/medical_statemachine/addon.toml | 2 +- addons/medical_status/addon.toml | 2 +- addons/medical_treatment/addon.toml | 2 +- addons/medical_vitals/addon.toml | 2 +- addons/realisticnames/addon.toml | 2 +- tools/make.py | 2 +- tools/search_undefinedFunctions.py | 5 ++++- tools/sqfvmChecker.py | 27 ++++++++++---------------- 16 files changed, 28 insertions(+), 32 deletions(-) diff --git a/addons/fire/addon.toml b/addons/fire/addon.toml index 7cfef775ee..b58beb488a 100644 --- a/addons/fire/addon.toml +++ b/addons/fire/addon.toml @@ -1,2 +1,2 @@ -[preprocess] +[rapify] enabled = false diff --git a/addons/medical/addon.toml b/addons/medical/addon.toml index 7cfef775ee..b58beb488a 100644 --- a/addons/medical/addon.toml +++ b/addons/medical/addon.toml @@ -1,2 +1,2 @@ -[preprocess] +[rapify] enabled = false diff --git a/addons/medical_ai/addon.toml b/addons/medical_ai/addon.toml index 7cfef775ee..b58beb488a 100644 --- a/addons/medical_ai/addon.toml +++ b/addons/medical_ai/addon.toml @@ -1,2 +1,2 @@ -[preprocess] +[rapify] enabled = false diff --git a/addons/medical_blood/addon.toml b/addons/medical_blood/addon.toml index 7cfef775ee..b58beb488a 100644 --- a/addons/medical_blood/addon.toml +++ b/addons/medical_blood/addon.toml @@ -1,2 +1,2 @@ -[preprocess] +[rapify] enabled = false diff --git a/addons/medical_damage/addon.toml b/addons/medical_damage/addon.toml index 7cfef775ee..b58beb488a 100644 --- a/addons/medical_damage/addon.toml +++ b/addons/medical_damage/addon.toml @@ -1,2 +1,2 @@ -[preprocess] +[rapify] enabled = false diff --git a/addons/medical_engine/addon.toml b/addons/medical_engine/addon.toml index 7cfef775ee..b58beb488a 100644 --- a/addons/medical_engine/addon.toml +++ b/addons/medical_engine/addon.toml @@ -1,2 +1,2 @@ -[preprocess] +[rapify] enabled = false diff --git a/addons/medical_feedback/addon.toml b/addons/medical_feedback/addon.toml index 7cfef775ee..b58beb488a 100644 --- a/addons/medical_feedback/addon.toml +++ b/addons/medical_feedback/addon.toml @@ -1,2 +1,2 @@ -[preprocess] +[rapify] enabled = false diff --git a/addons/medical_gui/addon.toml b/addons/medical_gui/addon.toml index 7cfef775ee..b58beb488a 100644 --- a/addons/medical_gui/addon.toml +++ b/addons/medical_gui/addon.toml @@ -1,2 +1,2 @@ -[preprocess] +[rapify] enabled = false diff --git a/addons/medical_statemachine/addon.toml b/addons/medical_statemachine/addon.toml index 7cfef775ee..b58beb488a 100644 --- a/addons/medical_statemachine/addon.toml +++ b/addons/medical_statemachine/addon.toml @@ -1,2 +1,2 @@ -[preprocess] +[rapify] enabled = false diff --git a/addons/medical_status/addon.toml b/addons/medical_status/addon.toml index 7cfef775ee..b58beb488a 100644 --- a/addons/medical_status/addon.toml +++ b/addons/medical_status/addon.toml @@ -1,2 +1,2 @@ -[preprocess] +[rapify] enabled = false diff --git a/addons/medical_treatment/addon.toml b/addons/medical_treatment/addon.toml index 7cfef775ee..b58beb488a 100644 --- a/addons/medical_treatment/addon.toml +++ b/addons/medical_treatment/addon.toml @@ -1,2 +1,2 @@ -[preprocess] +[rapify] enabled = false diff --git a/addons/medical_vitals/addon.toml b/addons/medical_vitals/addon.toml index 7cfef775ee..b58beb488a 100644 --- a/addons/medical_vitals/addon.toml +++ b/addons/medical_vitals/addon.toml @@ -1,2 +1,2 @@ -[preprocess] +[rapify] enabled = false diff --git a/addons/realisticnames/addon.toml b/addons/realisticnames/addon.toml index 7cfef775ee..b58beb488a 100644 --- a/addons/realisticnames/addon.toml +++ b/addons/realisticnames/addon.toml @@ -1,2 +1,2 @@ -[preprocess] +[rapify] enabled = false diff --git a/tools/make.py b/tools/make.py index 5e768ac37e..a6ba9cca5f 100644 --- a/tools/make.py +++ b/tools/make.py @@ -1329,7 +1329,7 @@ See the make.cfg file for additional build options. if "preprocess = false" in tomlFile: print_error("'preprocess = false' not supported") raise - skipPreprocessing = "[preprocess]\nenabled = false" in tomlFile + skipPreprocessing = "[preprocess]\nenabled = false" in tomlFile or "[rapify]\nenabled = false" in tomlFile if os.path.isfile(os.path.join(work_drive, prefix, module, "$NOBIN$")): print_green("$NOBIN$ Found. Proceeding with non-binarizing!") diff --git a/tools/search_undefinedFunctions.py b/tools/search_undefinedFunctions.py index fcbf690996..6789bbe93d 100644 --- a/tools/search_undefinedFunctions.py +++ b/tools/search_undefinedFunctions.py @@ -60,6 +60,7 @@ def Paste( data ): def getFunctions(filepath): selfmodule = (re.search(r'addons[\W]*([_a-zA-Z0-9]*)', filepath)).group(1) # print("Checking {0} from {1}".format(filepath,selfmodule)) + if (selfmodule.startswith("compat")): return [] with open(filepath, 'r') as file: content = file.read() @@ -85,6 +86,7 @@ def getFunctions(filepath): def getStrings(filepath): selfmodule = (re.search(r'addons[\W]*([_a-zA-Z0-9]*)', filepath)).group(1) # print("Checking {0} from {1}".format(filepath,selfmodule)) + if (selfmodule.startswith("compat")): return [] with open(filepath, 'r') as file: content = file.read() @@ -121,7 +123,8 @@ def main(): parser.add_argument('-m','--module', help='only search specified module addon folder', required=False, default=".") args = parser.parse_args() - for root, dirnames, filenames in os.walk('../addons' + '/' + args.module): + addon_base_path = os.path.dirname(os.path.dirname(os.path.realpath(__file__))) + for root, dirnames, filenames in os.walk(addon_base_path +"/" + 'addons' + '/' + args.module): for filename in fnmatch.filter(filenames, '*.sqf'): sqf_list.append(os.path.join(root, filename)) for filename in fnmatch.filter(filenames, '*.cpp'): diff --git a/tools/sqfvmChecker.py b/tools/sqfvmChecker.py index 444b6e9026..423d89ffbb 100644 --- a/tools/sqfvmChecker.py +++ b/tools/sqfvmChecker.py @@ -2,8 +2,9 @@ import os import sys import subprocess import concurrent.futures +import tomllib -addon_base_path = os.path.dirname(os.getcwd()) +addon_base_path = os.path.dirname(os.path.dirname(os.path.realpath(__file__))) files_to_ignore_lower = [ x.lower() for x in ["initSettings.sqf", "initKeybinds.sqf", "XEH_PREP.sqf"] @@ -26,22 +27,14 @@ def get_files_to_process(basePath): if file.lower() in files_to_ignore_lower: continue skipPreprocessing = False - addonTomlPath = os.path.join(root, "addon.toml") - if os.path.isfile(addonTomlPath): - with open(addonTomlPath, "r") as f: - tomlFile = f.read() - if "preprocess = false" in tomlFile: - print("'preprocess = false' not supported") - raise - skipPreprocessing = "[preprocess]\nenabled = false" in tomlFile - addonTomlPath = os.path.join(os.path.dirname(root), "addon.toml") - if os.path.isfile(addonTomlPath): - with open(addonTomlPath, "r") as f: - tomlFile = f.read() - if "preprocess = false" in tomlFile: - print("'preprocess = false' not supported") - raise - skipPreprocessing = "[preprocess]\nenabled = false" in tomlFile + for addonTomlPath in [os.path.join(root, "addon.toml"), os.path.join(os.path.dirname(root), "addon.toml")]: + if os.path.isfile(addonTomlPath): + with open(addonTomlPath, "rb") as f: + tomlFile = tomllib.load(f) + try: + skipPreprocessing = not tomlFile.get('rapify')['enabled'] + except: + pass if file == "config.cpp" and skipPreprocessing: continue # ignore configs with __has_include filePath = os.path.join(root, file) From d70c049b4f924400af5385acfe5842305e9c4132 Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Wed, 18 Oct 2023 21:17:07 -0500 Subject: [PATCH 018/348] CSW/Dragging - Handle null objects causing script errors (#9529) * CSW - Handle static weapon be deleted * add same fix to dragging --- addons/csw/functions/fnc_staticWeaponInit.sqf | 1 + addons/dragging/functions/fnc_initPerson.sqf | 1 + 2 files changed, 2 insertions(+) diff --git a/addons/csw/functions/fnc_staticWeaponInit.sqf b/addons/csw/functions/fnc_staticWeaponInit.sqf index 3b1d7ef66e..fcef5df08e 100644 --- a/addons/csw/functions/fnc_staticWeaponInit.sqf +++ b/addons/csw/functions/fnc_staticWeaponInit.sqf @@ -16,6 +16,7 @@ */ params ["_staticWeapon"]; +if (isNull _staticWeapon) exitWith { WARNING_1("%1 became null",_staticWeapon) }; private _typeOf = typeOf _staticWeapon; private _configOf = configOf _staticWeapon; private _configEnabled = (getNumber (_configOf >> "ace_csw" >> "enabled")) == 1; diff --git a/addons/dragging/functions/fnc_initPerson.sqf b/addons/dragging/functions/fnc_initPerson.sqf index fd166cfab9..6ac2b5d569 100644 --- a/addons/dragging/functions/fnc_initPerson.sqf +++ b/addons/dragging/functions/fnc_initPerson.sqf @@ -16,6 +16,7 @@ */ params ["_unit"]; +if (isNull _unit) exitWith { WARNING_1("%1 became null",_unit) }; [_unit, true, [0, 1.1, 0.092], 180] call FUNC(setDraggable); [_unit, true, [0.4, -0.1, -1.25], 195] call FUNC(setCarryable); // Hard-coded selection: "LeftShoulder" From e3f447c8bdd568fd2c56190d57782aec4e83217a Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Thu, 19 Oct 2023 12:15:14 -0500 Subject: [PATCH 019/348] Zeus - Fix trench module on clients (#9513) * Zeus - Fix trench module on clients * Update addons/zeus/functions/fnc_moduleLayTrench.sqf --- addons/zeus/functions/fnc_moduleLayTrench.sqf | 3 +++ 1 file changed, 3 insertions(+) diff --git a/addons/zeus/functions/fnc_moduleLayTrench.sqf b/addons/zeus/functions/fnc_moduleLayTrench.sqf index e92725138f..fe4e29b62c 100644 --- a/addons/zeus/functions/fnc_moduleLayTrench.sqf +++ b/addons/zeus/functions/fnc_moduleLayTrench.sqf @@ -27,6 +27,9 @@ if !(["ace_trenches"] call EFUNC(common,isModLoaded)) exitWith { [LSTRING(RequiresAddon)] call FUNC(showMessage); }; +if (_logic getVariable [QGVAR(ran), false]) exitWith {}; +_logic setVariable [QGVAR(ran), true]; + private _drawCode = { params ["_object", "_mousePos"]; private _startPos = getPos _object; From 6f001c72bd718fc7d68178140718dbec709d1940 Mon Sep 17 00:00:00 2001 From: Apricot <50947830+Apricot-ale@users.noreply.github.com> Date: Fri, 20 Oct 2023 02:18:44 +0900 Subject: [PATCH 020/348] Translations - Japanese Hotfix for Arsenal Sorting (#9533) Japanese arsenal sort hotfix --- addons/arsenal/stringtable.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/arsenal/stringtable.xml b/addons/arsenal/stringtable.xml index 1b0ef2a6cf..bf7c087cc0 100644 --- a/addons/arsenal/stringtable.xml +++ b/addons/arsenal/stringtable.xml @@ -1558,7 +1558,7 @@ Descending - 下降 + 降順 Malejąco Absteigend 내림차순 From 2fbc40b62d8d1428c5983f031102c2515f3dcaae Mon Sep 17 00:00:00 2001 From: MiszczuZPolski <71414303+MiszczuZPolski@users.noreply.github.com> Date: Fri, 20 Oct 2023 01:25:05 +0200 Subject: [PATCH 021/348] Medical GUI - Change minimal value of damage threshold (#9538) * change minimal value of damage threshold * applying pabst suggestion * remove space * Update addons/medical_gui/functions/fnc_updateBodyImage.sqf Co-authored-by: PabstMirror --------- Co-authored-by: Grim <69561145+LinkIsGrim@users.noreply.github.com> Co-authored-by: PabstMirror --- addons/medical_gui/functions/fnc_updateBodyImage.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/medical_gui/functions/fnc_updateBodyImage.sqf b/addons/medical_gui/functions/fnc_updateBodyImage.sqf index a7e579d193..4d22b68a2d 100644 --- a/addons/medical_gui/functions/fnc_updateBodyImage.sqf +++ b/addons/medical_gui/functions/fnc_updateBodyImage.sqf @@ -91,7 +91,7 @@ private _bodyPartBloodLoss = [0, 0, 0, 0, 0, 0]; _damageThreshold = _damageThreshold * 1.5 }; }; - _damage = (_damage / _damageThreshold) min 1; + _damage = (_damage / (0.01 max _damageThreshold)) min 1; [_damage] call FUNC(damageToRGBA); }; From f0a6fc7b9d433b7b3eedd19ad866464674361034 Mon Sep 17 00:00:00 2001 From: amsteadrayle <2516219+amsteadrayle@users.noreply.github.com> Date: Thu, 19 Oct 2023 19:25:19 -0400 Subject: [PATCH 022/348] Advanced Fatigue - Add settings to change sway factor with weapon rested/deployed (#9536) Add setting to change sway factor with weapon rested/deployed --- addons/advanced_fatigue/XEH_postInit.sqf | 14 +++++++++++++- addons/advanced_fatigue/initSettings.sqf | 18 ++++++++++++++++++ addons/advanced_fatigue/stringtable.xml | 12 ++++++++++++ 3 files changed, 43 insertions(+), 1 deletion(-) diff --git a/addons/advanced_fatigue/XEH_postInit.sqf b/addons/advanced_fatigue/XEH_postInit.sqf index 56dcb71372..d447c3f651 100644 --- a/addons/advanced_fatigue/XEH_postInit.sqf +++ b/addons/advanced_fatigue/XEH_postInit.sqf @@ -17,7 +17,19 @@ if (!hasInterface) exitWith {}; }; }, QUOTE(ADDON)] call EFUNC(common,addSwayFactor); -["multiplier", {GVAR(swayFactor)}, QUOTE(ADDON)] call EFUNC(common,addSwayFactor); +["multiplier", { + switch (true) do { + case (isWeaponRested ACE_player): { + GVAR(swayFactor) * GVAR(restedSwayFactor) + }; + case (isWeaponDeployed ACE_player): { + GVAR(swayFactor) * GVAR(deployedSwayFactor) + }; + default { + GVAR(swayFactor) + }; + }; +}, QUOTE(ADDON)] call EFUNC(common,addSwayFactor); // recheck weapon inertia after weapon swap, change of attachments or switching unit ["weapon", {[ACE_player] call FUNC(getWeaponInertia)}, true] call CBA_fnc_addPlayerEventHandler; diff --git a/addons/advanced_fatigue/initSettings.sqf b/addons/advanced_fatigue/initSettings.sqf index 7787fd3f5d..e2d797bf91 100644 --- a/addons/advanced_fatigue/initSettings.sqf +++ b/addons/advanced_fatigue/initSettings.sqf @@ -89,3 +89,21 @@ [0, 5, 1, 1], true ] call CBA_fnc_addSetting; + +[ + QGVAR(restedSwayFactor), + "SLIDER", + [LSTRING(RestedSwayFactor), LSTRING(RestedSwayFactor_Description)], + LSTRING(DisplayName), + [0, 5, 1, 2], + true +] call CBA_fnc_addSetting; + +[ + QGVAR(deployedSwayFactor), + "SLIDER", + [LSTRING(DeployedSwayFactor), LSTRING(DeployedSwayFactor_Description)], + LSTRING(DisplayName), + [0, 5, 1, 2], + true +] call CBA_fnc_addSetting; diff --git a/addons/advanced_fatigue/stringtable.xml b/addons/advanced_fatigue/stringtable.xml index 5737e1fca2..f2949cdf5a 100644 --- a/addons/advanced_fatigue/stringtable.xml +++ b/addons/advanced_fatigue/stringtable.xml @@ -184,6 +184,18 @@ Ovlivňuje množství kývání zbraní. Vyšší znamená více kývání. 손떨림의 정도를 정합니다. 높을 수록 많이 휘적입니다. + + Rested sway factor + + + Influences the amount of weapon sway while weapon is rested. + + + Deployed sway factor + + + Influences the amount of weapon sway while weapon is deployed. + Enabled Activada From 124798cb8d15050dbc419f00580ef3ecd8f151a4 Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Thu, 19 Oct 2023 18:25:44 -0500 Subject: [PATCH 023/348] Advanced Throwing - Call ammo event handlers (#9535) AdvThrowing - Run ammo event handlers Close #9532 --- addons/advanced_throwing/XEH_postInit.sqf | 1 + .../functions/fnc_throwFiredXEH.sqf | 17 ++++++++++++++--- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/addons/advanced_throwing/XEH_postInit.sqf b/addons/advanced_throwing/XEH_postInit.sqf index 7c0a194267..96b0fbb09b 100644 --- a/addons/advanced_throwing/XEH_postInit.sqf +++ b/addons/advanced_throwing/XEH_postInit.sqf @@ -1,6 +1,7 @@ #include "script_component.hpp" // Fired XEH +GVAR(ammoEventHandlers) = createHashMap; [QGVAR(throwFiredXEH), FUNC(throwFiredXEH)] call CBA_fnc_addEventHandler; // Exit on HC diff --git a/addons/advanced_throwing/functions/fnc_throwFiredXEH.sqf b/addons/advanced_throwing/functions/fnc_throwFiredXEH.sqf index 9d2e9e24b2..bbbcbf3274 100644 --- a/addons/advanced_throwing/functions/fnc_throwFiredXEH.sqf +++ b/addons/advanced_throwing/functions/fnc_throwFiredXEH.sqf @@ -20,14 +20,25 @@ * * Public: No */ - +params ["_unit", "", "_muzzle", "", "_ammo"]; TRACE_1("Fired",_this); { _this call _x; -} forEach ((_this select 0) getVariable "cba_xeh_fired"); +} forEach (_unit getVariable "cba_xeh_fired"); // Call muzzle fired EH { _this call compile getText (_x >> "fired"); -} forEach (configProperties [configFile >> "CfgWeapons" >> "Throw" >> (_this select 2) >> "EventHandlers", "isClass _x", true]); +} forEach (configProperties [configFile >> "CfgWeapons" >> "Throw" >> _muzzle >> "EventHandlers", "isClass _x", true]); + +// Call ammo fired EH +{ _this call _x } forEach (GVAR(ammoEventHandlers) getOrDefaultCall [_ammo, { + private _cfg = configFile >> "CfgAmmo" >> _ammo >> "EventHandlers"; + private _eventHandlers = []; + { + private _eh = getText (_x >> "fired"); + if (_eh != "") then { _eventHandlers pushBack compile _eh }; + } forEach ([_cfg] + configProperties [_cfg, "isClass _x", true]); + _eventHandlers +}, true]); From 55566fd60f469b271f935f87d2edeaed60e364ff Mon Sep 17 00:00:00 2001 From: Grim <69561145+LinkIsGrim@users.noreply.github.com> Date: Thu, 19 Oct 2023 20:24:38 -0400 Subject: [PATCH 024/348] Interaction/Dragging - Remove actions from scripted weaponHolders (#9541) remove actions from scripted holders --- addons/dragging/CfgEventHandlers.hpp | 7 +++++++ addons/interaction/CfgVehicles.hpp | 21 +++++++++++++++++++++ 2 files changed, 28 insertions(+) diff --git a/addons/dragging/CfgEventHandlers.hpp b/addons/dragging/CfgEventHandlers.hpp index 94ebf2cda6..d3b43b314a 100644 --- a/addons/dragging/CfgEventHandlers.hpp +++ b/addons/dragging/CfgEventHandlers.hpp @@ -42,6 +42,13 @@ class Extended_Init_EventHandlers { class WeaponHolder { class ADDON { init = QUOTE(_this call FUNC(initObject)); + exclude[] = {"GroundWeaponHolder_Scripted"}; + }; + }; + class WeaponHolderSimulated { + class ADDON { + init = QUOTE(_this call FUNC(initObject)); + exclude[] = {"WeaponHolderSimulated_Scripted"}; }; }; class Land_Camping_Light_F { diff --git a/addons/interaction/CfgVehicles.hpp b/addons/interaction/CfgVehicles.hpp index 57753dfaff..e19a8c2502 100644 --- a/addons/interaction/CfgVehicles.hpp +++ b/addons/interaction/CfgVehicles.hpp @@ -715,6 +715,14 @@ class CfgVehicles { }; }; }; + // Don't enable for scripted + class WeaponHolderSimulated_Scripted: WeaponHolderSimulated { + class ACE_Actions: ACE_Actions { + class ACE_MainActions: ACE_MainActions { + delete GVAR(Gear); + }; + }; + }; class ReammoBox; // dropped weapons/gear @@ -733,6 +741,19 @@ class CfgVehicles { }; }; }; + // Don't enable for scripted + class GroundWeaponHolder: WeaponHolder { + class ACE_Actions: ACE_Actions { + class ACE_MainActions; + }; + }; + class GroundWeaponHolder_Scripted: GroundWeaponHolder { + class ACE_Actions: ACE_Actions { + class ACE_MainActions: ACE_MainActions { + delete GVAR(Gear); + }; + }; + }; class Lamps_base_F; class Land_PortableLight_single_F: Lamps_base_F { From 5d49a57bd1575094c3e36643729d2dc31fd2d132 Mon Sep 17 00:00:00 2001 From: amsteadrayle <2516219+amsteadrayle@users.noreply.github.com> Date: Thu, 19 Oct 2023 20:37:58 -0400 Subject: [PATCH 025/348] Medical - Move GUI and Feedback settings to separate category (#9537) * Move medical interface settings to separate category * Add translations from `str_3den_display3den_menubar_interface_text` --------- Co-authored-by: PabstMirror --- addons/medical/stringtable.xml | 16 ++++++++++++++ addons/medical_feedback/initSettings.sqf | 6 ++--- addons/medical_gui/initSettings.sqf | 28 ++++++++++++------------ 3 files changed, 33 insertions(+), 17 deletions(-) diff --git a/addons/medical/stringtable.xml b/addons/medical/stringtable.xml index 5d2b66ae6c..490ad423eb 100644 --- a/addons/medical/stringtable.xml +++ b/addons/medical/stringtable.xml @@ -18,6 +18,22 @@ ACE Medikal ACE 医療 + + ACE Medical Interface + ACE Медицина Интерфейс + ACE Opcje medyczne Interfejs + Médico ACE Interfaz + ACE-Medicsystem Interface + ACE Zdravotnické Rozhraní + ACE Médico Interface + ACE Médical Interface + ACE Medical Interfaccia + ACE 의료 인터페이스 + ACE 医疗 界面 + ACE 醫療系統 介面 + ACE Medikal Arayüz + ACE 医療 インターフェイス + Unconscious Wake Up Chance Wahrscheinlichkeit um aufzuwachen diff --git a/addons/medical_feedback/initSettings.sqf b/addons/medical_feedback/initSettings.sqf index 997a5f061b..1268335b21 100644 --- a/addons/medical_feedback/initSettings.sqf +++ b/addons/medical_feedback/initSettings.sqf @@ -2,7 +2,7 @@ QGVAR(painEffectType), "LIST", [LSTRING(PainEffectType_DisplayName), LSTRING(PainEffectType_Description)], - [ELSTRING(medical,Category), LSTRING(SubCategory)], + [ELSTRING(medical,Interface_Category), LSTRING(SubCategory)], [ [FX_PAIN_WHITE_FLASH, FX_PAIN_PULSATING_BLUR, FX_PAIN_CHROMATIC_ABERRATION, FX_PAIN_ONLY_BASE], [LSTRING(painEffectType_whiteFlashing), LSTRING(painEffectType_pulsingBlur), LSTRING(painEffectType_chromAberration), LSTRING(painEffectType_onlyBase)], @@ -23,7 +23,7 @@ QGVAR(bloodVolumeEffectType), "LIST", [LSTRING(BloodVolumeEffectType_DisplayName), LSTRING(BloodVolumeEffectType_Description)], - [ELSTRING(medical,Category), LSTRING(SubCategory)], + [ELSTRING(medical,Interface_Category), LSTRING(SubCategory)], [ [FX_BLOODVOLUME_COLOR_CORRECTION, FX_BLOODVOLUME_ICON, FX_BLOODVOLUME_BOTH], [LSTRING(BloodVolumeEffectType_colorCorrection), LSTRING(BloodVolumeEffectType_icon), LSTRING(BloodVolumeEffectType_both)], @@ -44,7 +44,7 @@ QGVAR(enableHUDIndicators), "CHECKBOX", [LSTRING(EnableHUDIndicators_DisplayName), LSTRING(EnableHUDIndicators_Description)], - [ELSTRING(medical,Category), LSTRING(SubCategory)], + [ELSTRING(medical,Interface_Category), LSTRING(SubCategory)], true, false, { diff --git a/addons/medical_gui/initSettings.sqf b/addons/medical_gui/initSettings.sqf index 5c9024fea5..a0418ca74e 100644 --- a/addons/medical_gui/initSettings.sqf +++ b/addons/medical_gui/initSettings.sqf @@ -2,7 +2,7 @@ QGVAR(enableActions), "LIST", [LSTRING(EnableActions_DisplayName), LSTRING(EnableActions_Description)], - [ELSTRING(medical,Category), LSTRING(SubCategory)], + [ELSTRING(medical,Interface_Category), LSTRING(SubCategory)], [[0, 1, 2], [LSTRING(Selections3D), LSTRING(Radial), ELSTRING(common,Disabled)], 0], false ] call CBA_fnc_addSetting; @@ -11,7 +11,7 @@ QGVAR(enableSelfActions), "CHECKBOX", [LSTRING(EnableSelfActions_DisplayName), LSTRING(EnableSelfActions_Description)], - [ELSTRING(medical,Category), LSTRING(SubCategory)], + [ELSTRING(medical,Interface_Category), LSTRING(SubCategory)], true, false ] call CBA_fnc_addSetting; @@ -20,7 +20,7 @@ QGVAR(enableMedicalMenu), "LIST", [LSTRING(EnableMedicalMenu_DisplayName), LSTRING(EnableMedicalMenu_Description)], - [ELSTRING(medical,Category), LSTRING(SubCategory)], + [ELSTRING(medical,Interface_Category), LSTRING(SubCategory)], [[0, 1, 2], [ELSTRING(common,Disabled), ELSTRING(common,Enabled), ELSTRING(common,VehiclesOnly)], 1], false ] call CBA_fnc_addSetting; @@ -29,7 +29,7 @@ QGVAR(openAfterTreatment), "CHECKBOX", [LSTRING(OpenAfterTreatment_DisplayName), LSTRING(OpenAfterTreatment_Description)], - [ELSTRING(medical,Category), LSTRING(SubCategory)], + [ELSTRING(medical,Interface_Category), LSTRING(SubCategory)], true, false ] call CBA_fnc_addSetting; @@ -38,7 +38,7 @@ QGVAR(maxDistance), "SLIDER", [LSTRING(MaxDistance_DisplayName), LSTRING(MaxDistance_Description)], - [ELSTRING(medical,Category), LSTRING(SubCategory)], + [ELSTRING(medical,Interface_Category), LSTRING(SubCategory)], [0, 10, 3, 1], true ] call CBA_fnc_addSetting; @@ -47,7 +47,7 @@ QGVAR(interactionMenuShowTriage), "LIST", [LSTRING(InteractionMenuShowTriage_DisplayName), LSTRING(InteractionMenuShowTriage_Description)], - [ELSTRING(medical,Category), LSTRING(SubCategory)], + [ELSTRING(medical,Interface_Category), LSTRING(SubCategory)], [[0, 1, 2], [ELSTRING(common,Disabled), ELSTRING(Medical_Treatment,Anyone), ELSTRING(Medical_Treatment,Medics)], 1], false ] call CBA_fnc_addSetting; @@ -86,7 +86,7 @@ private _damageColors = [ [0.00, 0.00, 1.00, 1] ]; -private _categoryColors = [ELSTRING(medical,Category), format ["| %1 |", LELSTRING(common,subcategory_colors)]]; +private _categoryColors = [ELSTRING(medical,Interface_Category), format ["| %1 |", LELSTRING(common,subcategory_colors)]]; { [ format ["%1_%2", QGVAR(bloodLossColor), _forEachIndex], @@ -113,7 +113,7 @@ private _categoryColors = [ELSTRING(medical,Category), format ["| %1 |", LELSTRI QGVAR(showDamageEntry), "CHECKBOX", [LSTRING(showDamageEntry_DisplayName), LSTRING(showDamageEntry_Description)], - [ELSTRING(medical,Category), LSTRING(SubCategory)], + [ELSTRING(medical,Interface_Category), LSTRING(SubCategory)], false, true ] call CBA_fnc_addSetting; @@ -122,7 +122,7 @@ private _categoryColors = [ELSTRING(medical,Category), format ["| %1 |", LELSTRI QGVAR(showBloodlossEntry), "CHECKBOX", [LSTRING(ShowBloodlossEntry_DisplayName), LSTRING(ShowBloodlossEntry_Description)], - [ELSTRING(medical,Category), LSTRING(SubCategory)], + [ELSTRING(medical,Interface_Category), LSTRING(SubCategory)], true, true // isGlobal ] call CBA_fnc_addSetting; @@ -131,7 +131,7 @@ private _categoryColors = [ELSTRING(medical,Category), format ["| %1 |", LELSTRI QGVAR(bodyPartOutlineColor), "COLOR", [LSTRING(bodyPartOutlineColor_DisplayName), LSTRING(bodyPartOutlineColor_Description)], - [ELSTRING(medical,Category), LSTRING(SubCategory)], + [ELSTRING(medical,Interface_Category), LSTRING(SubCategory)], [1.00, 1.00, 1.00, 1], false ] call CBA_fnc_addSetting; @@ -140,7 +140,7 @@ private _categoryColors = [ELSTRING(medical,Category), format ["| %1 |", LELSTRI QGVAR(peekMedicalInfoReleaseDelay), "TIME", [LSTRING(PeekMedicalInfoReleaseDelay_DisplayName), LSTRING(PeekMedicalInfoReleaseDelay_Description)], - [ELSTRING(medical,Category), LSTRING(SubCategory)], + [ELSTRING(medical,Interface_Category), LSTRING(SubCategory)], [0, 5, 1], false ] call CBA_fnc_addSetting; @@ -149,7 +149,7 @@ private _categoryColors = [ELSTRING(medical,Category), format ["| %1 |", LELSTRI QGVAR(peekMedicalOnHit), "CHECKBOX", [LSTRING(PeekMedicalOnHit_DisplayName), LSTRING(PeekMedicalOnHit_Description)], - [ELSTRING(medical,Category), LSTRING(SubCategory)], + [ELSTRING(medical,Interface_Category), LSTRING(SubCategory)], false, false // isGlobal ] call CBA_fnc_addSetting; @@ -158,7 +158,7 @@ private _categoryColors = [ELSTRING(medical,Category), format ["| %1 |", LELSTRI QGVAR(peekMedicalOnHitDuration), "TIME", [LSTRING(PeekMedicalOnHitDuration_DisplayName), LSTRING(PeekMedicalOnHitDuration_Description)], - [ELSTRING(medical,Category), LSTRING(SubCategory)], + [ELSTRING(medical,Interface_Category), LSTRING(SubCategory)], [0, 5, 1], false ] call CBA_fnc_addSetting; @@ -167,7 +167,7 @@ private _categoryColors = [ELSTRING(medical,Category), format ["| %1 |", LELSTRI QGVAR(tourniquetWarning), "CHECKBOX", [LSTRING(TourniquetWarning_DisplayName), LSTRING(TourniquetWarning_Description)], - [ELSTRING(medical,Category), LSTRING(SubCategory)], + [ELSTRING(medical,Interface_Category), LSTRING(SubCategory)], false, false ] call CBA_fnc_addSetting; From 80703ce760753d3c65cc53774d262565f6b08be6 Mon Sep 17 00:00:00 2001 From: Grim <69561145+LinkIsGrim@users.noreply.github.com> Date: Thu, 19 Oct 2023 21:23:40 -0400 Subject: [PATCH 026/348] Arsenal - Fix editor attribute search (#9544) fix 3den attribute search --- addons/arsenal/functions/fnc_attributeAddItems.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/arsenal/functions/fnc_attributeAddItems.sqf b/addons/arsenal/functions/fnc_attributeAddItems.sqf index 385ffccc86..3e6a842c6a 100644 --- a/addons/arsenal/functions/fnc_attributeAddItems.sqf +++ b/addons/arsenal/functions/fnc_attributeAddItems.sqf @@ -28,7 +28,7 @@ _attributeValue params ["_attributeItems", "_attributeMode"]; TRACE_3("Populating list",_category,_filter,_attributeValue); if (_filter != "") then { _filter = _filter call EFUNC(common,escapeRegex); - _filter = ".*?" + (_filter splitString " " joinString ".*?" + ".*?/io"); + _filter = ".*?" + (_filter splitString " " joinString ".*?") + ".*?/io"; } else { _filter = ".*?/io"; }; From 642ca3c14dd1f109423ae17ef63b4445a75b2cca Mon Sep 17 00:00:00 2001 From: Grim <69561145+LinkIsGrim@users.noreply.github.com> Date: Thu, 19 Oct 2023 22:40:48 -0400 Subject: [PATCH 027/348] Medical - Make dug graves respect terrain slope (#9545) * slope dug graves * remove parentheses --- addons/medical_treatment/functions/fnc_placeInBodyBagOrGrave.sqf | 1 + 1 file changed, 1 insertion(+) diff --git a/addons/medical_treatment/functions/fnc_placeInBodyBagOrGrave.sqf b/addons/medical_treatment/functions/fnc_placeInBodyBagOrGrave.sqf index f1900108c6..1152268af3 100644 --- a/addons/medical_treatment/functions/fnc_placeInBodyBagOrGrave.sqf +++ b/addons/medical_treatment/functions/fnc_placeInBodyBagOrGrave.sqf @@ -63,6 +63,7 @@ if (_restingPlaceClass != "") then { _restingPlace = createVehicle [_restingPlaceClass, [0, 0, 0], [], 0, "NONE"]; _restingPlace setPosASL _position; _restingPlace setDir _direction; + _restingPlace setVectorUp surfaceNormal _position; }; From 4eca92c317722b7e9b2833279f8b89abc4802056 Mon Sep 17 00:00:00 2001 From: Jo David Date: Fri, 20 Oct 2023 19:22:26 +0200 Subject: [PATCH 028/348] Documentation - Update jquery, remove polyfills, don't use foundation js (#9519) * update jquery, remove polyfills, don't use foundation js * fix BOM ? * Update workflow to only check `addons` --------- --- .github/workflows/arma.yml | 2 + docs/_includes/_navigation.html | 12 +- docs/css/app.css | 2 +- docs/js/footer.dev.js | 3324 +----------- docs/js/footer.min.js | 2 +- docs/js/footer.min.js.map | 2 +- docs/src/Gruntfile.js | 7 +- docs/src/js/app.js | 11 +- .../js/vendor/foundation/foundation.abide.js | 340 -- .../vendor/foundation/foundation.accordion.js | 67 - .../js/vendor/foundation/foundation.alert.js | 43 - .../vendor/foundation/foundation.clearing.js | 556 -- .../vendor/foundation/foundation.dropdown.js | 448 -- .../vendor/foundation/foundation.equalizer.js | 77 - .../foundation/foundation.interchange.js | 354 -- .../vendor/foundation/foundation.joyride.js | 932 ---- docs/src/js/vendor/foundation/foundation.js | 703 --- .../vendor/foundation/foundation.magellan.js | 203 - .../vendor/foundation/foundation.offcanvas.js | 152 - .../js/vendor/foundation/foundation.orbit.js | 476 -- .../js/vendor/foundation/foundation.reveal.js | 471 -- .../js/vendor/foundation/foundation.slider.js | 263 - .../js/vendor/foundation/foundation.tab.js | 237 - .../vendor/foundation/foundation.tooltip.js | 307 -- .../js/vendor/foundation/foundation.topbar.js | 452 -- docs/src/js/vendor/jquery/jquery-3.7.1.min.js | 2 + .../modernizr/modernizr.custom.18747.js | 4 - docs/src/js/vendor/picturefill/picturefill.js | 1588 ------ docs/src/package.json | 4 + docs/src/pnpm-lock.yaml | 4590 ----------------- 30 files changed, 42 insertions(+), 15589 deletions(-) delete mode 100644 docs/src/js/vendor/foundation/foundation.abide.js delete mode 100644 docs/src/js/vendor/foundation/foundation.accordion.js delete mode 100644 docs/src/js/vendor/foundation/foundation.alert.js delete mode 100644 docs/src/js/vendor/foundation/foundation.clearing.js delete mode 100644 docs/src/js/vendor/foundation/foundation.dropdown.js delete mode 100644 docs/src/js/vendor/foundation/foundation.equalizer.js delete mode 100644 docs/src/js/vendor/foundation/foundation.interchange.js delete mode 100644 docs/src/js/vendor/foundation/foundation.joyride.js delete mode 100644 docs/src/js/vendor/foundation/foundation.js delete mode 100644 docs/src/js/vendor/foundation/foundation.magellan.js delete mode 100644 docs/src/js/vendor/foundation/foundation.offcanvas.js delete mode 100644 docs/src/js/vendor/foundation/foundation.orbit.js delete mode 100644 docs/src/js/vendor/foundation/foundation.reveal.js delete mode 100644 docs/src/js/vendor/foundation/foundation.slider.js delete mode 100644 docs/src/js/vendor/foundation/foundation.tab.js delete mode 100644 docs/src/js/vendor/foundation/foundation.tooltip.js delete mode 100644 docs/src/js/vendor/foundation/foundation.topbar.js create mode 100644 docs/src/js/vendor/jquery/jquery-3.7.1.min.js delete mode 100644 docs/src/js/vendor/modernizr/modernizr.custom.18747.js delete mode 100644 docs/src/js/vendor/picturefill/picturefill.js delete mode 100644 docs/src/pnpm-lock.yaml diff --git a/.github/workflows/arma.yml b/.github/workflows/arma.yml index 669873d504..2c45ec422a 100644 --- a/.github/workflows/arma.yml +++ b/.github/workflows/arma.yml @@ -22,6 +22,8 @@ jobs: run: python3 tools/check_strings.py - name: Check for BOM uses: arma-actions/bom-check@master + with: + path: 'addons' - name: Validate function headers run: python3 docs/tools/document_functions.py --debug diff --git a/docs/_includes/_navigation.html b/docs/_includes/_navigation.html index 82b0508518..e929b8d438 100644 --- a/docs/_includes/_navigation.html +++ b/docs/_includes/_navigation.html @@ -1,9 +1,17 @@