From 08fa70d81edd63c3f1343b48ee8d90a0fcc535d5 Mon Sep 17 00:00:00 2001 From: Schwaggot Date: Thu, 20 Feb 2020 20:56:08 +0100 Subject: [PATCH 01/17] added medical, food and roleplay categories to arsenal --- addons/arsenal/data/iconFood.paa | Bin 0 -> 5625 bytes addons/arsenal/data/iconMedical.paa | Bin 0 -> 5625 bytes addons/arsenal/data/iconRoleplay.paa | Bin 0 -> 5625 bytes addons/arsenal/defines.hpp | 66 +++++++++++++++++- .../arsenal/functions/fnc_fillRightPanel.sqf | 22 +++++- addons/arsenal/stringtable.xml | 12 ++++ addons/arsenal/ui/RscAttributes.hpp | 37 +++++++++- 7 files changed, 132 insertions(+), 5 deletions(-) create mode 100644 addons/arsenal/data/iconFood.paa create mode 100644 addons/arsenal/data/iconMedical.paa create mode 100644 addons/arsenal/data/iconRoleplay.paa diff --git a/addons/arsenal/data/iconFood.paa b/addons/arsenal/data/iconFood.paa new file mode 100644 index 0000000000000000000000000000000000000000..cc693850aac02b63082d0afd63155f96c91da361 GIT binary patch literal 5625 zcmeHLUr19?82_$qXkcy+n=chzXhqlNA!53DhwbAjZMKscOawI^)Lb>Us^o!{}GsMExG38(yN<=o=%A zG$O1}pn?Yq9{6hy2--QoO$Z_nXKJnZ%{Ti??{s&3iM8%# zy_`<3SG;0t-RXF=?~fgiFh8lO`1M7Gd#3KUTluT&ax~*3-|Wv&P5vwu%`Mk(L`glJ zh7n4LsCe3mBZ`L=B{V5SRaJ7##F}<^D70rP#ou5U_Vw&I-|e^SOQGkHBpU0jfG8AN zC`MzffmZNu@PQ!3%`LV5R-b=a)h*ax*#G}I{<9`XfuZ1m{PBQFDiOb7FiFK%sx;vz z+l2+y4*F^b9Q-$D7$~zC*Mu$X@vM&fd?vrHH$CEO)4N|LMjiSQ#wcC#Z__Z+W!75u zVf_JzCEp7Y1mTu^4`>zK=c_U0>!9BGA5r!r6C|T7#$d)cKVwqSQ#_ft@?os=r&VUM zeEL=lTcUC`yz(LX%veWmM}jqFW4*d@y_mTyW;uf0+EEP_czha91OZ|<1!cg)Cj zQTHDl4s}i6?3tDr*IwpjQqh^8!aS)=UK6-b&Q(5Yr?OdVJ-&93=2{>$me1F2md&K1 zoAUqU-xT?BZMFtwE6cZVLq-{^%4cjp+D*9Gn zH@^y0@LG}6ZqQ0I!)xLq>1G33SBxXAVs-o33}DA4$)8F)Lq8ghwI0g|+wds#ul>pv zU97)AV{w(gc8f3wUs1f!we h>;Lqk{Jg}_(s1BJg+GT&7B74_86SL z)PxV34mOegG}0eq2pXN(BeSUy5j{|(B0Q`c-{WT3V0Q9iib{W`Z;2$&K8%cE6G<05P48T-mDLxmOz;E{^ zeZb_jYHGA@zB;#uEJN2k;{;NPXno{Nj{2iJ=$fs{#mO1k{A~+eNXsY?7|%3xPlwyw z!Hw4%`EiJ`l_|;xn-;UIN7IS!G}(T`G-FfjV>TVTCZ0>On-4c$mLjPW0x15u$pw*L zS@Go%(eZ%zICnE?vFzj}kpV!^vg*=_eH^cDn1;x!!9;T61<=A&zt<(^=xLk=H>&^vO~xH=QN-q2aY^O9sGnCZPU5g!PVP18FF2)6kn zju+t??(sd6$}$#Tcjn9SIb?DsmgfT`FT5xEAz_nKHy?pa z?@Ey2aM1k6er~)f+k4)Bs`E*DuHghYGL^J)@ioo|&U~$ikB1EJCg}XqJ-#e`@As=- z43YS8J`gXs@fPusnYQjS79xJgQ!vABvxVxV{JikF^@AtzAD)WvdgxU?Z%4n1_$b1A z?|d%O4-Y-vX)0Kt9H88f->E?6#^-5oF`uvI^@BbLw|*4ii9s1a8Lzhr7F^#PTL`i2 zemkF{{@Z*bkc#xwC!$>MQU1(83L|GN)UOhJY=L*PUb*$7NKa!}OcUi9@@|@nFE%o5 zF}8Y{Z2CTYBh|I@qoUrT{F&Pf*VCPw4;H{z$_An~AHn<7XEz^xnMrh&x@!A-(0IKF zse-*&|3tli0Slm4f3N3$2s{2>-UfeO@phm8zZg(KMG~w5{v;lHONjS+4ARZ*6`o zzs%GPqc%N$`t?W;UzTVf$;Z}l&xR{o>QA!F`lw88;xdiJ?Wz2>&Cs1~Td90b=5URT zkjNia8ME>`TxP$&c!z96BQ>@qFAlMH7VUV)+i=af5y!GfcK}XcE+Je=2n)2i0FurYe-clx^Voy_&s{an%g3B@OVU=Vy4H0wFC6-9>rKZZY; z|4Q(w>xFHC9gnYa5-tMmz%5o|H7?w8`&s)V8 zPfO?bZ=d^VvqBSBG!_4N8b6VJp^9k4;-e+`?(XbwdE0rx?tge85q&oCCLcCMQOqlQ zzPaUlF|1L4QknMT#wyFs*4hvcCP(YiUyETe45aCIfDS0*{Y`Yh+9xYJKvnJj>JP1h z<6~n7xj#yI4xR={#auBzbbwKKQ}ImiNQ+nAwueE(@_9Jb-eG?R5|(GtyFhCNRL~-H z7-6oxb*`Gbl_e>VOzc}2KR>~3UDE=$B3)l3I>aJSlFgct11;YV2pF2Cn?A&f$?gC3 Qk<;=_2Y)RLfIn(~0q#*!Pyhe` literal 0 HcmV?d00001 diff --git a/addons/arsenal/data/iconRoleplay.paa b/addons/arsenal/data/iconRoleplay.paa new file mode 100644 index 0000000000000000000000000000000000000000..7cc679b51e30651997c49d4e809f5ae8aae8f2da GIT binary patch literal 5625 zcmeHLVMtq76uwV<%oa9ZA&-tVVg};+qk~Y^w;yfkb!Dc`NuQY4%JyT`jL{X7us=@F zpk2!XWnDUpznpW>Zv9oN6P`b$Bp}tX4)>#sMl%Q{j7Z(4olK`DyF2IJysV9e*o~|d za^SxBy?f8O=bU@)Ip--em#fZw)ODh+oDj0UzP^v+*19Id3<$BS?#+6{5)8yG_4UUo z{M`p5s1Wk0jgSGAke^^Y9#KLG0SP54d7$Khr^W*}kj{(1VJtEdOQ`f?j zf6?@GBbH=YZTx{fID**{2yJf}gY_d-F|pq5#&^Xe=b-65sQHq(pQ_3-3uCGl30(Yg z$P+rpS4f$7FZ2a}C}j5%%!7a2x_)RJ&bQN-;PPZyK0eu-s%FdFI*N=ovJ>+*pEnFQ zonXUkBb2qjadk8h9S+Rlybgpc#iV#r^RX2_w;$A%abG0sJPP4(BAA{F1!gUMCz7UT zkJ&bXSOv=EZ~1VfDK>hTpRXH8*_#fr_2I1jlks3W8cJv732ln^q+^}_gz4e>Ksc)G zF7AcrBQ(#|pM|+D4r{*V@{K@r)XVvG-R*X6Xuf5${cYp}cdD#{K%w5b*IKXagTV)GtAa-R_tUS52fdZ15rf($NA@amX6K%ufP@L+Q^0xPqN`^3quBQ4))rk z7S?%2$QAJjwzaHvSnFxCVJPQJPond;G|GqTCSl|;wp@)*WK^a{n_?qke+UoEI7KD< z1{h;rJb=5yaS$>M+j+!&<<`XkH~h}ELrf=O{k?zkp=}lUhn^Gsh0~QkG2>5ZK7Rg? z0M$dRVJPyMxDSNtg#|pOHx@`ke@(;Z_Kbb9eZjo&7mqiHPmm?NzWw{YY5m5d`A~@u zq<3fX9VRaY^Zz$hJf0!l6+NHjy5}0?x8#bSpWna9Z=3ApQM!G91*ajOh12{#J&F6w z$c{@G0%(T}_nE7o!5Hzy$F!^_v!A|=e35&8C0z1A$piU4;2;h{@IMTK9Pne6Qhf8Y z;^xy>Rz19phO#Wb`aWRjj4_QpTt>EQUoA7e=jz*QIlnAP)$`_%k||TzV^rS+`6DL} z3i&phd{5iob?rffr%gqnul;f(J-PNh|4f6gGzu)79Pr$hzgNEvrRFPtMtKqtTNLaT z?|pLY!qvu=t2l21Dqjt!ZddlafEcz@F3xv-GTl9NJA*0bhKB=&B?I5(!_GPFjMe5q z6(Fl5@q6Rvyxj`=K{H!qt8^nv&e$pHfw;onFO7+YaRq)S%W zkqlnuvKZ{evR42fgSJVOO=#1zZD_vzKn+d~cy6VSn9Z;6f1OwGUxAV(C9hk2yc_H< zM+bsc>U$i2#JdB)o80_LPyJc8hF_;bx-(|VwJI0(QL6rN_AoYxh;{HY?bF&V3}I^YglQ7J2JBSA&1lq8j!uO>d<2<`h?}j#6j8HlOZH)1%(fs literal 0 HcmV?d00001 diff --git a/addons/arsenal/defines.hpp b/addons/arsenal/defines.hpp index 35d2edc4611..5ce47208461 100644 --- a/addons/arsenal/defines.hpp +++ b/addons/arsenal/defines.hpp @@ -130,6 +130,12 @@ #define IDC_statsCurrentPage 54 #define IDC_statsButton 55 #define IDC_statsButtonClose 56 +#define IDC_iconBackgroundRoleplay 57 +#define IDC_buttonRoleplay 58 +#define IDC_iconBackgroundMedical 59 +#define IDC_buttonMedical 60 +#define IDC_iconBackgroundFood 61 +#define IDC_buttonFood 62 #define IDD_loadouts_display 1127002 #define IDC_centerBox 3 @@ -174,8 +180,8 @@ #define RIGHT_PANEL_ACC_IDCS IDC_buttonOptic, IDC_buttonItemAcc, IDC_buttonMuzzle, IDC_buttonBipod #define RIGHT_PANEL_ACC_BACKGROUND_IDCS IDC_iconBackgroundOptic, IDC_iconBackgroundItemAcc, IDC_iconBackgroundMuzzle, IDC_iconBackgroundBipod -#define RIGHT_PANEL_ITEMS_IDCS IDC_buttonMag, IDC_buttonMagALL, IDC_buttonThrow, IDC_buttonPut, IDC_buttonMisc -#define RIGHT_PANEL_ITEMS_BACKGROUND_IDCS IDC_iconBackgroundMag, IDC_iconBackgroundMagALL, IDC_iconBackgroundThrow, IDC_iconBackgroundPut, IDC_iconBackgroundMisc +#define RIGHT_PANEL_ITEMS_IDCS IDC_buttonMag, IDC_buttonMagALL, IDC_buttonThrow, IDC_buttonPut, IDC_buttonMisc, IDC_buttonRoleplay, IDC_buttonMedical, IDC_buttonFood +#define RIGHT_PANEL_ITEMS_BACKGROUND_IDCS IDC_iconBackgroundMag, IDC_iconBackgroundMagALL, IDC_iconBackgroundThrow, IDC_iconBackgroundPut, IDC_iconBackgroundMisc, IDC_iconBackgroundRoleplay, IDC_iconBackgroundMedical, IDC_iconBackgroundFood #define ARROWS_IDCS IDC_arrowMinus, IDC_arrowPlus #define GETDLC\ @@ -413,3 +419,59 @@ _buttonCurrentMag2Ctrl ctrlCommit FADE_DELAY;\ _contentPanelCtrl lnbSetPicture [[_newRow, 7], getText (configFile >> "cfgVehicles" >> ((_loadout select 5) select 0) >> "picture")];\ _contentPanelCtrl lnbSetPicture [[_newRow, 8], getText (configFile >> "cfgWeapons" >> (_loadout select 6) >> "picture")];\ _contentPanelCtrl lnbSetPicture [[_newRow, 9], getText (configFile >> "cfgGlasses" >> (_loadout select 7) >> "picture")]; + +#define MEDICAL_ITEMS\ + [\ + "ACE_atropine",\ + "ACE_fieldDressing",\ + "ACE_elasticBandage",\ + "ACE_quikclot",\ + "ACE_bloodIV",\ + "ACE_bloodIV_500",\ + "ACE_bloodIV_250",\ + "ACE_bodyBag",\ + "ACE_bodyBagObject",\ + "ACE_epinephrine",\ + "ACE_morphine",\ + "ACE_packingBandage",\ + "ACE_personalAidKit",\ + "ACE_plasmaIV",\ + "ACE_plasmaIV_500",\ + "ACE_plasmaIV_250",\ + "ACE_salineIV",\ + "ACE_salineIV_500",\ + "ACE_salineIV_250",\ + "ACE_surgicalKit",\ + "ACE_splint",\ + "ACE_tourniquet",\ + "ACE_medicalSupplyCrate",\ + "ACE_medicalSupplyCrate_advanced",\ + "KEKO_painkiller",\ + "FirstAidKit",\ + "Medikit"\ + ] + +#define FOOD_ITEMS\ + [\ + "ACE_Banana",\ + "ACE_Can_Franta",\ + "ACE_Can_RedGull",\ + "ACE_Can_Spirit",\ + "ACE_Humanitarian_Ration",\ + "ACE_MRE_BeefStew",\ + "ACE_MRE_ChickenTikkaMasala",\ + "ACE_MRE_ChickenHerbDumplings",\ + "ACE_MRE_CreamChickenSoup",\ + "ACE_MRE_CreamTomatoSoup",\ + "ACE_MRE_LambCurry",\ + "ACE_MRE_MeatballsPasta",\ + "ACE_MRE_SteakVegetables",\ + "ACE_WaterBottle",\ + "ACE_WaterBottle_Empty",\ + "ACE_WaterBottle_Half",\ + "ACE_Canteen",\ + "ACE_Canteen_Empty",\ + "ACE_Canteen_Half"\ + ] + +#define IS_ROLEPLAY_ITEM ((_x find "UMI_" == 0) || (_x find "ar_" == 0) || (_x in ["rds_car_FirstAidKit"])) diff --git a/addons/arsenal/functions/fnc_fillRightPanel.sqf b/addons/arsenal/functions/fnc_fillRightPanel.sqf index e683c82d011..606fa30b0bf 100644 --- a/addons/arsenal/functions/fnc_fillRightPanel.sqf +++ b/addons/arsenal/functions/fnc_fillRightPanel.sqf @@ -272,9 +272,29 @@ switch (_ctrlIDC) do { } foreach (GVAR(virtualItems) select 21); }; - case IDC_buttonMisc : { + case IDC_buttonRoleplay : { { ["CfgWeapons", _x, false] call _fnc_fill_right_Container; + } foreach ((GVAR(virtualItems) select 17) select {IS_ROLEPLAY_ITEM}); + }; + + case IDC_buttonFood : { + { + ["CfgWeapons", _x, false] call _fnc_fill_right_Container; + } foreach ((GVAR(virtualItems) select 17) select {_x in FOOD_ITEMS}); + }; + + case IDC_buttonMedical : { + { + ["CfgWeapons", _x, false] call _fnc_fill_right_Container; + } foreach ((GVAR(virtualItems) select 17) select {_x in MEDICAL_ITEMS}); + }; + + case IDC_buttonMisc : { + { + if (!(_x in MEDICAL_ITEMS) && !(_x in FOOD_ITEMS) && !IS_ROLEPLAY_ITEM) then { + ["CfgWeapons", _x, false] call _fnc_fill_right_Container; + }; } foreach (GVAR(virtualItems) select 17); { ["CfgWeapons", _x, false, true] call _fnc_fill_right_Container; diff --git a/addons/arsenal/stringtable.xml b/addons/arsenal/stringtable.xml index 00fed0e0b68..336e65a89c6 100644 --- a/addons/arsenal/stringtable.xml +++ b/addons/arsenal/stringtable.xml @@ -1187,5 +1187,17 @@ 有效時間 Time to live + + Medical Items + Erste Hilfe Items + + + Food Items + Essen Items + + + Roleplay Items + Rollenspiel Items + diff --git a/addons/arsenal/ui/RscAttributes.hpp b/addons/arsenal/ui/RscAttributes.hpp index 2794e42119f..100d71c8b40 100644 --- a/addons/arsenal/ui/RscAttributes.hpp +++ b/addons/arsenal/ui/RscAttributes.hpp @@ -893,16 +893,49 @@ class GVAR(display) { tooltip="$STR_A3_RscDisplayArsenal_tab_CargoPut"; y = QUOTE(safezoneY + 78 * GRID_H); }; + + class iconBackgroundMedical: iconBackgroundOptic { + idc = IDC_iconBackgroundMedical; + y = QUOTE(safezoneY + 88 * GRID_H); + }; + class buttonMedical: buttonOptic { + idc = IDC_buttonMedical; + text=QPATHTOF(data\iconMedical.paa); + tooltip=CSTRING(buttonMedicalTooltip); + y = QUOTE(safezoneY + 88 * GRID_H); + }; + class iconBackgroundFood: iconBackgroundOptic { + idc = IDC_iconBackgroundFood; + y = QUOTE(safezoneY + 98 * GRID_H); + }; + class buttonFood: buttonOptic { + idc = IDC_buttonFood; + text=QPATHTOF(data\iconFood.paa); + tooltip=CSTRING(buttonFoodTooltip); + y = QUOTE(safezoneY + 98 * GRID_H); + }; + class iconBackgroundRoleplay: iconBackgroundOptic { + idc = IDC_iconBackgroundRoleplay; + y = QUOTE(safezoneY + 108 * GRID_H); + }; + class buttonRoleplay: buttonOptic { + idc = IDC_buttonRoleplay; + text=QPATHTOF(data\iconRoleplay.paa); + tooltip=CSTRING(buttonRoleplayTooltip); + y = QUOTE(safezoneY + 108 * GRID_H); + }; class iconBackgroundMisc: iconBackgroundOptic { idc = IDC_iconBackgroundMisc; - y = QUOTE(safezoneY + 88 * GRID_H); + y = QUOTE(safezoneY + 118 * GRID_H); }; class buttonMisc: buttonOptic { idc = IDC_buttonMisc; text="\A3\Ui_f\data\GUI\Rsc\RscDisplayArsenal\CargoMisc_ca.paa"; tooltip="$STR_A3_RscDisplayArsenal_tab_CargoMisc"; - y = QUOTE(safezoneY + 88 * GRID_H); + y = QUOTE(safezoneY + 118 * GRID_H); }; + + class buttonRemoveAll: ctrlButtonPicture { idc = IDC_buttonRemoveAll; text = QPATHTOF(data\iconClearContainer.paa); From fa1a025d1e9f5a7bcc259a5dfb099fe1a08ea0ce Mon Sep 17 00:00:00 2001 From: Schwaggot Date: Sat, 22 Feb 2020 20:23:20 +0100 Subject: [PATCH 02/17] decreased wound stitch time --- addons/medical_engine/script_macros_medical.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/medical_engine/script_macros_medical.hpp b/addons/medical_engine/script_macros_medical.hpp index fcc6e2df36a..b195aeff4ba 100644 --- a/addons/medical_engine/script_macros_medical.hpp +++ b/addons/medical_engine/script_macros_medical.hpp @@ -114,7 +114,7 @@ #define DEFAULT_BANDAGE_REOPENING_MAX_DELAY 200 // Time it takes to stitch one wound -#define WOUND_STITCH_TIME 5 +#define WOUND_STITCH_TIME 1 #define DEFAULT_TOURNIQUET_VALUES [0,0,0,0,0,0] From f7af7f0f064a8a9562a221bfa87edddb28656c20 Mon Sep 17 00:00:00 2001 From: shukari Date: Thu, 12 Mar 2020 13:25:52 +0100 Subject: [PATCH 03/17] added custom rightPanelButtons --- AUTHORS.txt | 2 +- addons/arsenal/XEH_PREP.hpp | 1 + addons/arsenal/data/iconCustom.paa | Bin 0 -> 5625 bytes addons/arsenal/data/iconFood.paa | Bin 5625 -> 0 bytes addons/arsenal/data/iconMedical.paa | Bin 5625 -> 0 bytes addons/arsenal/data/iconRoleplay.paa | Bin 5625 -> 0 bytes addons/arsenal/defines.hpp | 116 ++++++++---------- .../functions/fnc_addRightPanelButton.sqf | 51 ++++++++ .../arsenal/functions/fnc_fillRightPanel.sqf | 51 +++++--- addons/arsenal/ui/RscAttributes.hpp | 49 +++----- 10 files changed, 150 insertions(+), 120 deletions(-) create mode 100644 addons/arsenal/data/iconCustom.paa delete mode 100644 addons/arsenal/data/iconFood.paa delete mode 100644 addons/arsenal/data/iconMedical.paa delete mode 100644 addons/arsenal/data/iconRoleplay.paa create mode 100644 addons/arsenal/functions/fnc_addRightPanelButton.sqf diff --git a/AUTHORS.txt b/AUTHORS.txt index 020662aea05..bf6a06fdfb3 100644 --- a/AUTHORS.txt +++ b/AUTHORS.txt @@ -42,7 +42,6 @@ Andrea "AtixNeon" Verano Anthariel Arcanum417 Anton -Arcanum417 Arkhir Asgar Serran BaerMitUmlaut @@ -136,6 +135,7 @@ Robert Boklahánics ruPaladin Rutger "RedBery" Meijering Schwaggot +shukari simon84 Skengman2 Sniperwolf572 diff --git a/addons/arsenal/XEH_PREP.hpp b/addons/arsenal/XEH_PREP.hpp index 656fc5b1d5c..5b6dbd62845 100644 --- a/addons/arsenal/XEH_PREP.hpp +++ b/addons/arsenal/XEH_PREP.hpp @@ -1,5 +1,6 @@ PREP(addDefaultLoadout); PREP(addListBoxItem); +PREP(addRightPanelButton); PREP(addStat); PREP(addVirtualItems); PREP(attributeAddCompatible); diff --git a/addons/arsenal/data/iconCustom.paa b/addons/arsenal/data/iconCustom.paa new file mode 100644 index 0000000000000000000000000000000000000000..5f8459b0916d12572a8bc2fffcebb74734417113 GIT binary patch literal 5625 zcmZSm@9ypx;_M#g$il$D@csLDK`=kU(HF%34+J2-yQ7aAh|dVbAbzl$o4*5)-2lYx z0t^g&A`A>uMHv|G05NI6fx&@+0cgS~7!3hBhCuGiZMnC%wUi&e#Ex8+K2Oa2Y=pC}Og-w(>lpbUQhKNE<)$N-|i{01Oxw{x59?e@Pn z!Ql}Q5CD=J%D~{!wtVYtnbL6ozXth60PJ5NgX#Z!u&rIV z8~lGRgZTjt4zzZ^$>wMIf6S7=&3Hye*3huu_J0qwK&o{IhX8mpo>t*E>i>})|I|+3 z0-&KlNY4ahG%VTv29M6nlYz9>L|N6$fL+%Oe{VqeA@I=&n0k<25KsVOP%)xp^DWPM zTjFDodR9@Oey4uf+Z$?cf%pL-wAZg~V+OPzk}X+9LqnZh+GT;GPms}t5JYbq=3Wj4 z4$!b@KqPq3MjGr*;Gj)d;x^vf8+pOnLPLP=j@*_E9Ml2xfzqL2i9pGX5MzPTp)9}> Y6&RjkdTeiw<>edz8RG~9z(4^40Jb8lH2?qr literal 0 HcmV?d00001 diff --git a/addons/arsenal/data/iconFood.paa b/addons/arsenal/data/iconFood.paa deleted file mode 100644 index cc693850aac02b63082d0afd63155f96c91da361..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5625 zcmeHLUr19?82_$qXkcy+n=chzXhqlNA!53DhwbAjZMKscOawI^)Lb>Us^o!{}GsMExG38(yN<=o=%A zG$O1}pn?Yq9{6hy2--QoO$Z_nXKJnZ%{Ti??{s&3iM8%# zy_`<3SG;0t-RXF=?~fgiFh8lO`1M7Gd#3KUTluT&ax~*3-|Wv&P5vwu%`Mk(L`glJ zh7n4LsCe3mBZ`L=B{V5SRaJ7##F}<^D70rP#ou5U_Vw&I-|e^SOQGkHBpU0jfG8AN zC`MzffmZNu@PQ!3%`LV5R-b=a)h*ax*#G}I{<9`XfuZ1m{PBQFDiOb7FiFK%sx;vz z+l2+y4*F^b9Q-$D7$~zC*Mu$X@vM&fd?vrHH$CEO)4N|LMjiSQ#wcC#Z__Z+W!75u zVf_JzCEp7Y1mTu^4`>zK=c_U0>!9BGA5r!r6C|T7#$d)cKVwqSQ#_ft@?os=r&VUM zeEL=lTcUC`yz(LX%veWmM}jqFW4*d@y_mTyW;uf0+EEP_czha91OZ|<1!cg)Cj zQTHDl4s}i6?3tDr*IwpjQqh^8!aS)=UK6-b&Q(5Yr?OdVJ-&93=2{>$me1F2md&K1 zoAUqU-xT?BZMFtwE6cZVLq-{^%4cjp+D*9Gn zH@^y0@LG}6ZqQ0I!)xLq>1G33SBxXAVs-o33}DA4$)8F)Lq8ghwI0g|+wds#ul>pv zU97)AV{w(gc8f3wUs1f!we h>;Lqk{Jg}_(s1BJg+GT&7B74_86SL z)PxV34mOegG}0eq2pXN(BeSUy5j{|(B0Q`c-{WT3V0Q9iib{W`Z;2$&K8%cE6G<05P48T-mDLxmOz;E{^ zeZb_jYHGA@zB;#uEJN2k;{;NPXno{Nj{2iJ=$fs{#mO1k{A~+eNXsY?7|%3xPlwyw z!Hw4%`EiJ`l_|;xn-;UIN7IS!G}(T`G-FfjV>TVTCZ0>On-4c$mLjPW0x15u$pw*L zS@Go%(eZ%zICnE?vFzj}kpV!^vg*=_eH^cDn1;x!!9;T61<=A&zt<(^=xLk=H>&^vO~xH=QN-q2aY^O9sGnCZPU5g!PVP18FF2)6kn zju+t??(sd6$}$#Tcjn9SIb?DsmgfT`FT5xEAz_nKHy?pa z?@Ey2aM1k6er~)f+k4)Bs`E*DuHghYGL^J)@ioo|&U~$ikB1EJCg}XqJ-#e`@As=- z43YS8J`gXs@fPusnYQjS79xJgQ!vABvxVxV{JikF^@AtzAD)WvdgxU?Z%4n1_$b1A z?|d%O4-Y-vX)0Kt9H88f->E?6#^-5oF`uvI^@BbLw|*4ii9s1a8Lzhr7F^#PTL`i2 zemkF{{@Z*bkc#xwC!$>MQU1(83L|GN)UOhJY=L*PUb*$7NKa!}OcUi9@@|@nFE%o5 zF}8Y{Z2CTYBh|I@qoUrT{F&Pf*VCPw4;H{z$_An~AHn<7XEz^xnMrh&x@!A-(0IKF zse-*&|3tli0Slm4f3N3$2s{2>-UfeO@phm8zZg(KMG~w5{v;lHONjS+4ARZ*6`o zzs%GPqc%N$`t?W;UzTVf$;Z}l&xR{o>QA!F`lw88;xdiJ?Wz2>&Cs1~Td90b=5URT zkjNia8ME>`TxP$&c!z96BQ>@qFAlMH7VUV)+i=af5y!GfcK}XcE+Je=2n)2i0FurYe-clx^Voy_&s{an%g3B@OVU=Vy4H0wFC6-9>rKZZY; z|4Q(w>xFHC9gnYa5-tMmz%5o|H7?w8`&s)V8 zPfO?bZ=d^VvqBSBG!_4N8b6VJp^9k4;-e+`?(XbwdE0rx?tge85q&oCCLcCMQOqlQ zzPaUlF|1L4QknMT#wyFs*4hvcCP(YiUyETe45aCIfDS0*{Y`Yh+9xYJKvnJj>JP1h z<6~n7xj#yI4xR={#auBzbbwKKQ}ImiNQ+nAwueE(@_9Jb-eG?R5|(GtyFhCNRL~-H z7-6oxb*`Gbl_e>VOzc}2KR>~3UDE=$B3)l3I>aJSlFgct11;YV2pF2Cn?A&f$?gC3 Qk<;=_2Y)RLfIn(~0q#*!Pyhe` diff --git a/addons/arsenal/data/iconRoleplay.paa b/addons/arsenal/data/iconRoleplay.paa deleted file mode 100644 index 7cc679b51e30651997c49d4e809f5ae8aae8f2da..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5625 zcmeHLVMtq76uwV<%oa9ZA&-tVVg};+qk~Y^w;yfkb!Dc`NuQY4%JyT`jL{X7us=@F zpk2!XWnDUpznpW>Zv9oN6P`b$Bp}tX4)>#sMl%Q{j7Z(4olK`DyF2IJysV9e*o~|d za^SxBy?f8O=bU@)Ip--em#fZw)ODh+oDj0UzP^v+*19Id3<$BS?#+6{5)8yG_4UUo z{M`p5s1Wk0jgSGAke^^Y9#KLG0SP54d7$Khr^W*}kj{(1VJtEdOQ`f?j zf6?@GBbH=YZTx{fID**{2yJf}gY_d-F|pq5#&^Xe=b-65sQHq(pQ_3-3uCGl30(Yg z$P+rpS4f$7FZ2a}C}j5%%!7a2x_)RJ&bQN-;PPZyK0eu-s%FdFI*N=ovJ>+*pEnFQ zonXUkBb2qjadk8h9S+Rlybgpc#iV#r^RX2_w;$A%abG0sJPP4(BAA{F1!gUMCz7UT zkJ&bXSOv=EZ~1VfDK>hTpRXH8*_#fr_2I1jlks3W8cJv732ln^q+^}_gz4e>Ksc)G zF7AcrBQ(#|pM|+D4r{*V@{K@r)XVvG-R*X6Xuf5${cYp}cdD#{K%w5b*IKXagTV)GtAa-R_tUS52fdZ15rf($NA@amX6K%ufP@L+Q^0xPqN`^3quBQ4))rk z7S?%2$QAJjwzaHvSnFxCVJPQJPond;G|GqTCSl|;wp@)*WK^a{n_?qke+UoEI7KD< z1{h;rJb=5yaS$>M+j+!&<<`XkH~h}ELrf=O{k?zkp=}lUhn^Gsh0~QkG2>5ZK7Rg? z0M$dRVJPyMxDSNtg#|pOHx@`ke@(;Z_Kbb9eZjo&7mqiHPmm?NzWw{YY5m5d`A~@u zq<3fX9VRaY^Zz$hJf0!l6+NHjy5}0?x8#bSpWna9Z=3ApQM!G91*ajOh12{#J&F6w z$c{@G0%(T}_nE7o!5Hzy$F!^_v!A|=e35&8C0z1A$piU4;2;h{@IMTK9Pne6Qhf8Y z;^xy>Rz19phO#Wb`aWRjj4_QpTt>EQUoA7e=jz*QIlnAP)$`_%k||TzV^rS+`6DL} z3i&phd{5iob?rffr%gqnul;f(J-PNh|4f6gGzu)79Pr$hzgNEvrRFPtMtKqtTNLaT z?|pLY!qvu=t2l21Dqjt!ZddlafEcz@F3xv-GTl9NJA*0bhKB=&B?I5(!_GPFjMe5q z6(Fl5@q6Rvyxj`=K{H!qt8^nv&e$pHfw;onFO7+YaRq)S%W zkqlnuvKZ{evR42fgSJVOO=#1zZD_vzKn+d~cy6VSn9Z;6f1OwGUxAV(C9hk2yc_H< zM+bsc>U$i2#JdB)o80_LPyJc8hF_;bx-(|VwJI0(QL6rN_AoYxh;{HY?bF&V3}I^YglQ7J2JBSA&1lq8j!uO>d<2<`h?}j#6j8HlOZH)1%(fs diff --git a/addons/arsenal/defines.hpp b/addons/arsenal/defines.hpp index 5ce47208461..b174f13c791 100644 --- a/addons/arsenal/defines.hpp +++ b/addons/arsenal/defines.hpp @@ -130,12 +130,26 @@ #define IDC_statsCurrentPage 54 #define IDC_statsButton 55 #define IDC_statsButtonClose 56 -#define IDC_iconBackgroundRoleplay 57 -#define IDC_buttonRoleplay 58 -#define IDC_iconBackgroundMedical 59 -#define IDC_buttonMedical 60 -#define IDC_iconBackgroundFood 61 -#define IDC_buttonFood 62 +#define IDC_iconBackgroundCustom1 57 +#define IDC_buttonCustom1 58 +#define IDC_iconBackgroundCustom2 59 +#define IDC_buttonCustom2 60 +#define IDC_iconBackgroundCustom3 61 +#define IDC_buttonCustom3 62 +#define IDC_iconBackgroundCustom4 63 +#define IDC_buttonCustom4 64 +#define IDC_iconBackgroundCustom5 65 +#define IDC_buttonCustom5 66 +#define IDC_iconBackgroundCustom6 67 +#define IDC_buttonCustom6 68 +#define IDC_iconBackgroundCustom7 69 +#define IDC_buttonCustom7 70 +#define IDC_iconBackgroundCustom8 71 +#define IDC_buttonCustom8 72 +#define IDC_iconBackgroundCustom9 73 +#define IDC_buttonCustom9 74 +#define IDC_iconBackgroundCustom10 75 +#define IDC_buttonCustom10 76 #define IDD_loadouts_display 1127002 #define IDC_centerBox 3 @@ -178,10 +192,11 @@ #define FADE_DELAY 0.15 #define CAM_DIS_MAX 5 +#define RIGHT_PANEL_CUSTOM_BUTTONS IDC_buttonCustom1, IDC_buttonCustom2, IDC_buttonCustom3, IDC_buttonCustom4, IDC_buttonCustom5, IDC_buttonCustom6, IDC_buttonCustom7, IDC_buttonCustom8, IDC_buttonCustom9, IDC_buttonCustom10 #define RIGHT_PANEL_ACC_IDCS IDC_buttonOptic, IDC_buttonItemAcc, IDC_buttonMuzzle, IDC_buttonBipod #define RIGHT_PANEL_ACC_BACKGROUND_IDCS IDC_iconBackgroundOptic, IDC_iconBackgroundItemAcc, IDC_iconBackgroundMuzzle, IDC_iconBackgroundBipod -#define RIGHT_PANEL_ITEMS_IDCS IDC_buttonMag, IDC_buttonMagALL, IDC_buttonThrow, IDC_buttonPut, IDC_buttonMisc, IDC_buttonRoleplay, IDC_buttonMedical, IDC_buttonFood -#define RIGHT_PANEL_ITEMS_BACKGROUND_IDCS IDC_iconBackgroundMag, IDC_iconBackgroundMagALL, IDC_iconBackgroundThrow, IDC_iconBackgroundPut, IDC_iconBackgroundMisc, IDC_iconBackgroundRoleplay, IDC_iconBackgroundMedical, IDC_iconBackgroundFood +#define RIGHT_PANEL_ITEMS_IDCS IDC_buttonMag, IDC_buttonMagALL, IDC_buttonThrow, IDC_buttonPut, IDC_buttonMisc, RIGHT_PANEL_CUSTOM_BUTTONS +#define RIGHT_PANEL_ITEMS_BACKGROUND_IDCS IDC_iconBackgroundMag, IDC_iconBackgroundMagALL, IDC_iconBackgroundThrow, IDC_iconBackgroundPut, IDC_iconBackgroundMisc, IDC_iconBackgroundCustom1, IDC_iconBackgroundCustom2, IDC_iconBackgroundCustom3, IDC_iconBackgroundCustom4, IDC_iconBackgroundCustom5, IDC_iconBackgroundCustom6, IDC_iconBackgroundCustom7, IDC_iconBackgroundCustom8, IDC_iconBackgroundCustom9, IDC_iconBackgroundCustom10 #define ARROWS_IDCS IDC_arrowMinus, IDC_arrowPlus #define GETDLC\ @@ -310,7 +325,24 @@ _buttonCurrentMag2Ctrl ctrlCommit FADE_DELAY;\ } foreach [\ IDC_blockRightFrame,\ IDC_blockRighttBackground\ -]; +];\ +{\ + private _idc = _x;\ + _x = _display displayCtrl _idc;\ + if (!isNil QGVAR(customRightPanelButtons) && {!isNil {GVAR(customRightPanelButtons) param [_forEachIndex]}}) then {\ + (GVAR(customRightPanelButtons) select _forEachIndex) params ["", "_picture", "_tooltip"];\ + _x ctrlSetText _picture;\ + _x ctrlSetTooltip _tooltip;\ + } else {\ + _x ctrlSetFade 1;\ + _x ctrlShow false;\ + _x ctrlCommit 0;\ + _x = _display displayCtrl (_idc - 1);\ + _x ctrlSetFade 1;\ + _x ctrlShow false;\ + _x ctrlCommit 0;\ + };\ +} foreach [RIGHT_PANEL_CUSTOM_BUTTONS]; #define TOGGLE_RIGHT_PANEL_HIDE\ {\ @@ -420,58 +452,14 @@ _buttonCurrentMag2Ctrl ctrlCommit FADE_DELAY;\ _contentPanelCtrl lnbSetPicture [[_newRow, 8], getText (configFile >> "cfgWeapons" >> (_loadout select 6) >> "picture")];\ _contentPanelCtrl lnbSetPicture [[_newRow, 9], getText (configFile >> "cfgGlasses" >> (_loadout select 7) >> "picture")]; -#define MEDICAL_ITEMS\ - [\ - "ACE_atropine",\ - "ACE_fieldDressing",\ - "ACE_elasticBandage",\ - "ACE_quikclot",\ - "ACE_bloodIV",\ - "ACE_bloodIV_500",\ - "ACE_bloodIV_250",\ - "ACE_bodyBag",\ - "ACE_bodyBagObject",\ - "ACE_epinephrine",\ - "ACE_morphine",\ - "ACE_packingBandage",\ - "ACE_personalAidKit",\ - "ACE_plasmaIV",\ - "ACE_plasmaIV_500",\ - "ACE_plasmaIV_250",\ - "ACE_salineIV",\ - "ACE_salineIV_500",\ - "ACE_salineIV_250",\ - "ACE_surgicalKit",\ - "ACE_splint",\ - "ACE_tourniquet",\ - "ACE_medicalSupplyCrate",\ - "ACE_medicalSupplyCrate_advanced",\ - "KEKO_painkiller",\ - "FirstAidKit",\ - "Medikit"\ - ] - -#define FOOD_ITEMS\ - [\ - "ACE_Banana",\ - "ACE_Can_Franta",\ - "ACE_Can_RedGull",\ - "ACE_Can_Spirit",\ - "ACE_Humanitarian_Ration",\ - "ACE_MRE_BeefStew",\ - "ACE_MRE_ChickenTikkaMasala",\ - "ACE_MRE_ChickenHerbDumplings",\ - "ACE_MRE_CreamChickenSoup",\ - "ACE_MRE_CreamTomatoSoup",\ - "ACE_MRE_LambCurry",\ - "ACE_MRE_MeatballsPasta",\ - "ACE_MRE_SteakVegetables",\ - "ACE_WaterBottle",\ - "ACE_WaterBottle_Empty",\ - "ACE_WaterBottle_Half",\ - "ACE_Canteen",\ - "ACE_Canteen_Empty",\ - "ACE_Canteen_Half"\ - ] - -#define IS_ROLEPLAY_ITEM ((_x find "UMI_" == 0) || (_x find "ar_" == 0) || (_x in ["rds_car_FirstAidKit"])) +#define ADD_CUSTOM_BUTTON(NUMBER)\ + class iconBackgroundCustom##NUMBER: iconBackgroundOptic {\ + idc = __EVAL((IDC_iconBackgroundCustom1 - 2) + (NUMBER * 2));\ + y = QUOTE(safezoneY + (88 + (10 * NUMBER)) * GRID_H);\ + };\ + class buttonCustom##NUMBER: buttonOptic {\ + idc = __EVAL((IDC_buttonCustom1 - 2) + (NUMBER * 2));\ + text = QPATHTOF(data\iconCustom.paa);\ + tooltip = "";\ + y = QUOTE(safezoneY + (88 + (10 * NUMBER)) * GRID_H);\ + } diff --git a/addons/arsenal/functions/fnc_addRightPanelButton.sqf b/addons/arsenal/functions/fnc_addRightPanelButton.sqf new file mode 100644 index 00000000000..0f7e74ee4fb --- /dev/null +++ b/addons/arsenal/functions/fnc_addRightPanelButton.sqf @@ -0,0 +1,51 @@ +#include "script_component.hpp" +#include "..\defines.hpp" +/* + * Author: shukari, Schwaggot + * Adds a right panel button for uniforms, vests and backpacks with + * defined misc items. + * + * Arguments: + * 0: items only misc items + * 1: tooltip (Optional) + * 2: picture path (Optional) + * 3: override a spezific button (0-9) (Optional) + * + * Return Value: + * if successful added + * + * Example: + * [["ACE_bloodIV_500", "ACE_Banana"], "MedicalStuff", "\z\ace\addons\arsenal\data\iconCustom.paa", 5] call ace_arsenal_fnc_addRightPanelButton + * + * Public: Yes +*/ + +params [["_items", [], [[]]], ["_tooltip", "", [""]], ["_picture", QPATHTOF(data\iconCustom.paa), [""]], ["_override", -1, [0]]]; + +if (isNil QGVAR(customRightPanelButtons)) then { + GVAR(customRightPanelButtons) = []; +}; + +private _position = (GVAR(customRightPanelButtons) findIf {isNil "_x"}) min (count GVAR(customRightPanelButtons)); + +if (_override != -1 && {_override >= 0} && {_override <= 9}) then { + _position = _override; +}; + +private _return = if (_position >= 0 && _position <= 9) then { + private _configCfgWeapons = configFile >> "CfgWeapons"; + _items = _items select { + private _configItemInfo = _configCfgWeapons >> _x >> "ItemInfo"; + + isClass (_configItemInfo) && ((getNumber (_configItemInfo >> "type")) in [TYPE_MUZZLE, TYPE_OPTICS, TYPE_FLASHLIGHT, TYPE_BIPOD] && + {(_x isKindOf ["CBA_MiscItem", (_configCfgWeapons)])}) || {(getNumber (_configItemInfo >> "type")) in [TYPE_FIRST_AID_KIT, TYPE_MEDIKIT, TYPE_TOOLKIT]} || + {(getText (_configCfgWeapons >> _x >> "simulation")) == "ItemMineDetector"} + }; + + GVAR(customRightPanelButtons) set [_position, [_items apply {toLower _x}, _picture, _tooltip]]; + true +} else { + false +}; + +_return diff --git a/addons/arsenal/functions/fnc_fillRightPanel.sqf b/addons/arsenal/functions/fnc_fillRightPanel.sqf index 606fa30b0bf..abd9b4ab05f 100644 --- a/addons/arsenal/functions/fnc_fillRightPanel.sqf +++ b/addons/arsenal/functions/fnc_fillRightPanel.sqf @@ -272,30 +272,41 @@ switch (_ctrlIDC) do { } foreach (GVAR(virtualItems) select 21); }; - case IDC_buttonRoleplay : { - { - ["CfgWeapons", _x, false] call _fnc_fill_right_Container; - } foreach ((GVAR(virtualItems) select 17) select {IS_ROLEPLAY_ITEM}); - }; - - case IDC_buttonFood : { - { - ["CfgWeapons", _x, false] call _fnc_fill_right_Container; - } foreach ((GVAR(virtualItems) select 17) select {_x in FOOD_ITEMS}); - }; - - case IDC_buttonMedical : { - { - ["CfgWeapons", _x, false] call _fnc_fill_right_Container; - } foreach ((GVAR(virtualItems) select 17) select {_x in MEDICAL_ITEMS}); + case IDC_buttonCustom1; + case IDC_buttonCustom2; + case IDC_buttonCustom3; + case IDC_buttonCustom4; + case IDC_buttonCustom5; + case IDC_buttonCustom6; + case IDC_buttonCustom7; + case IDC_buttonCustom8; + case IDC_buttonCustom9; + case IDC_buttonCustom10 : { + private _data = GVAR(customRightPanelButtons) param [[RIGHT_PANEL_CUSTOM_BUTTONS] findIf {_x == _ctrlIDC}]; + + if (!isNil "_data") then { + private _items = _data select 0; + { + ["CfgWeapons", _x, true] call _fnc_fill_right_Container; + } foreach ((GVAR(virtualItems) select 17) select {(toLower _x) in _items}); + }; }; case IDC_buttonMisc : { - { - if (!(_x in MEDICAL_ITEMS) && !(_x in FOOD_ITEMS) && !IS_ROLEPLAY_ITEM) then { + // hide custom button items + if (!isNil QGVAR(customRightPanelButtons)) then { + private _blockItems = []; + { + if (!isNil "_x") then { + _blockItems append (_x select 0); + }; + } forEach GVAR(customRightPanelButtons); + + { ["CfgWeapons", _x, false] call _fnc_fill_right_Container; - }; - } foreach (GVAR(virtualItems) select 17); + } foreach ((GVAR(virtualItems) select 17) select {!((toLower _x) in _blockItems)}); + }; + { ["CfgWeapons", _x, false, true] call _fnc_fill_right_Container; } foreach (GVAR(virtualItems) select 18); diff --git a/addons/arsenal/ui/RscAttributes.hpp b/addons/arsenal/ui/RscAttributes.hpp index 100d71c8b40..bc03d099a1b 100644 --- a/addons/arsenal/ui/RscAttributes.hpp +++ b/addons/arsenal/ui/RscAttributes.hpp @@ -893,49 +893,28 @@ class GVAR(display) { tooltip="$STR_A3_RscDisplayArsenal_tab_CargoPut"; y = QUOTE(safezoneY + 78 * GRID_H); }; - - class iconBackgroundMedical: iconBackgroundOptic { - idc = IDC_iconBackgroundMedical; - y = QUOTE(safezoneY + 88 * GRID_H); - }; - class buttonMedical: buttonOptic { - idc = IDC_buttonMedical; - text=QPATHTOF(data\iconMedical.paa); - tooltip=CSTRING(buttonMedicalTooltip); - y = QUOTE(safezoneY + 88 * GRID_H); - }; - class iconBackgroundFood: iconBackgroundOptic { - idc = IDC_iconBackgroundFood; - y = QUOTE(safezoneY + 98 * GRID_H); - }; - class buttonFood: buttonOptic { - idc = IDC_buttonFood; - text=QPATHTOF(data\iconFood.paa); - tooltip=CSTRING(buttonFoodTooltip); - y = QUOTE(safezoneY + 98 * GRID_H); - }; - class iconBackgroundRoleplay: iconBackgroundOptic { - idc = IDC_iconBackgroundRoleplay; - y = QUOTE(safezoneY + 108 * GRID_H); - }; - class buttonRoleplay: buttonOptic { - idc = IDC_buttonRoleplay; - text=QPATHTOF(data\iconRoleplay.paa); - tooltip=CSTRING(buttonRoleplayTooltip); - y = QUOTE(safezoneY + 108 * GRID_H); - }; class iconBackgroundMisc: iconBackgroundOptic { idc = IDC_iconBackgroundMisc; - y = QUOTE(safezoneY + 118 * GRID_H); + y = QUOTE(safezoneY + 88 * GRID_H); }; class buttonMisc: buttonOptic { idc = IDC_buttonMisc; text="\A3\Ui_f\data\GUI\Rsc\RscDisplayArsenal\CargoMisc_ca.paa"; tooltip="$STR_A3_RscDisplayArsenal_tab_CargoMisc"; - y = QUOTE(safezoneY + 118 * GRID_H); + y = QUOTE(safezoneY + 88 * GRID_H); }; - - + + ADD_CUSTOM_BUTTON(1); + ADD_CUSTOM_BUTTON(2); + ADD_CUSTOM_BUTTON(3); + ADD_CUSTOM_BUTTON(4); + ADD_CUSTOM_BUTTON(5); + ADD_CUSTOM_BUTTON(6); + ADD_CUSTOM_BUTTON(7); + ADD_CUSTOM_BUTTON(8); + ADD_CUSTOM_BUTTON(9); + ADD_CUSTOM_BUTTON(10); + class buttonRemoveAll: ctrlButtonPicture { idc = IDC_buttonRemoveAll; text = QPATHTOF(data\iconClearContainer.paa); From 4c9112a32f507d00e02fc7dc14d8e040e90b14e8 Mon Sep 17 00:00:00 2001 From: shukari Date: Thu, 12 Mar 2020 13:29:06 +0100 Subject: [PATCH 04/17] stuff that doesnt belong here --- addons/arsenal/stringtable.xml | 12 ------------ addons/medical_engine/script_macros_medical.hpp | 2 +- 2 files changed, 1 insertion(+), 13 deletions(-) diff --git a/addons/arsenal/stringtable.xml b/addons/arsenal/stringtable.xml index b04e8b901bd..6a9ae11417a 100644 --- a/addons/arsenal/stringtable.xml +++ b/addons/arsenal/stringtable.xml @@ -1189,17 +1189,5 @@ 有效時間 Time to live - - Medical Items - Erste Hilfe Items - - - Food Items - Essen Items - - - Roleplay Items - Rollenspiel Items - diff --git a/addons/medical_engine/script_macros_medical.hpp b/addons/medical_engine/script_macros_medical.hpp index b195aeff4ba..fcc6e2df36a 100644 --- a/addons/medical_engine/script_macros_medical.hpp +++ b/addons/medical_engine/script_macros_medical.hpp @@ -114,7 +114,7 @@ #define DEFAULT_BANDAGE_REOPENING_MAX_DELAY 200 // Time it takes to stitch one wound -#define WOUND_STITCH_TIME 1 +#define WOUND_STITCH_TIME 5 #define DEFAULT_TOURNIQUET_VALUES [0,0,0,0,0,0] From febefe627415f5964089f4333a4ece40e3404ce7 Mon Sep 17 00:00:00 2001 From: shukari Date: Thu, 12 Mar 2020 14:16:46 +0100 Subject: [PATCH 05/17] fix --- addons/arsenal/functions/fnc_addRightPanelButton.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/arsenal/functions/fnc_addRightPanelButton.sqf b/addons/arsenal/functions/fnc_addRightPanelButton.sqf index 0f7e74ee4fb..96181399f0f 100644 --- a/addons/arsenal/functions/fnc_addRightPanelButton.sqf +++ b/addons/arsenal/functions/fnc_addRightPanelButton.sqf @@ -26,7 +26,7 @@ if (isNil QGVAR(customRightPanelButtons)) then { GVAR(customRightPanelButtons) = []; }; -private _position = (GVAR(customRightPanelButtons) findIf {isNil "_x"}) min (count GVAR(customRightPanelButtons)); +private _position = 0 max ((GVAR(customRightPanelButtons) findIf {isNil "_x"}) min (count GVAR(customRightPanelButtons))); if (_override != -1 && {_override >= 0} && {_override <= 9}) then { _position = _override; From 603e6b363e2a6310cc7d53f2e1657f7d2e51ceba Mon Sep 17 00:00:00 2001 From: shukari Date: Thu, 12 Mar 2020 20:52:36 +0100 Subject: [PATCH 06/17] commys wishes --- addons/arsenal/defines.hpp | 4 ++-- addons/arsenal/functions/fnc_addRightPanelButton.sqf | 12 ++++++------ 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/addons/arsenal/defines.hpp b/addons/arsenal/defines.hpp index b174f13c791..64a4cd92873 100644 --- a/addons/arsenal/defines.hpp +++ b/addons/arsenal/defines.hpp @@ -454,11 +454,11 @@ _buttonCurrentMag2Ctrl ctrlCommit FADE_DELAY;\ #define ADD_CUSTOM_BUTTON(NUMBER)\ class iconBackgroundCustom##NUMBER: iconBackgroundOptic {\ - idc = __EVAL((IDC_iconBackgroundCustom1 - 2) + (NUMBER * 2));\ + idc = (IDC_iconBackgroundCustom1 - 2) + (NUMBER * 2);\ y = QUOTE(safezoneY + (88 + (10 * NUMBER)) * GRID_H);\ };\ class buttonCustom##NUMBER: buttonOptic {\ - idc = __EVAL((IDC_buttonCustom1 - 2) + (NUMBER * 2));\ + idc = (IDC_buttonCustom1 - 2) + (NUMBER * 2);\ text = QPATHTOF(data\iconCustom.paa);\ tooltip = "";\ y = QUOTE(safezoneY + (88 + (10 * NUMBER)) * GRID_H);\ diff --git a/addons/arsenal/functions/fnc_addRightPanelButton.sqf b/addons/arsenal/functions/fnc_addRightPanelButton.sqf index 96181399f0f..ea752ad28b2 100644 --- a/addons/arsenal/functions/fnc_addRightPanelButton.sqf +++ b/addons/arsenal/functions/fnc_addRightPanelButton.sqf @@ -33,13 +33,13 @@ if (_override != -1 && {_override >= 0} && {_override <= 9}) then { }; private _return = if (_position >= 0 && _position <= 9) then { - private _configCfgWeapons = configFile >> "CfgWeapons"; + private _cfgWeapons = configFile >> "CfgWeapons"; _items = _items select { - private _configItemInfo = _configCfgWeapons >> _x >> "ItemInfo"; - - isClass (_configItemInfo) && ((getNumber (_configItemInfo >> "type")) in [TYPE_MUZZLE, TYPE_OPTICS, TYPE_FLASHLIGHT, TYPE_BIPOD] && - {(_x isKindOf ["CBA_MiscItem", (_configCfgWeapons)])}) || {(getNumber (_configItemInfo >> "type")) in [TYPE_FIRST_AID_KIT, TYPE_MEDIKIT, TYPE_TOOLKIT]} || - {(getText (_configCfgWeapons >> _x >> "simulation")) == "ItemMineDetector"} + private _configItemInfo = _cfgWeapons >> _x >> "ItemInfo"; + + _x isKindOf ["CBA_MiscItem", _cfgWeapons] && {getNumber (_configItemInfo >> "type") in [TYPE_MUZZLE, TYPE_OPTICS, TYPE_FLASHLIGHT, TYPE_BIPOD]} || + {getNumber (_configItemInfo >> "type") in [TYPE_FIRST_AID_KIT, TYPE_MEDIKIT, TYPE_TOOLKIT]} || + {getText (_cfgWeapons >> _x >> "simulation") == "ItemMineDetector"} }; GVAR(customRightPanelButtons) set [_position, [_items apply {toLower _x}, _picture, _tooltip]]; From 54832560dfa2b2f36452e75bf34535aaa47dad39 Mon Sep 17 00:00:00 2001 From: shukari Date: Thu, 12 Mar 2020 21:00:11 +0100 Subject: [PATCH 07/17] commys wishes part2 --- addons/arsenal/functions/fnc_addRightPanelButton.sqf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/addons/arsenal/functions/fnc_addRightPanelButton.sqf b/addons/arsenal/functions/fnc_addRightPanelButton.sqf index ea752ad28b2..9080828be7c 100644 --- a/addons/arsenal/functions/fnc_addRightPanelButton.sqf +++ b/addons/arsenal/functions/fnc_addRightPanelButton.sqf @@ -38,8 +38,8 @@ private _return = if (_position >= 0 && _position <= 9) then { private _configItemInfo = _cfgWeapons >> _x >> "ItemInfo"; _x isKindOf ["CBA_MiscItem", _cfgWeapons] && {getNumber (_configItemInfo >> "type") in [TYPE_MUZZLE, TYPE_OPTICS, TYPE_FLASHLIGHT, TYPE_BIPOD]} || - {getNumber (_configItemInfo >> "type") in [TYPE_FIRST_AID_KIT, TYPE_MEDIKIT, TYPE_TOOLKIT]} || - {getText (_cfgWeapons >> _x >> "simulation") == "ItemMineDetector"} + {getNumber (_configItemInfo >> "type") in [TYPE_FIRST_AID_KIT, TYPE_MEDIKIT, TYPE_TOOLKIT]} || + {getText (_cfgWeapons >> _x >> "simulation") == "ItemMineDetector"} }; GVAR(customRightPanelButtons) set [_position, [_items apply {toLower _x}, _picture, _tooltip]]; From 525702a4e25070d6cc0119a469c6f60e103b7b32 Mon Sep 17 00:00:00 2001 From: shukari Date: Thu, 12 Mar 2020 21:01:38 +0100 Subject: [PATCH 08/17] Update addons/arsenal/defines.hpp Co-Authored-By: Dedmen Miller --- addons/arsenal/defines.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/arsenal/defines.hpp b/addons/arsenal/defines.hpp index 64a4cd92873..14bb506a5aa 100644 --- a/addons/arsenal/defines.hpp +++ b/addons/arsenal/defines.hpp @@ -342,7 +342,7 @@ _buttonCurrentMag2Ctrl ctrlCommit FADE_DELAY;\ _x ctrlShow false;\ _x ctrlCommit 0;\ };\ -} foreach [RIGHT_PANEL_CUSTOM_BUTTONS]; +} forEach [RIGHT_PANEL_CUSTOM_BUTTONS]; #define TOGGLE_RIGHT_PANEL_HIDE\ {\ From c77737d0dda6c618793b0402f14b8ff3e4c29f5d Mon Sep 17 00:00:00 2001 From: shukari Date: Thu, 12 Mar 2020 21:02:58 +0100 Subject: [PATCH 09/17] Update addons/arsenal/functions/fnc_fillRightPanel.sqf Co-Authored-By: Dedmen Miller --- addons/arsenal/functions/fnc_fillRightPanel.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/arsenal/functions/fnc_fillRightPanel.sqf b/addons/arsenal/functions/fnc_fillRightPanel.sqf index abd9b4ab05f..4773880c01e 100644 --- a/addons/arsenal/functions/fnc_fillRightPanel.sqf +++ b/addons/arsenal/functions/fnc_fillRightPanel.sqf @@ -287,7 +287,7 @@ switch (_ctrlIDC) do { if (!isNil "_data") then { private _items = _data select 0; { - ["CfgWeapons", _x, true] call _fnc_fill_right_Container; + ["CfgWeapons", _x, true] call _fnc_fill_right_Container; } foreach ((GVAR(virtualItems) select 17) select {(toLower _x) in _items}); }; }; From ba1e45372cd086684982b56a77a299c4006baaec Mon Sep 17 00:00:00 2001 From: shukari Date: Thu, 12 Mar 2020 21:04:10 +0100 Subject: [PATCH 10/17] Update addons/arsenal/functions/fnc_fillRightPanel.sqf Co-Authored-By: Dedmen Miller --- addons/arsenal/functions/fnc_fillRightPanel.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/arsenal/functions/fnc_fillRightPanel.sqf b/addons/arsenal/functions/fnc_fillRightPanel.sqf index 4773880c01e..5510ed16dac 100644 --- a/addons/arsenal/functions/fnc_fillRightPanel.sqf +++ b/addons/arsenal/functions/fnc_fillRightPanel.sqf @@ -304,7 +304,7 @@ switch (_ctrlIDC) do { { ["CfgWeapons", _x, false] call _fnc_fill_right_Container; - } foreach ((GVAR(virtualItems) select 17) select {!((toLower _x) in _blockItems)}); + } forEach ((GVAR(virtualItems) select 17) select {!((toLower _x) in _blockItems)}); }; { From 50eae9a49ba20d712406e72bcd72ffd7c37407e3 Mon Sep 17 00:00:00 2001 From: shukari Date: Thu, 12 Mar 2020 21:14:16 +0100 Subject: [PATCH 11/17] infinitely better SPEED --- addons/arsenal/functions/fnc_fillRightPanel.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/arsenal/functions/fnc_fillRightPanel.sqf b/addons/arsenal/functions/fnc_fillRightPanel.sqf index abd9b4ab05f..7796b623c2c 100644 --- a/addons/arsenal/functions/fnc_fillRightPanel.sqf +++ b/addons/arsenal/functions/fnc_fillRightPanel.sqf @@ -282,7 +282,7 @@ switch (_ctrlIDC) do { case IDC_buttonCustom8; case IDC_buttonCustom9; case IDC_buttonCustom10 : { - private _data = GVAR(customRightPanelButtons) param [[RIGHT_PANEL_CUSTOM_BUTTONS] findIf {_x == _ctrlIDC}]; + private _data = GVAR(customRightPanelButtons) param [[RIGHT_PANEL_CUSTOM_BUTTONS] find _ctrlIDC]; if (!isNil "_data") then { private _items = _data select 0; From 7d4b29193cc924e9957f14edce89aeb5de810508 Mon Sep 17 00:00:00 2001 From: shukari Date: Thu, 30 Apr 2020 09:37:13 +0200 Subject: [PATCH 12/17] changes --- addons/arsenal/config.cpp | 1 + addons/arsenal/defines.hpp | 83 ++++++++----------- .../functions/fnc_addRightPanelButton.sqf | 16 ++-- .../arsenal/functions/fnc_fillRightPanel.sqf | 34 ++++---- addons/arsenal/ui/RscAttributes.hpp | 21 ++--- addons/arsenal/ui/RscCustomArsenalButton.hpp | 52 ++++++++++++ 6 files changed, 115 insertions(+), 92 deletions(-) create mode 100644 addons/arsenal/ui/RscCustomArsenalButton.hpp diff --git a/addons/arsenal/config.cpp b/addons/arsenal/config.cpp index 6eb4c895ce4..0bc1ba37d67 100644 --- a/addons/arsenal/config.cpp +++ b/addons/arsenal/config.cpp @@ -15,6 +15,7 @@ class CfgPatches { }; #include "ui\RscAttributes.hpp" +#include "ui\RscCustomArsenalButton.hpp" #include "Display3DEN.hpp" #include "Cfg3DEN.hpp" #include "CfgEventHandlers.hpp" diff --git a/addons/arsenal/defines.hpp b/addons/arsenal/defines.hpp index 14bb506a5aa..0a45ff87343 100644 --- a/addons/arsenal/defines.hpp +++ b/addons/arsenal/defines.hpp @@ -130,26 +130,6 @@ #define IDC_statsCurrentPage 54 #define IDC_statsButton 55 #define IDC_statsButtonClose 56 -#define IDC_iconBackgroundCustom1 57 -#define IDC_buttonCustom1 58 -#define IDC_iconBackgroundCustom2 59 -#define IDC_buttonCustom2 60 -#define IDC_iconBackgroundCustom3 61 -#define IDC_buttonCustom3 62 -#define IDC_iconBackgroundCustom4 63 -#define IDC_buttonCustom4 64 -#define IDC_iconBackgroundCustom5 65 -#define IDC_buttonCustom5 66 -#define IDC_iconBackgroundCustom6 67 -#define IDC_buttonCustom6 68 -#define IDC_iconBackgroundCustom7 69 -#define IDC_buttonCustom7 70 -#define IDC_iconBackgroundCustom8 71 -#define IDC_buttonCustom8 72 -#define IDC_iconBackgroundCustom9 73 -#define IDC_buttonCustom9 74 -#define IDC_iconBackgroundCustom10 75 -#define IDC_buttonCustom10 76 #define IDD_loadouts_display 1127002 #define IDC_centerBox 3 @@ -192,11 +172,12 @@ #define FADE_DELAY 0.15 #define CAM_DIS_MAX 5 -#define RIGHT_PANEL_CUSTOM_BUTTONS IDC_buttonCustom1, IDC_buttonCustom2, IDC_buttonCustom3, IDC_buttonCustom4, IDC_buttonCustom5, IDC_buttonCustom6, IDC_buttonCustom7, IDC_buttonCustom8, IDC_buttonCustom9, IDC_buttonCustom10 +#define RIGHT_PANEL_CUSTOM_BUTTONS 61, 63, 65, 67, 69, 71, 73, 75, 77, 79 +#define RIGHT_PANEL_CUSTOM_BACKGROUND 60, 62, 64, 66, 68, 70, 72, 74, 76, 78 #define RIGHT_PANEL_ACC_IDCS IDC_buttonOptic, IDC_buttonItemAcc, IDC_buttonMuzzle, IDC_buttonBipod #define RIGHT_PANEL_ACC_BACKGROUND_IDCS IDC_iconBackgroundOptic, IDC_iconBackgroundItemAcc, IDC_iconBackgroundMuzzle, IDC_iconBackgroundBipod #define RIGHT_PANEL_ITEMS_IDCS IDC_buttonMag, IDC_buttonMagALL, IDC_buttonThrow, IDC_buttonPut, IDC_buttonMisc, RIGHT_PANEL_CUSTOM_BUTTONS -#define RIGHT_PANEL_ITEMS_BACKGROUND_IDCS IDC_iconBackgroundMag, IDC_iconBackgroundMagALL, IDC_iconBackgroundThrow, IDC_iconBackgroundPut, IDC_iconBackgroundMisc, IDC_iconBackgroundCustom1, IDC_iconBackgroundCustom2, IDC_iconBackgroundCustom3, IDC_iconBackgroundCustom4, IDC_iconBackgroundCustom5, IDC_iconBackgroundCustom6, IDC_iconBackgroundCustom7, IDC_iconBackgroundCustom8, IDC_iconBackgroundCustom9, IDC_iconBackgroundCustom10 +#define RIGHT_PANEL_ITEMS_BACKGROUND_IDCS IDC_iconBackgroundMag, IDC_iconBackgroundMagALL, IDC_iconBackgroundThrow, IDC_iconBackgroundPut, IDC_iconBackgroundMisc, RIGHT_PANEL_CUSTOM_BACKGROUND #define ARROWS_IDCS IDC_arrowMinus, IDC_arrowPlus #define GETDLC\ @@ -326,23 +307,37 @@ _buttonCurrentMag2Ctrl ctrlCommit FADE_DELAY;\ IDC_blockRightFrame,\ IDC_blockRighttBackground\ ];\ -{\ - private _idc = _x;\ - _x = _display displayCtrl _idc;\ - if (!isNil QGVAR(customRightPanelButtons) && {!isNil {GVAR(customRightPanelButtons) param [_forEachIndex]}}) then {\ - (GVAR(customRightPanelButtons) select _forEachIndex) params ["", "_picture", "_tooltip"];\ - _x ctrlSetText _picture;\ - _x ctrlSetTooltip _tooltip;\ - } else {\ - _x ctrlSetFade 1;\ - _x ctrlShow false;\ - _x ctrlCommit 0;\ - _x = _display displayCtrl (_idc - 1);\ - _x ctrlSetFade 1;\ - _x ctrlShow false;\ +if (!isNil QGVAR(customRightPanelButtons)) then {\ + private _miscOffset = 0;\ + {\ + if (!isNil "_x") then {\ + _x params ["", "_picture", "_tooltip"];\ + _miscOffset = _forEachIndex + 1;\ + private _ctrl = _display ctrlCreate ["ace_arsenal_customArsenalButton_Button", 61 + (_forEachIndex * 2)];\ + _ctrl ctrlSetPosition [\ + safezoneW + safezoneX - 10 * GRID_W,\ + safezoneY + (88 + (10 * _forEachIndex)) * GRID_H\ + ];\ + _ctrl ctrlSetText _picture;\ + _ctrl ctrlSetTooltip _tooltip;\ + _ctrl ctrlCommit 0;\ + _ctrl = _display ctrlCreate ["ace_arsenal_customArsenalButton_Background", 60 + (_forEachIndex * 2)];\ + _ctrl ctrlSetPosition [\ + safezoneW + safezoneX - 13 * GRID_W,\ + safezoneY + (88 + (10 * _forEachIndex)) * GRID_H\ + ];\ + _ctrl ctrlCommit 0;\ + };\ + } forEach GVAR(customRightPanelButtons);\ + {\ + _x = _display displayCtrl _x;\ + _x ctrlSetPosition [\ + safezoneW + safezoneX - (10 + (3 * _forEachIndex)) * GRID_W,\ + safezoneY + (88 + (10 * _miscOffset)) * GRID_H\ + ];\ _x ctrlCommit 0;\ - };\ -} forEach [RIGHT_PANEL_CUSTOM_BUTTONS]; + } forEach [IDC_buttonMisc, IDC_iconBackgroundMisc];\ +}; #define TOGGLE_RIGHT_PANEL_HIDE\ {\ @@ -451,15 +446,3 @@ _buttonCurrentMag2Ctrl ctrlCommit FADE_DELAY;\ _contentPanelCtrl lnbSetPicture [[_newRow, 7], getText (configFile >> "cfgVehicles" >> ((_loadout select 5) select 0) >> "picture")];\ _contentPanelCtrl lnbSetPicture [[_newRow, 8], getText (configFile >> "cfgWeapons" >> (_loadout select 6) >> "picture")];\ _contentPanelCtrl lnbSetPicture [[_newRow, 9], getText (configFile >> "cfgGlasses" >> (_loadout select 7) >> "picture")]; - -#define ADD_CUSTOM_BUTTON(NUMBER)\ - class iconBackgroundCustom##NUMBER: iconBackgroundOptic {\ - idc = (IDC_iconBackgroundCustom1 - 2) + (NUMBER * 2);\ - y = QUOTE(safezoneY + (88 + (10 * NUMBER)) * GRID_H);\ - };\ - class buttonCustom##NUMBER: buttonOptic {\ - idc = (IDC_buttonCustom1 - 2) + (NUMBER * 2);\ - text = QPATHTOF(data\iconCustom.paa);\ - tooltip = "";\ - y = QUOTE(safezoneY + (88 + (10 * NUMBER)) * GRID_H);\ - } diff --git a/addons/arsenal/functions/fnc_addRightPanelButton.sqf b/addons/arsenal/functions/fnc_addRightPanelButton.sqf index 9080828be7c..b906c13c4f4 100644 --- a/addons/arsenal/functions/fnc_addRightPanelButton.sqf +++ b/addons/arsenal/functions/fnc_addRightPanelButton.sqf @@ -12,7 +12,7 @@ * 3: override a spezific button (0-9) (Optional) * * Return Value: - * if successful added + * successful: number of the slot; error: -1 * * Example: * [["ACE_bloodIV_500", "ACE_Banana"], "MedicalStuff", "\z\ace\addons\arsenal\data\iconCustom.paa", 5] call ace_arsenal_fnc_addRightPanelButton @@ -26,13 +26,19 @@ if (isNil QGVAR(customRightPanelButtons)) then { GVAR(customRightPanelButtons) = []; }; -private _position = 0 max ((GVAR(customRightPanelButtons) findIf {isNil "_x"}) min (count GVAR(customRightPanelButtons))); +private _position = count GVAR(customRightPanelButtons); if (_override != -1 && {_override >= 0} && {_override <= 9}) then { _position = _override; +} else { + private _emptyPos = GVAR(customRightPanelButtons) findIf {isNil "_x"}; + if (_emptyPos != -1) then { + _position = _emptyPos; + }; }; -private _return = if (_position >= 0 && _position <= 9) then { +private _return = -1; +if (_position >= 0 && _position <= 9) then { private _cfgWeapons = configFile >> "CfgWeapons"; _items = _items select { private _configItemInfo = _cfgWeapons >> _x >> "ItemInfo"; @@ -42,10 +48,8 @@ private _return = if (_position >= 0 && _position <= 9) then { {getText (_cfgWeapons >> _x >> "simulation") == "ItemMineDetector"} }; + _return = _position; GVAR(customRightPanelButtons) set [_position, [_items apply {toLower _x}, _picture, _tooltip]]; - true -} else { - false }; _return diff --git a/addons/arsenal/functions/fnc_fillRightPanel.sqf b/addons/arsenal/functions/fnc_fillRightPanel.sqf index 405b6ae9683..1d5e996a714 100644 --- a/addons/arsenal/functions/fnc_fillRightPanel.sqf +++ b/addons/arsenal/functions/fnc_fillRightPanel.sqf @@ -272,26 +272,6 @@ switch (_ctrlIDC) do { } foreach (GVAR(virtualItems) select 21); }; - case IDC_buttonCustom1; - case IDC_buttonCustom2; - case IDC_buttonCustom3; - case IDC_buttonCustom4; - case IDC_buttonCustom5; - case IDC_buttonCustom6; - case IDC_buttonCustom7; - case IDC_buttonCustom8; - case IDC_buttonCustom9; - case IDC_buttonCustom10 : { - private _data = GVAR(customRightPanelButtons) param [[RIGHT_PANEL_CUSTOM_BUTTONS] find _ctrlIDC]; - - if (!isNil "_data") then { - private _items = _data select 0; - { - ["CfgWeapons", _x, true] call _fnc_fill_right_Container; - } foreach ((GVAR(virtualItems) select 17) select {(toLower _x) in _items}); - }; - }; - case IDC_buttonMisc : { // hide custom button items if (!isNil QGVAR(customRightPanelButtons)) then { @@ -317,6 +297,20 @@ switch (_ctrlIDC) do { ["CfgGlasses", _x, false, true] call _fnc_fill_right_Container; } foreach (GVAR(virtualItems) select 24); }; + + default { + private _index = [RIGHT_PANEL_CUSTOM_BUTTONS] find _ctrlIDC; + if (_index != -1) then { + private _data = GVAR(customRightPanelButtons) param [_index]; + + if (!isNil "_data") then { + private _items = _data select 0; + { + ["CfgWeapons", _x, true] call _fnc_fill_right_Container; + } foreach ((GVAR(virtualItems) select 17) select {(toLower _x) in _items}); + }; + }; + }; }; (_display displayCtrl IDC_rightSearchbar) ctrlSetText ""; diff --git a/addons/arsenal/ui/RscAttributes.hpp b/addons/arsenal/ui/RscAttributes.hpp index bc03d099a1b..7f452a55eb7 100644 --- a/addons/arsenal/ui/RscAttributes.hpp +++ b/addons/arsenal/ui/RscAttributes.hpp @@ -787,7 +787,7 @@ class GVAR(display) { colorBackground[]={0,0,0,1}; fade=1; enable=0; - x = QUOTE(safezoneW + safezoneX - 13 * GRID_W); + x = QUOTE(safezoneW + safezoneX - 13 * GRID_W); y = QUOTE(safezoneY + 8 * GRID_H); w = QUOTE(12 * GRID_W); h = QUOTE(9 * GRID_H); @@ -798,7 +798,7 @@ class GVAR(display) { text="\A3\Ui_f\data\GUI\Rsc\RscDisplayArsenal\ItemOptic_ca.paa"; onButtonClick = QUOTE([ARR_2(ctrlParent (_this select 0), _this select 0)] call FUNC(fillRightPanel)); colorBackground[]={0,0,0,0.5}; - x = QUOTE(safezoneW + safezoneX - 10 * GRID_W); + x = QUOTE(safezoneW + safezoneX - 10 * GRID_W); y = QUOTE(safezoneY + 8 * GRID_H); w = QUOTE(9 * GRID_W); h = QUOTE(9 * GRID_H); @@ -904,17 +904,6 @@ class GVAR(display) { y = QUOTE(safezoneY + 88 * GRID_H); }; - ADD_CUSTOM_BUTTON(1); - ADD_CUSTOM_BUTTON(2); - ADD_CUSTOM_BUTTON(3); - ADD_CUSTOM_BUTTON(4); - ADD_CUSTOM_BUTTON(5); - ADD_CUSTOM_BUTTON(6); - ADD_CUSTOM_BUTTON(7); - ADD_CUSTOM_BUTTON(8); - ADD_CUSTOM_BUTTON(9); - ADD_CUSTOM_BUTTON(10); - class buttonRemoveAll: ctrlButtonPicture { idc = IDC_buttonRemoveAll; text = QPATHTOF(data\iconClearContainer.paa); @@ -923,7 +912,7 @@ class GVAR(display) { onButtonClick = QUOTE(ctrlParent (_this select 0) call FUNC(buttonClearAll)); fade=1; enable=0; - x = QUOTE(safezoneW + safezoneX - 11 * GRID_W); + x = QUOTE(safezoneW + safezoneX - 11 * GRID_W); y = QUOTE(safeZoneH + safezoneY - 29 * GRID_H); w = QUOTE(9 * GRID_W); h = QUOTE(9 * GRID_H); @@ -938,7 +927,7 @@ class GVAR(loadoutsDisplay) { class controls { class centerBox: ctrlControlsGroupNoScrollbars { idc = IDC_centerBox; - x = QUOTE(safezoneW + safezoneX - (180 * GRID_W)); + x = QUOTE(safezoneW + safezoneX - (180 * GRID_W)); y = QUOTE(safezoneY + (5 * GRID_H)); w = QUOTE(160 * GRID_W); h = QUOTE(safezoneH - (34 * GRID_H)); @@ -1068,7 +1057,7 @@ class GVAR(loadoutsDisplay) { }; class buttonClose: ctrlButton { idc = -1; - x = QUOTE(safezoneW + safezoneX - 32 * GRID_W); + x = QUOTE(safezoneW + safezoneX - 32 * GRID_W); y = QUOTE(safezoneH + safezoneY - 9 * GRID_H); w = QUOTE(30 * GRID_W); h = QUOTE(7 * GRID_H); diff --git a/addons/arsenal/ui/RscCustomArsenalButton.hpp b/addons/arsenal/ui/RscCustomArsenalButton.hpp new file mode 100644 index 00000000000..ca3a010ee35 --- /dev/null +++ b/addons/arsenal/ui/RscCustomArsenalButton.hpp @@ -0,0 +1,52 @@ +class GVAR(customArsenalButton) : RscControlsGroupNoScrollbars { + x = QUOTE(safezoneW + safezoneX - 10 * GRID_W); + y = QUOTE(safezoneY + 88 * GRID_H); + w = QUOTE(12 * GRID_W); + h = QUOTE(9 * GRID_H); + + class Controls { + class iconBackground: ctrlStaticBackground { + colorBackground[] = {0,0,0,1}; + fade = 1; + enable = 0; + x = -3; + y = 0; + w = QUOTE(12 * GRID_W); + h = QUOTE(9 * GRID_H); + }; + class buttonCustom: RscButtonArsenal { + idc = 1; + text = QPATHTOF(data\iconCustom.paa); + tooltip = ""; + onButtonClick = QUOTE([ARR_2(ctrlParent (ctrlParentControlsGroup (_this select 0)), ctrlParentControlsGroup (_this select 0))] call FUNC(fillRightPanel)); + colorBackground[] = {0,0,0,0.5}; + x = 0; + y = 0; + w = QUOTE(9 * GRID_W); + h = QUOTE(9 * GRID_H); + }; + }; +}; + +class GVAR(customArsenalButton_Button) : RscButtonArsenal { + x = QUOTE(safezoneW + safezoneX - 10 * GRID_W); + y = QUOTE(safezoneY + 88 * GRID_H); + w = QUOTE(9 * GRID_W); + h = QUOTE(9 * GRID_H); + + text = QPATHTOF(data\iconCustom.paa); + tooltip = ""; + onButtonClick = QUOTE([ARR_2(ctrlParent (_this select 0), _this select 0)] call FUNC(fillRightPanel)); + colorBackground[] = {0,0,0,0.5}; +}; + +class GVAR(customArsenalButton_Background) : ctrlStaticBackground { + x = QUOTE(safezoneW + safezoneX - 13 * GRID_W); + y = QUOTE(safezoneY + 88 * GRID_H); + w = QUOTE(12 * GRID_W); + h = QUOTE(9 * GRID_H); + + colorBackground[] = {0,0,0,1}; + fade = 1; + enable = 0; +}; \ No newline at end of file From 3ef2718d05acc108b67e838a19e918363c95e737 Mon Sep 17 00:00:00 2001 From: shukari Date: Mon, 4 May 2020 23:00:21 +0200 Subject: [PATCH 13/17] delete unused stuff --- addons/arsenal/ui/RscCustomArsenalButton.hpp | 32 +------------------- 1 file changed, 1 insertion(+), 31 deletions(-) diff --git a/addons/arsenal/ui/RscCustomArsenalButton.hpp b/addons/arsenal/ui/RscCustomArsenalButton.hpp index ca3a010ee35..7f0a1393748 100644 --- a/addons/arsenal/ui/RscCustomArsenalButton.hpp +++ b/addons/arsenal/ui/RscCustomArsenalButton.hpp @@ -1,33 +1,3 @@ -class GVAR(customArsenalButton) : RscControlsGroupNoScrollbars { - x = QUOTE(safezoneW + safezoneX - 10 * GRID_W); - y = QUOTE(safezoneY + 88 * GRID_H); - w = QUOTE(12 * GRID_W); - h = QUOTE(9 * GRID_H); - - class Controls { - class iconBackground: ctrlStaticBackground { - colorBackground[] = {0,0,0,1}; - fade = 1; - enable = 0; - x = -3; - y = 0; - w = QUOTE(12 * GRID_W); - h = QUOTE(9 * GRID_H); - }; - class buttonCustom: RscButtonArsenal { - idc = 1; - text = QPATHTOF(data\iconCustom.paa); - tooltip = ""; - onButtonClick = QUOTE([ARR_2(ctrlParent (ctrlParentControlsGroup (_this select 0)), ctrlParentControlsGroup (_this select 0))] call FUNC(fillRightPanel)); - colorBackground[] = {0,0,0,0.5}; - x = 0; - y = 0; - w = QUOTE(9 * GRID_W); - h = QUOTE(9 * GRID_H); - }; - }; -}; - class GVAR(customArsenalButton_Button) : RscButtonArsenal { x = QUOTE(safezoneW + safezoneX - 10 * GRID_W); y = QUOTE(safezoneY + 88 * GRID_H); @@ -49,4 +19,4 @@ class GVAR(customArsenalButton_Background) : ctrlStaticBackground { colorBackground[] = {0,0,0,1}; fade = 1; enable = 0; -}; \ No newline at end of file +}; From 7183623ee20efc60f9fb2887bb7e554abc56b758 Mon Sep 17 00:00:00 2001 From: shukari Date: Wed, 6 May 2020 13:29:19 +0200 Subject: [PATCH 14/17] my own 3 white dots --- addons/arsenal/data/iconCustom.paa | Bin 5625 -> 5625 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/addons/arsenal/data/iconCustom.paa b/addons/arsenal/data/iconCustom.paa index 5f8459b0916d12572a8bc2fffcebb74734417113..8c0c6ff94f9320f9347d919f298509264681461b 100644 GIT binary patch literal 5625 zcmeHLT}TvB6h0%4>BFK>V-F(Dg0;OBs0-qQvnZO7w$NNHD#$h!!d-g^A!1R~@X0o$ z@FDCid>a2})X)7VJ8mbMKByAsDpMiU;nU`DV_{x!*Z+?mc%@ zyQaoxR@OB5G67(9b#=eMXMA;pZ4|;azLV926>Nl0S681h@VpCKUmn1%0|0k5fOpvb zP7E*r@C|#i=YbvcK+bC(jB(dT+Xi4vg~qRh3nwJ@@8C#w#?+zLys3O8v`YLmRaNaN zN@bbg;`k6UHsh>2BZaZS#0=@1et+6K#52_q`s8h&B|b=BrQ>G4zvKGoa3b1Q7^CY* zKkfOqLGA6L+JPeCqiKva&e@T;_p;!J(>n8hvzHHc2b0)frEp@v(Ki`m(p%}<=L3?j z9mpj9NJq|%W*+0lHd7{9fGl@Z`f`@R`+;BK*xt#n@|M(Lr6#fYF zA3tdCi)ZbXxa0}83gJ$D+QG&~zLWlL$bY4W*7v4z;*068dMqA19+%Ok$qg|s{y#;Bpxd(5OeY!=L3)BZrhBd)?UBoft~Sy4mtq+VUVKZ z!AV8B^1ovDcODEhd|ngFgsLd{4|v`5c>Jlre#4-#ljzt|!KdKm+TvPu=p5No6h%Gy zv@`xDBFh%TFwT%|5*=GA?03K6!TBePIE`XifdfDsj#fziCJq423emAog?-=Ti}r-~ zikQ|F#l?J+o$=>4<+N=WS7{{|qGO*5`)->zm$bY;Li{oOirXF?n#dV?OBlm%2;I64u z>($v-Zf0F8p>p23zWZm_ace&o{-e6t>iM#M9xC90MG@vwRW0iubj7ShRD}8b#@~Uh zp3g7tz~^OHR4l*qi!n!&*pKD4L)dvf8?wOwIC}#(sXTCx%rH&U%xkzwwJwNgGt)Hv qVcuHKn*_$&%pV>rjEzV$c$;P7jEep|P?ohYS>N`UUgJZN)_wulqvjs~ literal 5625 zcmZSm@9ypx;_M#g$il$D@csLDK`=kU(HF%34+J2-yQ7aAh|dVbAbzl$o4*5)-2lYx z0t^g&A`A>uMHv|G05NI6fx&@+0cgS~7!3hBhCuGiZMnC%wUi&e#Ex8+K2Oa2Y=pC}Og-w(>lpbUQhKNE<)$N-|i{01Oxw{x59?e@Pn z!Ql}Q5CD=J%D~{!wtVYtnbL6ozXth60PJ5NgX#Z!u&rIV z8~lGRgZTjt4zzZ^$>wMIf6S7=&3Hye*3huu_J0qwK&o{IhX8mpo>t*E>i>})|I|+3 z0-&KlNY4ahG%VTv29M6nlYz9>L|N6$fL+%Oe{VqeA@I=&n0k<25KsVOP%)xp^DWPM zTjFDodR9@Oey4uf+Z$?cf%pL-wAZg~V+OPzk}X+9LqnZh+GT;GPms}t5JYbq=3Wj4 z4$!b@KqPq3MjGr*;Gj)d;x^vf8+pOnLPLP=j@*_E9Ml2xfzqL2i9pGX5MzPTp)9}> Y6&RjkdTeiw<>edz8RG~9z(4^40Jb8lH2?qr From 6a7e90f9dae8266d8923694760cda18f3045cf6c Mon Sep 17 00:00:00 2001 From: shukari Date: Tue, 23 Jun 2020 17:15:37 +0200 Subject: [PATCH 15/17] fixed fillRightPanel IDC_MISC --- addons/arsenal/functions/fnc_fillRightPanel.sqf | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/addons/arsenal/functions/fnc_fillRightPanel.sqf b/addons/arsenal/functions/fnc_fillRightPanel.sqf index 1d5e996a714..8cd64c73f21 100644 --- a/addons/arsenal/functions/fnc_fillRightPanel.sqf +++ b/addons/arsenal/functions/fnc_fillRightPanel.sqf @@ -274,19 +274,19 @@ switch (_ctrlIDC) do { case IDC_buttonMisc : { // hide custom button items + private _blockItems = []; if (!isNil QGVAR(customRightPanelButtons)) then { - private _blockItems = []; { if (!isNil "_x") then { _blockItems append (_x select 0); }; } forEach GVAR(customRightPanelButtons); - - { - ["CfgWeapons", _x, false] call _fnc_fill_right_Container; - } forEach ((GVAR(virtualItems) select 17) select {!((toLower _x) in _blockItems)}); }; + { + ["CfgWeapons", _x, false] call _fnc_fill_right_Container; + } forEach ((GVAR(virtualItems) select 17) select {!((toLower _x) in _blockItems)}); + { ["CfgWeapons", _x, false, true] call _fnc_fill_right_Container; } foreach (GVAR(virtualItems) select 18); From d781bd7c053a895d564858851438dce3ccd0da01 Mon Sep 17 00:00:00 2001 From: shukari Date: Fri, 26 Jun 2020 19:21:48 +0200 Subject: [PATCH 16/17] commy fixes --- addons/arsenal/defines.hpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/addons/arsenal/defines.hpp b/addons/arsenal/defines.hpp index 0a45ff87343..816ec49925b 100644 --- a/addons/arsenal/defines.hpp +++ b/addons/arsenal/defines.hpp @@ -313,7 +313,7 @@ if (!isNil QGVAR(customRightPanelButtons)) then {\ if (!isNil "_x") then {\ _x params ["", "_picture", "_tooltip"];\ _miscOffset = _forEachIndex + 1;\ - private _ctrl = _display ctrlCreate ["ace_arsenal_customArsenalButton_Button", 61 + (_forEachIndex * 2)];\ + private _ctrl = _display ctrlCreate [QGVAR(customArsenalButton_Button), 61 + (_forEachIndex * 2)];\ _ctrl ctrlSetPosition [\ safezoneW + safezoneX - 10 * GRID_W,\ safezoneY + (88 + (10 * _forEachIndex)) * GRID_H\ @@ -321,7 +321,7 @@ if (!isNil QGVAR(customRightPanelButtons)) then {\ _ctrl ctrlSetText _picture;\ _ctrl ctrlSetTooltip _tooltip;\ _ctrl ctrlCommit 0;\ - _ctrl = _display ctrlCreate ["ace_arsenal_customArsenalButton_Background", 60 + (_forEachIndex * 2)];\ + _ctrl = _display ctrlCreate [QGVAR(customArsenalButton_Background), 60 + (_forEachIndex * 2)];\ _ctrl ctrlSetPosition [\ safezoneW + safezoneX - 13 * GRID_W,\ safezoneY + (88 + (10 * _forEachIndex)) * GRID_H\ From a20915b541bcd52ab3a45e539ee0f050c2964810 Mon Sep 17 00:00:00 2001 From: shukari Date: Sun, 28 Jun 2020 14:39:02 +0200 Subject: [PATCH 17/17] background first --- addons/arsenal/defines.hpp | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/addons/arsenal/defines.hpp b/addons/arsenal/defines.hpp index 816ec49925b..f0ce0bc8942 100644 --- a/addons/arsenal/defines.hpp +++ b/addons/arsenal/defines.hpp @@ -313,19 +313,19 @@ if (!isNil QGVAR(customRightPanelButtons)) then {\ if (!isNil "_x") then {\ _x params ["", "_picture", "_tooltip"];\ _miscOffset = _forEachIndex + 1;\ - private _ctrl = _display ctrlCreate [QGVAR(customArsenalButton_Button), 61 + (_forEachIndex * 2)];\ + private _ctrl = _display ctrlCreate [QGVAR(customArsenalButton_Background), 60 + (_forEachIndex * 2)];\ _ctrl ctrlSetPosition [\ - safezoneW + safezoneX - 10 * GRID_W,\ + safezoneW + safezoneX - 13 * GRID_W,\ safezoneY + (88 + (10 * _forEachIndex)) * GRID_H\ ];\ - _ctrl ctrlSetText _picture;\ - _ctrl ctrlSetTooltip _tooltip;\ _ctrl ctrlCommit 0;\ - _ctrl = _display ctrlCreate [QGVAR(customArsenalButton_Background), 60 + (_forEachIndex * 2)];\ + _ctrl = _display ctrlCreate [QGVAR(customArsenalButton_Button), 61 + (_forEachIndex * 2)];\ _ctrl ctrlSetPosition [\ - safezoneW + safezoneX - 13 * GRID_W,\ + safezoneW + safezoneX - 10 * GRID_W,\ safezoneY + (88 + (10 * _forEachIndex)) * GRID_H\ ];\ + _ctrl ctrlSetText _picture;\ + _ctrl ctrlSetTooltip _tooltip;\ _ctrl ctrlCommit 0;\ };\ } forEach GVAR(customRightPanelButtons);\