From 5dc94487c5c4a1819466e23555050d11daed336d Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Tue, 2 Jun 2015 20:50:27 -0500 Subject: [PATCH 1/3] Module Settings for Captivity Setting for handcuffing own team, and allowing surrender. --- addons/captives/ACE_Settings.hpp | 14 +++++++++ addons/captives/CfgVehicles.hpp | 31 ++++++++++++++++++- addons/captives/XEH_preInit.sqf | 1 + addons/captives/config.cpp | 3 +- .../functions/fnc_canApplyHandcuffs.sqf | 3 +- .../captives/functions/fnc_canSurrender.sqf | 2 +- .../captives/functions/fnc_moduleSettings.sqf | 19 ++++++++++++ addons/captives/stringtable.xml | 18 +++++++++++ 8 files changed, 87 insertions(+), 4 deletions(-) create mode 100644 addons/captives/ACE_Settings.hpp create mode 100644 addons/captives/functions/fnc_moduleSettings.sqf diff --git a/addons/captives/ACE_Settings.hpp b/addons/captives/ACE_Settings.hpp new file mode 100644 index 0000000000..252fbc551d --- /dev/null +++ b/addons/captives/ACE_Settings.hpp @@ -0,0 +1,14 @@ +class ACE_Settings { + class GVAR(allowHandcuffOwnSide) { + displayName = "$STR_ACE_Captives_ModuleSettings_handcuffSide_name"; + description = "$STR_ACE_Captives_ModuleSettings_handcuffSide_description"; + typeName = "BOOL"; + value = 1; + }; + class GVAR(allowSurrender) { + displayName = "$STR_ACE_Captives_ModuleSettings_allowSurrender_name"; + description = "$STR_ACE_Captives_ModuleSettings_allowSurrender_description"; + typeName = "BOOL"; + value = 1; + }; +}; diff --git a/addons/captives/CfgVehicles.hpp b/addons/captives/CfgVehicles.hpp index ec142a533b..1c01a3b428 100644 --- a/addons/captives/CfgVehicles.hpp +++ b/addons/captives/CfgVehicles.hpp @@ -162,7 +162,7 @@ class CfgVehicles { author = "$STR_ACE_Common_ACETeam"; category = "ACE"; displayName = "$STR_ACE_Captives_ModuleSurrender_DisplayName"; //Make Unit Surrender - function = QUOTE(DFUNC(moduleSurrender)); + function = QFUNC(moduleSurrender); scope = 2; //show in editor isGlobal = 1; //run global isTriggerActivated = 1; //Wait for triggers @@ -174,4 +174,33 @@ class CfgVehicles { sync[] = {"AnyAI"}; }; }; + + class ACE_Module: Module_F {}; + class GVAR(moduleSettings): ACE_Module { + author = "$STR_ACE_Common_ACETeam"; + category = "ACE"; + displayName = "$STR_ACE_Captives_ModuleSettings_DisplayName"; + function = QFUNC(moduleSettings); + scope = 2; + icon = QUOTE(PATHTOF(UI\Icon_Module_Make_Unit_Surrender_ca.paa)); + isGlobal = 1; + class Arguments { + class allowHandcuffOwnSide { + displayName = "$STR_ACE_Captives_ModuleSettings_handcuffSide_name"; + description = "$STR_ACE_Captives_ModuleSettings_handcuffSide_description"; + typeName = "BOOL"; + defaultValue = 1; + }; + class allowSurrender { + displayName = "$STR_ACE_Captives_ModuleSettings_allowSurrender_name"; + description = "$STR_ACE_Captives_ModuleSettings_allowSurrender_description"; + typeName = "BOOL"; + defaultValue = 1; + }; + }; + class ModuleDescription: ModuleDescription { + description = "$STR_ACE_Captives_ModuleSettings_Description"; + sync[] = {}; + }; + }; }; diff --git a/addons/captives/XEH_preInit.sqf b/addons/captives/XEH_preInit.sqf index bc6a61bc4f..31bcbe8e02 100644 --- a/addons/captives/XEH_preInit.sqf +++ b/addons/captives/XEH_preInit.sqf @@ -24,6 +24,7 @@ PREP(handlePlayerChanged); PREP(handleRespawn); PREP(handleUnitInitPost); PREP(handleZeusDisplayChanged); +PREP(moduleSettings); PREP(moduleSurrender); PREP(setHandcuffed); PREP(setSurrendered); diff --git a/addons/captives/config.cpp b/addons/captives/config.cpp index 57de6ee970..cdaf6dc4e4 100644 --- a/addons/captives/config.cpp +++ b/addons/captives/config.cpp @@ -2,7 +2,7 @@ class CfgPatches { class ADDON { - units[] = {QGVAR(ModuleSurrender)}; + units[] = {QGVAR(ModuleSettings), QGVAR(ModuleSurrender)}; weapons[] = {"ACE_CableTie"}; requiredVersion = REQUIRED_VERSION; requiredAddons[] = {"ACE_Interaction"}; @@ -12,6 +12,7 @@ class CfgPatches { }; }; +#include "ACE_Settings.hpp" #include "CfgEventHandlers.hpp" #include "CfgMoves.hpp" #include "CfgVehicles.hpp" diff --git a/addons/captives/functions/fnc_canApplyHandcuffs.sqf b/addons/captives/functions/fnc_canApplyHandcuffs.sqf index f69bb2544d..e42b5455ff 100644 --- a/addons/captives/functions/fnc_canApplyHandcuffs.sqf +++ b/addons/captives/functions/fnc_canApplyHandcuffs.sqf @@ -18,8 +18,9 @@ PARAMS_2(_unit,_target); -//Player has cableTie, target is alive and not already handcuffed +//Check sides, Player has cableTie, target is alive and not already handcuffed +(GVAR(allowHandcuffOwnSide) || {(side _unit) != (side _target)}) && ("ACE_CableTie" in (items _unit)) && {alive _target} && {!(_target getVariable [QGVAR(isHandcuffed), false])} diff --git a/addons/captives/functions/fnc_canSurrender.sqf b/addons/captives/functions/fnc_canSurrender.sqf index 9ba7cf6de0..059fb98d03 100644 --- a/addons/captives/functions/fnc_canSurrender.sqf +++ b/addons/captives/functions/fnc_canSurrender.sqf @@ -22,7 +22,7 @@ private "_returnValue"; _returnValue = if (_newSurrenderState) then { //no weapon equiped AND not currently surrendering and - (currentWeapon _unit == "") && {!(_unit getVariable [QGVAR(isSurrendering), false])} + GVAR(allowSurrender) && {(currentWeapon _unit) == ""} && {!(_unit getVariable [QGVAR(isSurrendering), false])} } else { //is Surrendering (_unit getVariable [QGVAR(isSurrendering), false]) diff --git a/addons/captives/functions/fnc_moduleSettings.sqf b/addons/captives/functions/fnc_moduleSettings.sqf new file mode 100644 index 0000000000..c12ac80b99 --- /dev/null +++ b/addons/captives/functions/fnc_moduleSettings.sqf @@ -0,0 +1,19 @@ +/* + * Author: PabstMirror + * Module for captivity settings + * + * Arguments: + * 0: The module logic + * + * Return Value: + * None + * + * Public: No + */ + +#include "script_component.hpp" + +PARAMS_1(_logic); + +[_logic, QGVAR(allowHandcuffOwnSide), "allowHandcuffOwnSide"] call EFUNC(common,readSettingFromModule); +[_logic, QGVAR(allowSurrender), "allowSurrender"] call EFUNC(common,readSettingFromModule); diff --git a/addons/captives/stringtable.xml b/addons/captives/stringtable.xml index 4e329675d1..8d8c30e92c 100644 --- a/addons/captives/stringtable.xml +++ b/addons/captives/stringtable.xml @@ -169,5 +169,23 @@ Sincroniza una unidad para hacer que se rinda.<br />Fuente: ace_captives Einheit synchronisieren, um sie kapitulieren zu lassen.<br />Quelle: ace_captives + + Captives Settings + + + Controls settings for surrender and cable ties + + + Can handcuff own side + + + Can players cabletie units on their own side + + + Allow surrendering + + + Players can surrender after holstering their weapon + From 701aa7e343fdf12366c306a3e5d40b0f87141c62 Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Wed, 3 Jun 2015 00:55:20 -0500 Subject: [PATCH 2/3] Add New Icons --- addons/captives/CfgVehicles.hpp | 4 +++- addons/captives/UI/Icon_Module_settings_ca.paa | Bin 0 -> 5625 bytes addons/captives/UI/Surrender_ca.paa | Bin 0 -> 5625 bytes 3 files changed, 3 insertions(+), 1 deletion(-) create mode 100644 addons/captives/UI/Icon_Module_settings_ca.paa create mode 100644 addons/captives/UI/Surrender_ca.paa diff --git a/addons/captives/CfgVehicles.hpp b/addons/captives/CfgVehicles.hpp index 1c01a3b428..e795f4a53f 100644 --- a/addons/captives/CfgVehicles.hpp +++ b/addons/captives/CfgVehicles.hpp @@ -86,6 +86,7 @@ class CfgVehicles { exceptions[] = {}; showDisabled = 0; priority = 0; + icon = QUOTE(PATHTOF(UI\Surrender_ca.paa)); }; class ACE_StopSurrenderingSelf { displayName = "$STR_ACE_Captives_StopSurrendering"; @@ -94,6 +95,7 @@ class CfgVehicles { exceptions[] = {"isNotSurrendering"}; showDisabled = 0; priority = 0; + icon = QUOTE(PATHTOF(UI\Surrender_ca.paa)); }; }; }; @@ -182,7 +184,7 @@ class CfgVehicles { displayName = "$STR_ACE_Captives_ModuleSettings_DisplayName"; function = QFUNC(moduleSettings); scope = 2; - icon = QUOTE(PATHTOF(UI\Icon_Module_Make_Unit_Surrender_ca.paa)); + icon = QUOTE(PATHTOF(UI\Icon_Module_settings_ca.paa)); isGlobal = 1; class Arguments { class allowHandcuffOwnSide { diff --git a/addons/captives/UI/Icon_Module_settings_ca.paa b/addons/captives/UI/Icon_Module_settings_ca.paa new file mode 100644 index 0000000000000000000000000000000000000000..365f02cb21a3e4bc7c2a69ec942215ec6aa1fccb GIT binary patch literal 5625 zcmd^DdrVVT7(bNypo$>VpdwO*b%^+wE{sh~FL5h2Qz4ll{-Fj0gJ`I_EJkBkFBpe9 zqaDuaHkD2tA})d$?{raV=7z5g=jMY@v=}w0Q>o%aP4Vpe?&Vx=Zz*Wz{+Xw@rN4gf z$9d6%rlcg#n4FTHtR;jzefo5LL2~Z#2=bWsT_Rg;awC;$oc_< zY#K;N1H4~saD*cy6bwmXXb`{sTP$gl0(cqvDB(0Q@W}p=AR9h1e#!oWIzDDfp~4=q z#h8n|u-0tT`m^6{{J`KHkFS1jdt9+MR>e<{D+tMT0U-A0=ir7FEi0 zRsPlXeD!~JD zm;Np>CQz9lX#Oc3{f<-|3Vk-{f4}*axRw0)i+}#^>xKQ&;ZJ-0{o3zdpV}YDf0z0B zzth$Ec(pJ_i-YyIg#6?2IA6`h^7^0HB;+|WHeF}(hUI{TNC(5+=~L7D7NUISL`sjf z65_5LPy%>Q+i^-=(Avix3r+wwm4bSt_tDI{j{M2Mk95*!i~zWxt*#v>srA1o4p7Bw zX%XfLh7s?61tR#T0e=qO3kByoY`kUubx zfC_0muYEPY{)mt_*<^Xff%h`T1!V=q408*F}nWN|4P?SlA6 zdj4cstzV5lIJDFf4JAbX8$&}wNi8j*ziaG>9gT^xt7->76qN&BnPD>wsd+-_hQ;+r z4=Qv#9#e1J_EWpOE+_!cjpBG-`-8s5ek$}Z{)pz2)f7xHOlogUe(P$BmEqo}PHynj zR>=HAn$8Wolln~NKXRUW&KNx>82|J8bF5WgX(wOq5waqL9BDpOm%}_|@wjNn%8Vmx zZAEQ$8>D_u4-$_m?eRkWnKAh5&wjvmVP5njOB178k7BU*p}*Sun-Kdn^LBZ^ne;vN zB=+dwpM9r|Qmb3$U*AAeW5xVS^6RQ-3w^vuObEKue^q6qb8{Qii$x+i>5IkrZ~weh z$eJjx2Q=>JW8|cbSnsicj>ffL6y>w{XDK2^`aq+k8$W&ZOZIE2Fn2;iRy3mrUkdTm zSF|}8W*QhaG%vMWH(6R4-gvnpziu<;zw>y)T%w;;D}sUj$oiN+B4|Qs5Bj{FB0BpH+qcpEJBeU)hLYS6#cJ%c+*8` zOAe!l{#FuMcL3+N#Lpb`#V*w6-c8`LA>KDcOz99Y{vH^gEq-hvB^eq6JcvnI`rZzG zfE5Yw)lWr#JNP9We`}5Ur|ndA#gbmY-J*>v4A@J5^R8l#r? z#l42<75aVY-u5MW$1)v^{t0<<{^O3()MDYXgXK%jA0zX-FtrZ;5)C23Y*^MsJR**o ztMY{4bM1JiT3)Ond@%i2$f?a`PnKpdd@C|u`|+9iGQHoFsz_&LzPycnbP)C^Aq$o@ zw8!&98$zYpz-3sacdH+AG(u`Q>!gG$-u5A|}Ta z+XVCljKHhY8@2axZ!mi)_hH*f*dq5&xNCo;^9>u4MgG?=EL(SCQfJ#F#Lp9cMzbmV zJyUiz+SBi|m!CQf@|D4&{c;T{SH~Z-BVjHO#euXTuAodM9`;9u7d@;9mOTZ(*#97h z_IUVfu$ZzX`juA1WEPwRJLQ++359FMxrTFSrYf0-8Bg1;$S~XnQ z7|$^9M>$i&=8F_$Y^YgxRbS+XApIv0lj8 zYg)UG=^u1?^slFuTJ{ zF8Xh1m=NA`ka##1vF@-icT@r%ph2G3lkj<17CfA|s7^;nZ+LNpG{w&xo?g4~5>r#j z#cf%clzWlk-DLQjjB5st;ZkxU?47SB47vyta9CxF*^uPuD8O|~gAdY_k D7{me{ literal 0 HcmV?d00001 diff --git a/addons/captives/UI/Surrender_ca.paa b/addons/captives/UI/Surrender_ca.paa new file mode 100644 index 0000000000000000000000000000000000000000..6ddabf4d56044c139d8836f3ec08d3ac44ef3e89 GIT binary patch literal 5625 zcmeHLe^6A{6+S!`k+)%&7!#9VGHXKxmaN1iQk|HvXbT}iu!%U7#1yg9m@$~l^q);? zg6quk9Y3*&Ufy;=iYruT2WEKl7&S}3oHN-4u@xRTv1R;Si?rRsGy{fZ~}e^ zKUr8<=ElDnetw+>uxTp5Tekvq;pcyAZg2yjhiD^0<8QkEACH}nL@3^pQT(n&(|i%| z`&nwcTC?#}aW=Sh%j{i-R*sKV&;ni@jFGFH*R**SMJ0)dOX0^!qIo0KDzm7 z!aWiQYUIcX?dk~(FQ^FuFeA%^LsgZh?hV|r=5Xek!-TEY4c_k`duH{(q!st_{DOS( zjephlCJ((;OV7hfcFH0s{Y%C#1fDND@*8cu^v_tME`LgW?jgg!wq!<{aQET_iU*ga zB!n+a6?fDSJkdq^cgq0Bx`#fmy}CW0o?B6GvGQu^>4v+`(0HKs zSO$#vZgf7@`cb_4TsrZiUVp>4$Aj82JD<;k2YfjjBY)`q9g*X6rvNbT&~NKLh~lc1 zo~}zNWrxqyO~U$u@u!GFXi{jXll&_fB z@MQQKZ_M>GlRv0!yl^!ZPf#0NM!!`6*@%+z5%L6l3qz*69^v@Uhq3uCPBF%x>Jwvz73HG|^J8GrlOqa{-(~6tX|OWYw&$+S zmQ=ppK+($M^F0cS_9XMU;d#9DA)BJcuh_mbJ7gi-qPiD`DSmQ7AlT>PK_g9yk9H$K{v$kHVNyy^a5TM}EfK zCLdx&88JVV^1e9zpoITc@j0Gf@FKkjlpIlW>`AlYMOYA+T-a^u_dN5{rg;5YdHFT^ zM`C+Y(uC^wGiJ!=Msg{H(o!;m6h@J zAC&SD^J@ealP0kK;rfr802Du#yVwvJ__ALApX9hraV{OG?VDD+neXp(KD@K9VpDg8 zjq8^rSuQ+J6K1oG?3=Ja>iQe`{vUJB#~1mGc(w{F5S=54Rf=i3@sMf+*Qc|VJm@q-^ET}FIMeYlj#q6>*EcjUgGGY%rIiCPhYkL3E)!ma`SV7OT zfXP$#V@=Kf@-*SOGuNN(zh&Cig4wjK;c8l-s|+GTomr-A`EbRt-*$KQ<`ku^e-IAt4cc z@^(G^ENV+P>Q80ofxjYolwV|_!LJu0d6a*a)mw%9s9!HzcuKjpY=c0r^LV>1eik*x z8|TLW?)w7CaY+%T*DfVt&uc%7;#Ma>GU<^&KO+yFjU z|K7Uwb-en?AWKsZZTa$W_H^#X;S|Lu+SC;vsd_b#aCHh_{AyXp>+})=XP+nv7OWhY V&qv-2eD!hQc^<9g%*xWq{tZ!SLtg*@ literal 0 HcmV?d00001 From b46656610470faa3fbf1a7380cd50642b385a940 Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Thu, 4 Jun 2015 13:19:05 -0500 Subject: [PATCH 3/3] Switch to new CSTRING --- addons/captives/CfgVehicles.hpp | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/addons/captives/CfgVehicles.hpp b/addons/captives/CfgVehicles.hpp index bca2f5026b..bc70716236 100644 --- a/addons/captives/CfgVehicles.hpp +++ b/addons/captives/CfgVehicles.hpp @@ -181,27 +181,27 @@ class CfgVehicles { class GVAR(moduleSettings): ACE_Module { author = "$STR_ACE_Common_ACETeam"; category = "ACE"; - displayName = "$STR_ACE_Captives_ModuleSettings_DisplayName"; + displayName = CSTRING(ModuleSettings_DisplayName); function = QFUNC(moduleSettings); scope = 2; icon = QUOTE(PATHTOF(UI\Icon_Module_settings_ca.paa)); isGlobal = 1; class Arguments { class allowHandcuffOwnSide { - displayName = "$STR_ACE_Captives_ModuleSettings_handcuffSide_name"; - description = "$STR_ACE_Captives_ModuleSettings_handcuffSide_description"; + displayName = CSTRING(ModuleSettings_handcuffSide_name); + description = CSTRING(ModuleSettings_handcuffSide_description); typeName = "BOOL"; defaultValue = 1; }; class allowSurrender { - displayName = "$STR_ACE_Captives_ModuleSettings_allowSurrender_name"; - description = "$STR_ACE_Captives_ModuleSettings_allowSurrender_description"; + displayName = CSTRING(ModuleSettings_allowSurrender_name); + description = CSTRING(ModuleSettings_allowSurrender_description); typeName = "BOOL"; defaultValue = 1; }; }; class ModuleDescription: ModuleDescription { - description = "$STR_ACE_Captives_ModuleSettings_Description"; + description = CSTRING(ModuleSettings_Description); sync[] = {}; }; };