diff --git a/addons/ballistics/CfgWeapons.hpp b/addons/ballistics/CfgWeapons.hpp index 1cd705f63f..8586aa8216 100644 --- a/addons/ballistics/CfgWeapons.hpp +++ b/addons/ballistics/CfgWeapons.hpp @@ -1,7 +1,3 @@ - -class Single; -class Burst; -class FullAuto; class Mode_SemiAuto; class Mode_Burst; class Mode_FullAuto; @@ -90,7 +86,10 @@ class CfgWeapons { /* MX */ - class arifle_MX_Base_F: Rifle_Base_F {}; + class arifle_MX_Base_F: Rifle_Base_F { + class Single: Mode_SemiAuto {}; + class FullAuto: Mode_FullAuto {}; + }; class arifle_MX_SW_F: arifle_MX_Base_F { magazines[] = { "100Rnd_65x39_caseless_mag_Tracer", diff --git a/addons/dogtags/CfgEventHandlers.hpp b/addons/dogtags/CfgEventHandlers.hpp new file mode 100644 index 0000000000..e90bed419e --- /dev/null +++ b/addons/dogtags/CfgEventHandlers.hpp @@ -0,0 +1,15 @@ +class Extended_PreStart_EventHandlers { + class ADDON { + init = QUOTE(call COMPILE_FILE(XEH_preStart)); + }; +}; +class Extended_PreInit_EventHandlers { + class ADDON { + init = QUOTE(call COMPILE_FILE(XEH_preInit)); + }; +}; +class Extended_PostInit_EventHandlers { + class ADDON { + init = QUOTE(call COMPILE_FILE(XEH_postInit)); + }; +}; diff --git a/addons/dogtags/CfgVehicles.hpp b/addons/dogtags/CfgVehicles.hpp new file mode 100644 index 0000000000..9757ac1c53 --- /dev/null +++ b/addons/dogtags/CfgVehicles.hpp @@ -0,0 +1,43 @@ +class CfgVehicles { + class Man; + class CAManBase: Man { + class ACE_Actions { + class ACE_MainActions { + class ACE_Dogtag { + displayName = CSTRING(itemName); + condition = ""; + statement = ""; + showDisabled = 0; + priority = 3; + icon = QPATHTOF(data\dogtag_icon_ca.paa); + class ACE_CheckDogtag { + displayName = CSTRING(checkDogtag); + condition = QUOTE([ARR_2(_player,_target)] call FUNC(canCheckDogtag)); + statement = QUOTE([ARR_2(_player,_target)] call FUNC(checkDogtag)); + showDisabled = 0; + priority = 3; + icon = QPATHTOF(data\dogtag_icon_ca.paa); + }; + class ACE_TakeDogtag { + displayName = CSTRING(takeDogtag); + condition = QUOTE([ARR_2(_player,_target)] call FUNC(canTakeDogtag)); + statement = QUOTE([ARR_2(_player,_target)] call FUNC(takeDogtag)); + showDisabled = 0; + priority = 3; + icon = QPATHTOF(data\dogtag_icon_ca.paa); + }; + }; + }; + }; + class ACE_SelfActions { + class ACE_Equipment { + class ACE_CheckDogtags { + displayName = CSTRING(checkItem); + condition = "true"; + statement = ""; + insertChildren = QUOTE(_this call DFUNC(addDogtagActions)); + }; + }; + }; + }; +}; diff --git a/addons/dogtags/CfgWeapons.hpp b/addons/dogtags/CfgWeapons.hpp new file mode 100644 index 0000000000..4e37db74db --- /dev/null +++ b/addons/dogtags/CfgWeapons.hpp @@ -0,0 +1,1025 @@ +#define ACE_DOGTAG_ITEM(DOGTAGBASE,DOGTAGID) \ + class DOGTAGBASE##_##DOGTAGID : DOGTAGBASE { \ + author = ECSTRING(common,ACETeam); \ + scope = 1; \ + scopeArsenal = 0; \ + scopeCurator = 0; \ + descriptionShort = QUOTE(DOGTAGID); \ + GVAR(tagID) = DOGTAGID; \ + } + +class CfgWeapons { + class ACE_ItemCore; + class InventoryItem_Base_F; + + class ACE_dogtag: ACE_ItemCore { + author = ECSTRING(common,ACETeam); + scope = 0; + displayName = CSTRING(itemName); + model = QUOTE(PATHTOF(data\ace_dogtag.p3d)); + picture = QUOTE(PATHTOF(data\dogtagSingle.paa)); + class ItemInfo: InventoryItem_Base_F { + mass = 0; //too small to for 1 ? + }; + }; + ACE_DOGTAG_ITEM(ACE_dogtag,1); + ACE_DOGTAG_ITEM(ACE_dogtag,2); + ACE_DOGTAG_ITEM(ACE_dogtag,3); + ACE_DOGTAG_ITEM(ACE_dogtag,4); + ACE_DOGTAG_ITEM(ACE_dogtag,5); + ACE_DOGTAG_ITEM(ACE_dogtag,6); + ACE_DOGTAG_ITEM(ACE_dogtag,7); + ACE_DOGTAG_ITEM(ACE_dogtag,8); + ACE_DOGTAG_ITEM(ACE_dogtag,9); + ACE_DOGTAG_ITEM(ACE_dogtag,10); + ACE_DOGTAG_ITEM(ACE_dogtag,11); + ACE_DOGTAG_ITEM(ACE_dogtag,12); + ACE_DOGTAG_ITEM(ACE_dogtag,13); + ACE_DOGTAG_ITEM(ACE_dogtag,14); + ACE_DOGTAG_ITEM(ACE_dogtag,15); + ACE_DOGTAG_ITEM(ACE_dogtag,16); + ACE_DOGTAG_ITEM(ACE_dogtag,17); + ACE_DOGTAG_ITEM(ACE_dogtag,18); + ACE_DOGTAG_ITEM(ACE_dogtag,19); + ACE_DOGTAG_ITEM(ACE_dogtag,20); + ACE_DOGTAG_ITEM(ACE_dogtag,21); + ACE_DOGTAG_ITEM(ACE_dogtag,22); + ACE_DOGTAG_ITEM(ACE_dogtag,23); + ACE_DOGTAG_ITEM(ACE_dogtag,24); + ACE_DOGTAG_ITEM(ACE_dogtag,25); + ACE_DOGTAG_ITEM(ACE_dogtag,26); + ACE_DOGTAG_ITEM(ACE_dogtag,27); + ACE_DOGTAG_ITEM(ACE_dogtag,28); + ACE_DOGTAG_ITEM(ACE_dogtag,29); + ACE_DOGTAG_ITEM(ACE_dogtag,30); + ACE_DOGTAG_ITEM(ACE_dogtag,31); + ACE_DOGTAG_ITEM(ACE_dogtag,32); + ACE_DOGTAG_ITEM(ACE_dogtag,33); + ACE_DOGTAG_ITEM(ACE_dogtag,34); + ACE_DOGTAG_ITEM(ACE_dogtag,35); + ACE_DOGTAG_ITEM(ACE_dogtag,36); + ACE_DOGTAG_ITEM(ACE_dogtag,37); + ACE_DOGTAG_ITEM(ACE_dogtag,38); + ACE_DOGTAG_ITEM(ACE_dogtag,39); + ACE_DOGTAG_ITEM(ACE_dogtag,40); + ACE_DOGTAG_ITEM(ACE_dogtag,41); + ACE_DOGTAG_ITEM(ACE_dogtag,42); + ACE_DOGTAG_ITEM(ACE_dogtag,43); + ACE_DOGTAG_ITEM(ACE_dogtag,44); + ACE_DOGTAG_ITEM(ACE_dogtag,45); + ACE_DOGTAG_ITEM(ACE_dogtag,46); + ACE_DOGTAG_ITEM(ACE_dogtag,47); + ACE_DOGTAG_ITEM(ACE_dogtag,48); + ACE_DOGTAG_ITEM(ACE_dogtag,49); + ACE_DOGTAG_ITEM(ACE_dogtag,50); + ACE_DOGTAG_ITEM(ACE_dogtag,51); + ACE_DOGTAG_ITEM(ACE_dogtag,52); + ACE_DOGTAG_ITEM(ACE_dogtag,53); + ACE_DOGTAG_ITEM(ACE_dogtag,54); + ACE_DOGTAG_ITEM(ACE_dogtag,55); + ACE_DOGTAG_ITEM(ACE_dogtag,56); + ACE_DOGTAG_ITEM(ACE_dogtag,57); + ACE_DOGTAG_ITEM(ACE_dogtag,58); + ACE_DOGTAG_ITEM(ACE_dogtag,59); + ACE_DOGTAG_ITEM(ACE_dogtag,60); + ACE_DOGTAG_ITEM(ACE_dogtag,61); + ACE_DOGTAG_ITEM(ACE_dogtag,62); + ACE_DOGTAG_ITEM(ACE_dogtag,63); + ACE_DOGTAG_ITEM(ACE_dogtag,64); + ACE_DOGTAG_ITEM(ACE_dogtag,65); + ACE_DOGTAG_ITEM(ACE_dogtag,66); + ACE_DOGTAG_ITEM(ACE_dogtag,67); + ACE_DOGTAG_ITEM(ACE_dogtag,68); + ACE_DOGTAG_ITEM(ACE_dogtag,69); + ACE_DOGTAG_ITEM(ACE_dogtag,70); + ACE_DOGTAG_ITEM(ACE_dogtag,71); + ACE_DOGTAG_ITEM(ACE_dogtag,72); + ACE_DOGTAG_ITEM(ACE_dogtag,73); + ACE_DOGTAG_ITEM(ACE_dogtag,74); + ACE_DOGTAG_ITEM(ACE_dogtag,75); + ACE_DOGTAG_ITEM(ACE_dogtag,76); + ACE_DOGTAG_ITEM(ACE_dogtag,77); + ACE_DOGTAG_ITEM(ACE_dogtag,78); + ACE_DOGTAG_ITEM(ACE_dogtag,79); + ACE_DOGTAG_ITEM(ACE_dogtag,80); + ACE_DOGTAG_ITEM(ACE_dogtag,81); + ACE_DOGTAG_ITEM(ACE_dogtag,82); + ACE_DOGTAG_ITEM(ACE_dogtag,83); + ACE_DOGTAG_ITEM(ACE_dogtag,84); + ACE_DOGTAG_ITEM(ACE_dogtag,85); + ACE_DOGTAG_ITEM(ACE_dogtag,86); + ACE_DOGTAG_ITEM(ACE_dogtag,87); + ACE_DOGTAG_ITEM(ACE_dogtag,88); + ACE_DOGTAG_ITEM(ACE_dogtag,89); + ACE_DOGTAG_ITEM(ACE_dogtag,90); + ACE_DOGTAG_ITEM(ACE_dogtag,91); + ACE_DOGTAG_ITEM(ACE_dogtag,92); + ACE_DOGTAG_ITEM(ACE_dogtag,93); + ACE_DOGTAG_ITEM(ACE_dogtag,94); + ACE_DOGTAG_ITEM(ACE_dogtag,95); + ACE_DOGTAG_ITEM(ACE_dogtag,96); + ACE_DOGTAG_ITEM(ACE_dogtag,97); + ACE_DOGTAG_ITEM(ACE_dogtag,98); + ACE_DOGTAG_ITEM(ACE_dogtag,99); + ACE_DOGTAG_ITEM(ACE_dogtag,100); + ACE_DOGTAG_ITEM(ACE_dogtag,101); + ACE_DOGTAG_ITEM(ACE_dogtag,102); + ACE_DOGTAG_ITEM(ACE_dogtag,103); + ACE_DOGTAG_ITEM(ACE_dogtag,104); + ACE_DOGTAG_ITEM(ACE_dogtag,105); + ACE_DOGTAG_ITEM(ACE_dogtag,106); + ACE_DOGTAG_ITEM(ACE_dogtag,107); + ACE_DOGTAG_ITEM(ACE_dogtag,108); + ACE_DOGTAG_ITEM(ACE_dogtag,109); + ACE_DOGTAG_ITEM(ACE_dogtag,110); + ACE_DOGTAG_ITEM(ACE_dogtag,111); + ACE_DOGTAG_ITEM(ACE_dogtag,112); + ACE_DOGTAG_ITEM(ACE_dogtag,113); + ACE_DOGTAG_ITEM(ACE_dogtag,114); + ACE_DOGTAG_ITEM(ACE_dogtag,115); + ACE_DOGTAG_ITEM(ACE_dogtag,116); + ACE_DOGTAG_ITEM(ACE_dogtag,117); + ACE_DOGTAG_ITEM(ACE_dogtag,118); + ACE_DOGTAG_ITEM(ACE_dogtag,119); + ACE_DOGTAG_ITEM(ACE_dogtag,120); + ACE_DOGTAG_ITEM(ACE_dogtag,121); + ACE_DOGTAG_ITEM(ACE_dogtag,122); + ACE_DOGTAG_ITEM(ACE_dogtag,123); + ACE_DOGTAG_ITEM(ACE_dogtag,124); + ACE_DOGTAG_ITEM(ACE_dogtag,125); + ACE_DOGTAG_ITEM(ACE_dogtag,126); + ACE_DOGTAG_ITEM(ACE_dogtag,127); + ACE_DOGTAG_ITEM(ACE_dogtag,128); + ACE_DOGTAG_ITEM(ACE_dogtag,129); + ACE_DOGTAG_ITEM(ACE_dogtag,130); + ACE_DOGTAG_ITEM(ACE_dogtag,131); + ACE_DOGTAG_ITEM(ACE_dogtag,132); + ACE_DOGTAG_ITEM(ACE_dogtag,133); + ACE_DOGTAG_ITEM(ACE_dogtag,134); + ACE_DOGTAG_ITEM(ACE_dogtag,135); + ACE_DOGTAG_ITEM(ACE_dogtag,136); + ACE_DOGTAG_ITEM(ACE_dogtag,137); + ACE_DOGTAG_ITEM(ACE_dogtag,138); + ACE_DOGTAG_ITEM(ACE_dogtag,139); + ACE_DOGTAG_ITEM(ACE_dogtag,140); + ACE_DOGTAG_ITEM(ACE_dogtag,141); + ACE_DOGTAG_ITEM(ACE_dogtag,142); + ACE_DOGTAG_ITEM(ACE_dogtag,143); + ACE_DOGTAG_ITEM(ACE_dogtag,144); + ACE_DOGTAG_ITEM(ACE_dogtag,145); + ACE_DOGTAG_ITEM(ACE_dogtag,146); + ACE_DOGTAG_ITEM(ACE_dogtag,147); + ACE_DOGTAG_ITEM(ACE_dogtag,148); + ACE_DOGTAG_ITEM(ACE_dogtag,149); + ACE_DOGTAG_ITEM(ACE_dogtag,150); + ACE_DOGTAG_ITEM(ACE_dogtag,151); + ACE_DOGTAG_ITEM(ACE_dogtag,152); + ACE_DOGTAG_ITEM(ACE_dogtag,153); + ACE_DOGTAG_ITEM(ACE_dogtag,154); + ACE_DOGTAG_ITEM(ACE_dogtag,155); + ACE_DOGTAG_ITEM(ACE_dogtag,156); + ACE_DOGTAG_ITEM(ACE_dogtag,157); + ACE_DOGTAG_ITEM(ACE_dogtag,158); + ACE_DOGTAG_ITEM(ACE_dogtag,159); + ACE_DOGTAG_ITEM(ACE_dogtag,160); + ACE_DOGTAG_ITEM(ACE_dogtag,161); + ACE_DOGTAG_ITEM(ACE_dogtag,162); + ACE_DOGTAG_ITEM(ACE_dogtag,163); + ACE_DOGTAG_ITEM(ACE_dogtag,164); + ACE_DOGTAG_ITEM(ACE_dogtag,165); + ACE_DOGTAG_ITEM(ACE_dogtag,166); + ACE_DOGTAG_ITEM(ACE_dogtag,167); + ACE_DOGTAG_ITEM(ACE_dogtag,168); + ACE_DOGTAG_ITEM(ACE_dogtag,169); + ACE_DOGTAG_ITEM(ACE_dogtag,170); + ACE_DOGTAG_ITEM(ACE_dogtag,171); + ACE_DOGTAG_ITEM(ACE_dogtag,172); + ACE_DOGTAG_ITEM(ACE_dogtag,173); + ACE_DOGTAG_ITEM(ACE_dogtag,174); + ACE_DOGTAG_ITEM(ACE_dogtag,175); + ACE_DOGTAG_ITEM(ACE_dogtag,176); + ACE_DOGTAG_ITEM(ACE_dogtag,177); + ACE_DOGTAG_ITEM(ACE_dogtag,178); + ACE_DOGTAG_ITEM(ACE_dogtag,179); + ACE_DOGTAG_ITEM(ACE_dogtag,180); + ACE_DOGTAG_ITEM(ACE_dogtag,181); + ACE_DOGTAG_ITEM(ACE_dogtag,182); + ACE_DOGTAG_ITEM(ACE_dogtag,183); + ACE_DOGTAG_ITEM(ACE_dogtag,184); + ACE_DOGTAG_ITEM(ACE_dogtag,185); + ACE_DOGTAG_ITEM(ACE_dogtag,186); + ACE_DOGTAG_ITEM(ACE_dogtag,187); + ACE_DOGTAG_ITEM(ACE_dogtag,188); + ACE_DOGTAG_ITEM(ACE_dogtag,189); + ACE_DOGTAG_ITEM(ACE_dogtag,190); + ACE_DOGTAG_ITEM(ACE_dogtag,191); + ACE_DOGTAG_ITEM(ACE_dogtag,192); + ACE_DOGTAG_ITEM(ACE_dogtag,193); + ACE_DOGTAG_ITEM(ACE_dogtag,194); + ACE_DOGTAG_ITEM(ACE_dogtag,195); + ACE_DOGTAG_ITEM(ACE_dogtag,196); + ACE_DOGTAG_ITEM(ACE_dogtag,197); + ACE_DOGTAG_ITEM(ACE_dogtag,198); + ACE_DOGTAG_ITEM(ACE_dogtag,199); + ACE_DOGTAG_ITEM(ACE_dogtag,200); + ACE_DOGTAG_ITEM(ACE_dogtag,201); + ACE_DOGTAG_ITEM(ACE_dogtag,202); + ACE_DOGTAG_ITEM(ACE_dogtag,203); + ACE_DOGTAG_ITEM(ACE_dogtag,204); + ACE_DOGTAG_ITEM(ACE_dogtag,205); + ACE_DOGTAG_ITEM(ACE_dogtag,206); + ACE_DOGTAG_ITEM(ACE_dogtag,207); + ACE_DOGTAG_ITEM(ACE_dogtag,208); + ACE_DOGTAG_ITEM(ACE_dogtag,209); + ACE_DOGTAG_ITEM(ACE_dogtag,210); + ACE_DOGTAG_ITEM(ACE_dogtag,211); + ACE_DOGTAG_ITEM(ACE_dogtag,212); + ACE_DOGTAG_ITEM(ACE_dogtag,213); + ACE_DOGTAG_ITEM(ACE_dogtag,214); + ACE_DOGTAG_ITEM(ACE_dogtag,215); + ACE_DOGTAG_ITEM(ACE_dogtag,216); + ACE_DOGTAG_ITEM(ACE_dogtag,217); + ACE_DOGTAG_ITEM(ACE_dogtag,218); + ACE_DOGTAG_ITEM(ACE_dogtag,219); + ACE_DOGTAG_ITEM(ACE_dogtag,220); + ACE_DOGTAG_ITEM(ACE_dogtag,221); + ACE_DOGTAG_ITEM(ACE_dogtag,222); + ACE_DOGTAG_ITEM(ACE_dogtag,223); + ACE_DOGTAG_ITEM(ACE_dogtag,224); + ACE_DOGTAG_ITEM(ACE_dogtag,225); + ACE_DOGTAG_ITEM(ACE_dogtag,226); + ACE_DOGTAG_ITEM(ACE_dogtag,227); + ACE_DOGTAG_ITEM(ACE_dogtag,228); + ACE_DOGTAG_ITEM(ACE_dogtag,229); + ACE_DOGTAG_ITEM(ACE_dogtag,230); + ACE_DOGTAG_ITEM(ACE_dogtag,231); + ACE_DOGTAG_ITEM(ACE_dogtag,232); + ACE_DOGTAG_ITEM(ACE_dogtag,233); + ACE_DOGTAG_ITEM(ACE_dogtag,234); + ACE_DOGTAG_ITEM(ACE_dogtag,235); + ACE_DOGTAG_ITEM(ACE_dogtag,236); + ACE_DOGTAG_ITEM(ACE_dogtag,237); + ACE_DOGTAG_ITEM(ACE_dogtag,238); + ACE_DOGTAG_ITEM(ACE_dogtag,239); + ACE_DOGTAG_ITEM(ACE_dogtag,240); + ACE_DOGTAG_ITEM(ACE_dogtag,241); + ACE_DOGTAG_ITEM(ACE_dogtag,242); + ACE_DOGTAG_ITEM(ACE_dogtag,243); + ACE_DOGTAG_ITEM(ACE_dogtag,244); + ACE_DOGTAG_ITEM(ACE_dogtag,245); + ACE_DOGTAG_ITEM(ACE_dogtag,246); + ACE_DOGTAG_ITEM(ACE_dogtag,247); + ACE_DOGTAG_ITEM(ACE_dogtag,248); + ACE_DOGTAG_ITEM(ACE_dogtag,249); + ACE_DOGTAG_ITEM(ACE_dogtag,250); + ACE_DOGTAG_ITEM(ACE_dogtag,251); + ACE_DOGTAG_ITEM(ACE_dogtag,252); + ACE_DOGTAG_ITEM(ACE_dogtag,253); + ACE_DOGTAG_ITEM(ACE_dogtag,254); + ACE_DOGTAG_ITEM(ACE_dogtag,255); + ACE_DOGTAG_ITEM(ACE_dogtag,256); + ACE_DOGTAG_ITEM(ACE_dogtag,257); + ACE_DOGTAG_ITEM(ACE_dogtag,258); + ACE_DOGTAG_ITEM(ACE_dogtag,259); + ACE_DOGTAG_ITEM(ACE_dogtag,260); + ACE_DOGTAG_ITEM(ACE_dogtag,261); + ACE_DOGTAG_ITEM(ACE_dogtag,262); + ACE_DOGTAG_ITEM(ACE_dogtag,263); + ACE_DOGTAG_ITEM(ACE_dogtag,264); + ACE_DOGTAG_ITEM(ACE_dogtag,265); + ACE_DOGTAG_ITEM(ACE_dogtag,266); + ACE_DOGTAG_ITEM(ACE_dogtag,267); + ACE_DOGTAG_ITEM(ACE_dogtag,268); + ACE_DOGTAG_ITEM(ACE_dogtag,269); + ACE_DOGTAG_ITEM(ACE_dogtag,270); + ACE_DOGTAG_ITEM(ACE_dogtag,271); + ACE_DOGTAG_ITEM(ACE_dogtag,272); + ACE_DOGTAG_ITEM(ACE_dogtag,273); + ACE_DOGTAG_ITEM(ACE_dogtag,274); + ACE_DOGTAG_ITEM(ACE_dogtag,275); + ACE_DOGTAG_ITEM(ACE_dogtag,276); + ACE_DOGTAG_ITEM(ACE_dogtag,277); + ACE_DOGTAG_ITEM(ACE_dogtag,278); + ACE_DOGTAG_ITEM(ACE_dogtag,279); + ACE_DOGTAG_ITEM(ACE_dogtag,280); + ACE_DOGTAG_ITEM(ACE_dogtag,281); + ACE_DOGTAG_ITEM(ACE_dogtag,282); + ACE_DOGTAG_ITEM(ACE_dogtag,283); + ACE_DOGTAG_ITEM(ACE_dogtag,284); + ACE_DOGTAG_ITEM(ACE_dogtag,285); + ACE_DOGTAG_ITEM(ACE_dogtag,286); + ACE_DOGTAG_ITEM(ACE_dogtag,287); + ACE_DOGTAG_ITEM(ACE_dogtag,288); + ACE_DOGTAG_ITEM(ACE_dogtag,289); + ACE_DOGTAG_ITEM(ACE_dogtag,290); + ACE_DOGTAG_ITEM(ACE_dogtag,291); + ACE_DOGTAG_ITEM(ACE_dogtag,292); + ACE_DOGTAG_ITEM(ACE_dogtag,293); + ACE_DOGTAG_ITEM(ACE_dogtag,294); + ACE_DOGTAG_ITEM(ACE_dogtag,295); + ACE_DOGTAG_ITEM(ACE_dogtag,296); + ACE_DOGTAG_ITEM(ACE_dogtag,297); + ACE_DOGTAG_ITEM(ACE_dogtag,298); + ACE_DOGTAG_ITEM(ACE_dogtag,299); + ACE_DOGTAG_ITEM(ACE_dogtag,300); + ACE_DOGTAG_ITEM(ACE_dogtag,301); + ACE_DOGTAG_ITEM(ACE_dogtag,302); + ACE_DOGTAG_ITEM(ACE_dogtag,303); + ACE_DOGTAG_ITEM(ACE_dogtag,304); + ACE_DOGTAG_ITEM(ACE_dogtag,305); + ACE_DOGTAG_ITEM(ACE_dogtag,306); + ACE_DOGTAG_ITEM(ACE_dogtag,307); + ACE_DOGTAG_ITEM(ACE_dogtag,308); + ACE_DOGTAG_ITEM(ACE_dogtag,309); + ACE_DOGTAG_ITEM(ACE_dogtag,310); + ACE_DOGTAG_ITEM(ACE_dogtag,311); + ACE_DOGTAG_ITEM(ACE_dogtag,312); + ACE_DOGTAG_ITEM(ACE_dogtag,313); + ACE_DOGTAG_ITEM(ACE_dogtag,314); + ACE_DOGTAG_ITEM(ACE_dogtag,315); + ACE_DOGTAG_ITEM(ACE_dogtag,316); + ACE_DOGTAG_ITEM(ACE_dogtag,317); + ACE_DOGTAG_ITEM(ACE_dogtag,318); + ACE_DOGTAG_ITEM(ACE_dogtag,319); + ACE_DOGTAG_ITEM(ACE_dogtag,320); + ACE_DOGTAG_ITEM(ACE_dogtag,321); + ACE_DOGTAG_ITEM(ACE_dogtag,322); + ACE_DOGTAG_ITEM(ACE_dogtag,323); + ACE_DOGTAG_ITEM(ACE_dogtag,324); + ACE_DOGTAG_ITEM(ACE_dogtag,325); + ACE_DOGTAG_ITEM(ACE_dogtag,326); + ACE_DOGTAG_ITEM(ACE_dogtag,327); + ACE_DOGTAG_ITEM(ACE_dogtag,328); + ACE_DOGTAG_ITEM(ACE_dogtag,329); + ACE_DOGTAG_ITEM(ACE_dogtag,330); + ACE_DOGTAG_ITEM(ACE_dogtag,331); + ACE_DOGTAG_ITEM(ACE_dogtag,332); + ACE_DOGTAG_ITEM(ACE_dogtag,333); + ACE_DOGTAG_ITEM(ACE_dogtag,334); + ACE_DOGTAG_ITEM(ACE_dogtag,335); + ACE_DOGTAG_ITEM(ACE_dogtag,336); + ACE_DOGTAG_ITEM(ACE_dogtag,337); + ACE_DOGTAG_ITEM(ACE_dogtag,338); + ACE_DOGTAG_ITEM(ACE_dogtag,339); + ACE_DOGTAG_ITEM(ACE_dogtag,340); + ACE_DOGTAG_ITEM(ACE_dogtag,341); + ACE_DOGTAG_ITEM(ACE_dogtag,342); + ACE_DOGTAG_ITEM(ACE_dogtag,343); + ACE_DOGTAG_ITEM(ACE_dogtag,344); + ACE_DOGTAG_ITEM(ACE_dogtag,345); + ACE_DOGTAG_ITEM(ACE_dogtag,346); + ACE_DOGTAG_ITEM(ACE_dogtag,347); + ACE_DOGTAG_ITEM(ACE_dogtag,348); + ACE_DOGTAG_ITEM(ACE_dogtag,349); + ACE_DOGTAG_ITEM(ACE_dogtag,350); + ACE_DOGTAG_ITEM(ACE_dogtag,351); + ACE_DOGTAG_ITEM(ACE_dogtag,352); + ACE_DOGTAG_ITEM(ACE_dogtag,353); + ACE_DOGTAG_ITEM(ACE_dogtag,354); + ACE_DOGTAG_ITEM(ACE_dogtag,355); + ACE_DOGTAG_ITEM(ACE_dogtag,356); + ACE_DOGTAG_ITEM(ACE_dogtag,357); + ACE_DOGTAG_ITEM(ACE_dogtag,358); + ACE_DOGTAG_ITEM(ACE_dogtag,359); + ACE_DOGTAG_ITEM(ACE_dogtag,360); + ACE_DOGTAG_ITEM(ACE_dogtag,361); + ACE_DOGTAG_ITEM(ACE_dogtag,362); + ACE_DOGTAG_ITEM(ACE_dogtag,363); + ACE_DOGTAG_ITEM(ACE_dogtag,364); + ACE_DOGTAG_ITEM(ACE_dogtag,365); + ACE_DOGTAG_ITEM(ACE_dogtag,366); + ACE_DOGTAG_ITEM(ACE_dogtag,367); + ACE_DOGTAG_ITEM(ACE_dogtag,368); + ACE_DOGTAG_ITEM(ACE_dogtag,369); + ACE_DOGTAG_ITEM(ACE_dogtag,370); + ACE_DOGTAG_ITEM(ACE_dogtag,371); + ACE_DOGTAG_ITEM(ACE_dogtag,372); + ACE_DOGTAG_ITEM(ACE_dogtag,373); + ACE_DOGTAG_ITEM(ACE_dogtag,374); + ACE_DOGTAG_ITEM(ACE_dogtag,375); + ACE_DOGTAG_ITEM(ACE_dogtag,376); + ACE_DOGTAG_ITEM(ACE_dogtag,377); + ACE_DOGTAG_ITEM(ACE_dogtag,378); + ACE_DOGTAG_ITEM(ACE_dogtag,379); + ACE_DOGTAG_ITEM(ACE_dogtag,380); + ACE_DOGTAG_ITEM(ACE_dogtag,381); + ACE_DOGTAG_ITEM(ACE_dogtag,382); + ACE_DOGTAG_ITEM(ACE_dogtag,383); + ACE_DOGTAG_ITEM(ACE_dogtag,384); + ACE_DOGTAG_ITEM(ACE_dogtag,385); + ACE_DOGTAG_ITEM(ACE_dogtag,386); + ACE_DOGTAG_ITEM(ACE_dogtag,387); + ACE_DOGTAG_ITEM(ACE_dogtag,388); + ACE_DOGTAG_ITEM(ACE_dogtag,389); + ACE_DOGTAG_ITEM(ACE_dogtag,390); + ACE_DOGTAG_ITEM(ACE_dogtag,391); + ACE_DOGTAG_ITEM(ACE_dogtag,392); + ACE_DOGTAG_ITEM(ACE_dogtag,393); + ACE_DOGTAG_ITEM(ACE_dogtag,394); + ACE_DOGTAG_ITEM(ACE_dogtag,395); + ACE_DOGTAG_ITEM(ACE_dogtag,396); + ACE_DOGTAG_ITEM(ACE_dogtag,397); + ACE_DOGTAG_ITEM(ACE_dogtag,398); + ACE_DOGTAG_ITEM(ACE_dogtag,399); + ACE_DOGTAG_ITEM(ACE_dogtag,400); + ACE_DOGTAG_ITEM(ACE_dogtag,401); + ACE_DOGTAG_ITEM(ACE_dogtag,402); + ACE_DOGTAG_ITEM(ACE_dogtag,403); + ACE_DOGTAG_ITEM(ACE_dogtag,404); + ACE_DOGTAG_ITEM(ACE_dogtag,405); + ACE_DOGTAG_ITEM(ACE_dogtag,406); + ACE_DOGTAG_ITEM(ACE_dogtag,407); + ACE_DOGTAG_ITEM(ACE_dogtag,408); + ACE_DOGTAG_ITEM(ACE_dogtag,409); + ACE_DOGTAG_ITEM(ACE_dogtag,410); + ACE_DOGTAG_ITEM(ACE_dogtag,411); + ACE_DOGTAG_ITEM(ACE_dogtag,412); + ACE_DOGTAG_ITEM(ACE_dogtag,413); + ACE_DOGTAG_ITEM(ACE_dogtag,414); + ACE_DOGTAG_ITEM(ACE_dogtag,415); + ACE_DOGTAG_ITEM(ACE_dogtag,416); + ACE_DOGTAG_ITEM(ACE_dogtag,417); + ACE_DOGTAG_ITEM(ACE_dogtag,418); + ACE_DOGTAG_ITEM(ACE_dogtag,419); + ACE_DOGTAG_ITEM(ACE_dogtag,420); + ACE_DOGTAG_ITEM(ACE_dogtag,421); + ACE_DOGTAG_ITEM(ACE_dogtag,422); + ACE_DOGTAG_ITEM(ACE_dogtag,423); + ACE_DOGTAG_ITEM(ACE_dogtag,424); + ACE_DOGTAG_ITEM(ACE_dogtag,425); + ACE_DOGTAG_ITEM(ACE_dogtag,426); + ACE_DOGTAG_ITEM(ACE_dogtag,427); + ACE_DOGTAG_ITEM(ACE_dogtag,428); + ACE_DOGTAG_ITEM(ACE_dogtag,429); + ACE_DOGTAG_ITEM(ACE_dogtag,430); + ACE_DOGTAG_ITEM(ACE_dogtag,431); + ACE_DOGTAG_ITEM(ACE_dogtag,432); + ACE_DOGTAG_ITEM(ACE_dogtag,433); + ACE_DOGTAG_ITEM(ACE_dogtag,434); + ACE_DOGTAG_ITEM(ACE_dogtag,435); + ACE_DOGTAG_ITEM(ACE_dogtag,436); + ACE_DOGTAG_ITEM(ACE_dogtag,437); + ACE_DOGTAG_ITEM(ACE_dogtag,438); + ACE_DOGTAG_ITEM(ACE_dogtag,439); + ACE_DOGTAG_ITEM(ACE_dogtag,440); + ACE_DOGTAG_ITEM(ACE_dogtag,441); + ACE_DOGTAG_ITEM(ACE_dogtag,442); + ACE_DOGTAG_ITEM(ACE_dogtag,443); + ACE_DOGTAG_ITEM(ACE_dogtag,444); + ACE_DOGTAG_ITEM(ACE_dogtag,445); + ACE_DOGTAG_ITEM(ACE_dogtag,446); + ACE_DOGTAG_ITEM(ACE_dogtag,447); + ACE_DOGTAG_ITEM(ACE_dogtag,448); + ACE_DOGTAG_ITEM(ACE_dogtag,449); + ACE_DOGTAG_ITEM(ACE_dogtag,450); + ACE_DOGTAG_ITEM(ACE_dogtag,451); + ACE_DOGTAG_ITEM(ACE_dogtag,452); + ACE_DOGTAG_ITEM(ACE_dogtag,453); + ACE_DOGTAG_ITEM(ACE_dogtag,454); + ACE_DOGTAG_ITEM(ACE_dogtag,455); + ACE_DOGTAG_ITEM(ACE_dogtag,456); + ACE_DOGTAG_ITEM(ACE_dogtag,457); + ACE_DOGTAG_ITEM(ACE_dogtag,458); + ACE_DOGTAG_ITEM(ACE_dogtag,459); + ACE_DOGTAG_ITEM(ACE_dogtag,460); + ACE_DOGTAG_ITEM(ACE_dogtag,461); + ACE_DOGTAG_ITEM(ACE_dogtag,462); + ACE_DOGTAG_ITEM(ACE_dogtag,463); + ACE_DOGTAG_ITEM(ACE_dogtag,464); + ACE_DOGTAG_ITEM(ACE_dogtag,465); + ACE_DOGTAG_ITEM(ACE_dogtag,466); + ACE_DOGTAG_ITEM(ACE_dogtag,467); + ACE_DOGTAG_ITEM(ACE_dogtag,468); + ACE_DOGTAG_ITEM(ACE_dogtag,469); + ACE_DOGTAG_ITEM(ACE_dogtag,470); + ACE_DOGTAG_ITEM(ACE_dogtag,471); + ACE_DOGTAG_ITEM(ACE_dogtag,472); + ACE_DOGTAG_ITEM(ACE_dogtag,473); + ACE_DOGTAG_ITEM(ACE_dogtag,474); + ACE_DOGTAG_ITEM(ACE_dogtag,475); + ACE_DOGTAG_ITEM(ACE_dogtag,476); + ACE_DOGTAG_ITEM(ACE_dogtag,477); + ACE_DOGTAG_ITEM(ACE_dogtag,478); + ACE_DOGTAG_ITEM(ACE_dogtag,479); + ACE_DOGTAG_ITEM(ACE_dogtag,480); + ACE_DOGTAG_ITEM(ACE_dogtag,481); + ACE_DOGTAG_ITEM(ACE_dogtag,482); + ACE_DOGTAG_ITEM(ACE_dogtag,483); + ACE_DOGTAG_ITEM(ACE_dogtag,484); + ACE_DOGTAG_ITEM(ACE_dogtag,485); + ACE_DOGTAG_ITEM(ACE_dogtag,486); + ACE_DOGTAG_ITEM(ACE_dogtag,487); + ACE_DOGTAG_ITEM(ACE_dogtag,488); + ACE_DOGTAG_ITEM(ACE_dogtag,489); + ACE_DOGTAG_ITEM(ACE_dogtag,490); + ACE_DOGTAG_ITEM(ACE_dogtag,491); + ACE_DOGTAG_ITEM(ACE_dogtag,492); + ACE_DOGTAG_ITEM(ACE_dogtag,493); + ACE_DOGTAG_ITEM(ACE_dogtag,494); + ACE_DOGTAG_ITEM(ACE_dogtag,495); + ACE_DOGTAG_ITEM(ACE_dogtag,496); + ACE_DOGTAG_ITEM(ACE_dogtag,497); + ACE_DOGTAG_ITEM(ACE_dogtag,498); + ACE_DOGTAG_ITEM(ACE_dogtag,499); + ACE_DOGTAG_ITEM(ACE_dogtag,500); + ACE_DOGTAG_ITEM(ACE_dogtag,501); + ACE_DOGTAG_ITEM(ACE_dogtag,502); + ACE_DOGTAG_ITEM(ACE_dogtag,503); + ACE_DOGTAG_ITEM(ACE_dogtag,504); + ACE_DOGTAG_ITEM(ACE_dogtag,505); + ACE_DOGTAG_ITEM(ACE_dogtag,506); + ACE_DOGTAG_ITEM(ACE_dogtag,507); + ACE_DOGTAG_ITEM(ACE_dogtag,508); + ACE_DOGTAG_ITEM(ACE_dogtag,509); + ACE_DOGTAG_ITEM(ACE_dogtag,510); + ACE_DOGTAG_ITEM(ACE_dogtag,511); + ACE_DOGTAG_ITEM(ACE_dogtag,512); + ACE_DOGTAG_ITEM(ACE_dogtag,513); + ACE_DOGTAG_ITEM(ACE_dogtag,514); + ACE_DOGTAG_ITEM(ACE_dogtag,515); + ACE_DOGTAG_ITEM(ACE_dogtag,516); + ACE_DOGTAG_ITEM(ACE_dogtag,517); + ACE_DOGTAG_ITEM(ACE_dogtag,518); + ACE_DOGTAG_ITEM(ACE_dogtag,519); + ACE_DOGTAG_ITEM(ACE_dogtag,520); + ACE_DOGTAG_ITEM(ACE_dogtag,521); + ACE_DOGTAG_ITEM(ACE_dogtag,522); + ACE_DOGTAG_ITEM(ACE_dogtag,523); + ACE_DOGTAG_ITEM(ACE_dogtag,524); + ACE_DOGTAG_ITEM(ACE_dogtag,525); + ACE_DOGTAG_ITEM(ACE_dogtag,526); + ACE_DOGTAG_ITEM(ACE_dogtag,527); + ACE_DOGTAG_ITEM(ACE_dogtag,528); + ACE_DOGTAG_ITEM(ACE_dogtag,529); + ACE_DOGTAG_ITEM(ACE_dogtag,530); + ACE_DOGTAG_ITEM(ACE_dogtag,531); + ACE_DOGTAG_ITEM(ACE_dogtag,532); + ACE_DOGTAG_ITEM(ACE_dogtag,533); + ACE_DOGTAG_ITEM(ACE_dogtag,534); + ACE_DOGTAG_ITEM(ACE_dogtag,535); + ACE_DOGTAG_ITEM(ACE_dogtag,536); + ACE_DOGTAG_ITEM(ACE_dogtag,537); + ACE_DOGTAG_ITEM(ACE_dogtag,538); + ACE_DOGTAG_ITEM(ACE_dogtag,539); + ACE_DOGTAG_ITEM(ACE_dogtag,540); + ACE_DOGTAG_ITEM(ACE_dogtag,541); + ACE_DOGTAG_ITEM(ACE_dogtag,542); + ACE_DOGTAG_ITEM(ACE_dogtag,543); + ACE_DOGTAG_ITEM(ACE_dogtag,544); + ACE_DOGTAG_ITEM(ACE_dogtag,545); + ACE_DOGTAG_ITEM(ACE_dogtag,546); + ACE_DOGTAG_ITEM(ACE_dogtag,547); + ACE_DOGTAG_ITEM(ACE_dogtag,548); + ACE_DOGTAG_ITEM(ACE_dogtag,549); + ACE_DOGTAG_ITEM(ACE_dogtag,550); + ACE_DOGTAG_ITEM(ACE_dogtag,551); + ACE_DOGTAG_ITEM(ACE_dogtag,552); + ACE_DOGTAG_ITEM(ACE_dogtag,553); + ACE_DOGTAG_ITEM(ACE_dogtag,554); + ACE_DOGTAG_ITEM(ACE_dogtag,555); + ACE_DOGTAG_ITEM(ACE_dogtag,556); + ACE_DOGTAG_ITEM(ACE_dogtag,557); + ACE_DOGTAG_ITEM(ACE_dogtag,558); + ACE_DOGTAG_ITEM(ACE_dogtag,559); + ACE_DOGTAG_ITEM(ACE_dogtag,560); + ACE_DOGTAG_ITEM(ACE_dogtag,561); + ACE_DOGTAG_ITEM(ACE_dogtag,562); + ACE_DOGTAG_ITEM(ACE_dogtag,563); + ACE_DOGTAG_ITEM(ACE_dogtag,564); + ACE_DOGTAG_ITEM(ACE_dogtag,565); + ACE_DOGTAG_ITEM(ACE_dogtag,566); + ACE_DOGTAG_ITEM(ACE_dogtag,567); + ACE_DOGTAG_ITEM(ACE_dogtag,568); + ACE_DOGTAG_ITEM(ACE_dogtag,569); + ACE_DOGTAG_ITEM(ACE_dogtag,570); + ACE_DOGTAG_ITEM(ACE_dogtag,571); + ACE_DOGTAG_ITEM(ACE_dogtag,572); + ACE_DOGTAG_ITEM(ACE_dogtag,573); + ACE_DOGTAG_ITEM(ACE_dogtag,574); + ACE_DOGTAG_ITEM(ACE_dogtag,575); + ACE_DOGTAG_ITEM(ACE_dogtag,576); + ACE_DOGTAG_ITEM(ACE_dogtag,577); + ACE_DOGTAG_ITEM(ACE_dogtag,578); + ACE_DOGTAG_ITEM(ACE_dogtag,579); + ACE_DOGTAG_ITEM(ACE_dogtag,580); + ACE_DOGTAG_ITEM(ACE_dogtag,581); + ACE_DOGTAG_ITEM(ACE_dogtag,582); + ACE_DOGTAG_ITEM(ACE_dogtag,583); + ACE_DOGTAG_ITEM(ACE_dogtag,584); + ACE_DOGTAG_ITEM(ACE_dogtag,585); + ACE_DOGTAG_ITEM(ACE_dogtag,586); + ACE_DOGTAG_ITEM(ACE_dogtag,587); + ACE_DOGTAG_ITEM(ACE_dogtag,588); + ACE_DOGTAG_ITEM(ACE_dogtag,589); + ACE_DOGTAG_ITEM(ACE_dogtag,590); + ACE_DOGTAG_ITEM(ACE_dogtag,591); + ACE_DOGTAG_ITEM(ACE_dogtag,592); + ACE_DOGTAG_ITEM(ACE_dogtag,593); + ACE_DOGTAG_ITEM(ACE_dogtag,594); + ACE_DOGTAG_ITEM(ACE_dogtag,595); + ACE_DOGTAG_ITEM(ACE_dogtag,596); + ACE_DOGTAG_ITEM(ACE_dogtag,597); + ACE_DOGTAG_ITEM(ACE_dogtag,598); + ACE_DOGTAG_ITEM(ACE_dogtag,599); + ACE_DOGTAG_ITEM(ACE_dogtag,600); + ACE_DOGTAG_ITEM(ACE_dogtag,601); + ACE_DOGTAG_ITEM(ACE_dogtag,602); + ACE_DOGTAG_ITEM(ACE_dogtag,603); + ACE_DOGTAG_ITEM(ACE_dogtag,604); + ACE_DOGTAG_ITEM(ACE_dogtag,605); + ACE_DOGTAG_ITEM(ACE_dogtag,606); + ACE_DOGTAG_ITEM(ACE_dogtag,607); + ACE_DOGTAG_ITEM(ACE_dogtag,608); + ACE_DOGTAG_ITEM(ACE_dogtag,609); + ACE_DOGTAG_ITEM(ACE_dogtag,610); + ACE_DOGTAG_ITEM(ACE_dogtag,611); + ACE_DOGTAG_ITEM(ACE_dogtag,612); + ACE_DOGTAG_ITEM(ACE_dogtag,613); + ACE_DOGTAG_ITEM(ACE_dogtag,614); + ACE_DOGTAG_ITEM(ACE_dogtag,615); + ACE_DOGTAG_ITEM(ACE_dogtag,616); + ACE_DOGTAG_ITEM(ACE_dogtag,617); + ACE_DOGTAG_ITEM(ACE_dogtag,618); + ACE_DOGTAG_ITEM(ACE_dogtag,619); + ACE_DOGTAG_ITEM(ACE_dogtag,620); + ACE_DOGTAG_ITEM(ACE_dogtag,621); + ACE_DOGTAG_ITEM(ACE_dogtag,622); + ACE_DOGTAG_ITEM(ACE_dogtag,623); + ACE_DOGTAG_ITEM(ACE_dogtag,624); + ACE_DOGTAG_ITEM(ACE_dogtag,625); + ACE_DOGTAG_ITEM(ACE_dogtag,626); + ACE_DOGTAG_ITEM(ACE_dogtag,627); + ACE_DOGTAG_ITEM(ACE_dogtag,628); + ACE_DOGTAG_ITEM(ACE_dogtag,629); + ACE_DOGTAG_ITEM(ACE_dogtag,630); + ACE_DOGTAG_ITEM(ACE_dogtag,631); + ACE_DOGTAG_ITEM(ACE_dogtag,632); + ACE_DOGTAG_ITEM(ACE_dogtag,633); + ACE_DOGTAG_ITEM(ACE_dogtag,634); + ACE_DOGTAG_ITEM(ACE_dogtag,635); + ACE_DOGTAG_ITEM(ACE_dogtag,636); + ACE_DOGTAG_ITEM(ACE_dogtag,637); + ACE_DOGTAG_ITEM(ACE_dogtag,638); + ACE_DOGTAG_ITEM(ACE_dogtag,639); + ACE_DOGTAG_ITEM(ACE_dogtag,640); + ACE_DOGTAG_ITEM(ACE_dogtag,641); + ACE_DOGTAG_ITEM(ACE_dogtag,642); + ACE_DOGTAG_ITEM(ACE_dogtag,643); + ACE_DOGTAG_ITEM(ACE_dogtag,644); + ACE_DOGTAG_ITEM(ACE_dogtag,645); + ACE_DOGTAG_ITEM(ACE_dogtag,646); + ACE_DOGTAG_ITEM(ACE_dogtag,647); + ACE_DOGTAG_ITEM(ACE_dogtag,648); + ACE_DOGTAG_ITEM(ACE_dogtag,649); + ACE_DOGTAG_ITEM(ACE_dogtag,650); + ACE_DOGTAG_ITEM(ACE_dogtag,651); + ACE_DOGTAG_ITEM(ACE_dogtag,652); + ACE_DOGTAG_ITEM(ACE_dogtag,653); + ACE_DOGTAG_ITEM(ACE_dogtag,654); + ACE_DOGTAG_ITEM(ACE_dogtag,655); + ACE_DOGTAG_ITEM(ACE_dogtag,656); + ACE_DOGTAG_ITEM(ACE_dogtag,657); + ACE_DOGTAG_ITEM(ACE_dogtag,658); + ACE_DOGTAG_ITEM(ACE_dogtag,659); + ACE_DOGTAG_ITEM(ACE_dogtag,660); + ACE_DOGTAG_ITEM(ACE_dogtag,661); + ACE_DOGTAG_ITEM(ACE_dogtag,662); + ACE_DOGTAG_ITEM(ACE_dogtag,663); + ACE_DOGTAG_ITEM(ACE_dogtag,664); + ACE_DOGTAG_ITEM(ACE_dogtag,665); + ACE_DOGTAG_ITEM(ACE_dogtag,666); + ACE_DOGTAG_ITEM(ACE_dogtag,667); + ACE_DOGTAG_ITEM(ACE_dogtag,668); + ACE_DOGTAG_ITEM(ACE_dogtag,669); + ACE_DOGTAG_ITEM(ACE_dogtag,670); + ACE_DOGTAG_ITEM(ACE_dogtag,671); + ACE_DOGTAG_ITEM(ACE_dogtag,672); + ACE_DOGTAG_ITEM(ACE_dogtag,673); + ACE_DOGTAG_ITEM(ACE_dogtag,674); + ACE_DOGTAG_ITEM(ACE_dogtag,675); + ACE_DOGTAG_ITEM(ACE_dogtag,676); + ACE_DOGTAG_ITEM(ACE_dogtag,677); + ACE_DOGTAG_ITEM(ACE_dogtag,678); + ACE_DOGTAG_ITEM(ACE_dogtag,679); + ACE_DOGTAG_ITEM(ACE_dogtag,680); + ACE_DOGTAG_ITEM(ACE_dogtag,681); + ACE_DOGTAG_ITEM(ACE_dogtag,682); + ACE_DOGTAG_ITEM(ACE_dogtag,683); + ACE_DOGTAG_ITEM(ACE_dogtag,684); + ACE_DOGTAG_ITEM(ACE_dogtag,685); + ACE_DOGTAG_ITEM(ACE_dogtag,686); + ACE_DOGTAG_ITEM(ACE_dogtag,687); + ACE_DOGTAG_ITEM(ACE_dogtag,688); + ACE_DOGTAG_ITEM(ACE_dogtag,689); + ACE_DOGTAG_ITEM(ACE_dogtag,690); + ACE_DOGTAG_ITEM(ACE_dogtag,691); + ACE_DOGTAG_ITEM(ACE_dogtag,692); + ACE_DOGTAG_ITEM(ACE_dogtag,693); + ACE_DOGTAG_ITEM(ACE_dogtag,694); + ACE_DOGTAG_ITEM(ACE_dogtag,695); + ACE_DOGTAG_ITEM(ACE_dogtag,696); + ACE_DOGTAG_ITEM(ACE_dogtag,697); + ACE_DOGTAG_ITEM(ACE_dogtag,698); + ACE_DOGTAG_ITEM(ACE_dogtag,699); + ACE_DOGTAG_ITEM(ACE_dogtag,700); + ACE_DOGTAG_ITEM(ACE_dogtag,701); + ACE_DOGTAG_ITEM(ACE_dogtag,702); + ACE_DOGTAG_ITEM(ACE_dogtag,703); + ACE_DOGTAG_ITEM(ACE_dogtag,704); + ACE_DOGTAG_ITEM(ACE_dogtag,705); + ACE_DOGTAG_ITEM(ACE_dogtag,706); + ACE_DOGTAG_ITEM(ACE_dogtag,707); + ACE_DOGTAG_ITEM(ACE_dogtag,708); + ACE_DOGTAG_ITEM(ACE_dogtag,709); + ACE_DOGTAG_ITEM(ACE_dogtag,710); + ACE_DOGTAG_ITEM(ACE_dogtag,711); + ACE_DOGTAG_ITEM(ACE_dogtag,712); + ACE_DOGTAG_ITEM(ACE_dogtag,713); + ACE_DOGTAG_ITEM(ACE_dogtag,714); + ACE_DOGTAG_ITEM(ACE_dogtag,715); + ACE_DOGTAG_ITEM(ACE_dogtag,716); + ACE_DOGTAG_ITEM(ACE_dogtag,717); + ACE_DOGTAG_ITEM(ACE_dogtag,718); + ACE_DOGTAG_ITEM(ACE_dogtag,719); + ACE_DOGTAG_ITEM(ACE_dogtag,720); + ACE_DOGTAG_ITEM(ACE_dogtag,721); + ACE_DOGTAG_ITEM(ACE_dogtag,722); + ACE_DOGTAG_ITEM(ACE_dogtag,723); + ACE_DOGTAG_ITEM(ACE_dogtag,724); + ACE_DOGTAG_ITEM(ACE_dogtag,725); + ACE_DOGTAG_ITEM(ACE_dogtag,726); + ACE_DOGTAG_ITEM(ACE_dogtag,727); + ACE_DOGTAG_ITEM(ACE_dogtag,728); + ACE_DOGTAG_ITEM(ACE_dogtag,729); + ACE_DOGTAG_ITEM(ACE_dogtag,730); + ACE_DOGTAG_ITEM(ACE_dogtag,731); + ACE_DOGTAG_ITEM(ACE_dogtag,732); + ACE_DOGTAG_ITEM(ACE_dogtag,733); + ACE_DOGTAG_ITEM(ACE_dogtag,734); + ACE_DOGTAG_ITEM(ACE_dogtag,735); + ACE_DOGTAG_ITEM(ACE_dogtag,736); + ACE_DOGTAG_ITEM(ACE_dogtag,737); + ACE_DOGTAG_ITEM(ACE_dogtag,738); + ACE_DOGTAG_ITEM(ACE_dogtag,739); + ACE_DOGTAG_ITEM(ACE_dogtag,740); + ACE_DOGTAG_ITEM(ACE_dogtag,741); + ACE_DOGTAG_ITEM(ACE_dogtag,742); + ACE_DOGTAG_ITEM(ACE_dogtag,743); + ACE_DOGTAG_ITEM(ACE_dogtag,744); + ACE_DOGTAG_ITEM(ACE_dogtag,745); + ACE_DOGTAG_ITEM(ACE_dogtag,746); + ACE_DOGTAG_ITEM(ACE_dogtag,747); + ACE_DOGTAG_ITEM(ACE_dogtag,748); + ACE_DOGTAG_ITEM(ACE_dogtag,749); + ACE_DOGTAG_ITEM(ACE_dogtag,750); + ACE_DOGTAG_ITEM(ACE_dogtag,751); + ACE_DOGTAG_ITEM(ACE_dogtag,752); + ACE_DOGTAG_ITEM(ACE_dogtag,753); + ACE_DOGTAG_ITEM(ACE_dogtag,754); + ACE_DOGTAG_ITEM(ACE_dogtag,755); + ACE_DOGTAG_ITEM(ACE_dogtag,756); + ACE_DOGTAG_ITEM(ACE_dogtag,757); + ACE_DOGTAG_ITEM(ACE_dogtag,758); + ACE_DOGTAG_ITEM(ACE_dogtag,759); + ACE_DOGTAG_ITEM(ACE_dogtag,760); + ACE_DOGTAG_ITEM(ACE_dogtag,761); + ACE_DOGTAG_ITEM(ACE_dogtag,762); + ACE_DOGTAG_ITEM(ACE_dogtag,763); + ACE_DOGTAG_ITEM(ACE_dogtag,764); + ACE_DOGTAG_ITEM(ACE_dogtag,765); + ACE_DOGTAG_ITEM(ACE_dogtag,766); + ACE_DOGTAG_ITEM(ACE_dogtag,767); + ACE_DOGTAG_ITEM(ACE_dogtag,768); + ACE_DOGTAG_ITEM(ACE_dogtag,769); + ACE_DOGTAG_ITEM(ACE_dogtag,770); + ACE_DOGTAG_ITEM(ACE_dogtag,771); + ACE_DOGTAG_ITEM(ACE_dogtag,772); + ACE_DOGTAG_ITEM(ACE_dogtag,773); + ACE_DOGTAG_ITEM(ACE_dogtag,774); + ACE_DOGTAG_ITEM(ACE_dogtag,775); + ACE_DOGTAG_ITEM(ACE_dogtag,776); + ACE_DOGTAG_ITEM(ACE_dogtag,777); + ACE_DOGTAG_ITEM(ACE_dogtag,778); + ACE_DOGTAG_ITEM(ACE_dogtag,779); + ACE_DOGTAG_ITEM(ACE_dogtag,780); + ACE_DOGTAG_ITEM(ACE_dogtag,781); + ACE_DOGTAG_ITEM(ACE_dogtag,782); + ACE_DOGTAG_ITEM(ACE_dogtag,783); + ACE_DOGTAG_ITEM(ACE_dogtag,784); + ACE_DOGTAG_ITEM(ACE_dogtag,785); + ACE_DOGTAG_ITEM(ACE_dogtag,786); + ACE_DOGTAG_ITEM(ACE_dogtag,787); + ACE_DOGTAG_ITEM(ACE_dogtag,788); + ACE_DOGTAG_ITEM(ACE_dogtag,789); + ACE_DOGTAG_ITEM(ACE_dogtag,790); + ACE_DOGTAG_ITEM(ACE_dogtag,791); + ACE_DOGTAG_ITEM(ACE_dogtag,792); + ACE_DOGTAG_ITEM(ACE_dogtag,793); + ACE_DOGTAG_ITEM(ACE_dogtag,794); + ACE_DOGTAG_ITEM(ACE_dogtag,795); + ACE_DOGTAG_ITEM(ACE_dogtag,796); + ACE_DOGTAG_ITEM(ACE_dogtag,797); + ACE_DOGTAG_ITEM(ACE_dogtag,798); + ACE_DOGTAG_ITEM(ACE_dogtag,799); + ACE_DOGTAG_ITEM(ACE_dogtag,800); + ACE_DOGTAG_ITEM(ACE_dogtag,801); + ACE_DOGTAG_ITEM(ACE_dogtag,802); + ACE_DOGTAG_ITEM(ACE_dogtag,803); + ACE_DOGTAG_ITEM(ACE_dogtag,804); + ACE_DOGTAG_ITEM(ACE_dogtag,805); + ACE_DOGTAG_ITEM(ACE_dogtag,806); + ACE_DOGTAG_ITEM(ACE_dogtag,807); + ACE_DOGTAG_ITEM(ACE_dogtag,808); + ACE_DOGTAG_ITEM(ACE_dogtag,809); + ACE_DOGTAG_ITEM(ACE_dogtag,810); + ACE_DOGTAG_ITEM(ACE_dogtag,811); + ACE_DOGTAG_ITEM(ACE_dogtag,812); + ACE_DOGTAG_ITEM(ACE_dogtag,813); + ACE_DOGTAG_ITEM(ACE_dogtag,814); + ACE_DOGTAG_ITEM(ACE_dogtag,815); + ACE_DOGTAG_ITEM(ACE_dogtag,816); + ACE_DOGTAG_ITEM(ACE_dogtag,817); + ACE_DOGTAG_ITEM(ACE_dogtag,818); + ACE_DOGTAG_ITEM(ACE_dogtag,819); + ACE_DOGTAG_ITEM(ACE_dogtag,820); + ACE_DOGTAG_ITEM(ACE_dogtag,821); + ACE_DOGTAG_ITEM(ACE_dogtag,822); + ACE_DOGTAG_ITEM(ACE_dogtag,823); + ACE_DOGTAG_ITEM(ACE_dogtag,824); + ACE_DOGTAG_ITEM(ACE_dogtag,825); + ACE_DOGTAG_ITEM(ACE_dogtag,826); + ACE_DOGTAG_ITEM(ACE_dogtag,827); + ACE_DOGTAG_ITEM(ACE_dogtag,828); + ACE_DOGTAG_ITEM(ACE_dogtag,829); + ACE_DOGTAG_ITEM(ACE_dogtag,830); + ACE_DOGTAG_ITEM(ACE_dogtag,831); + ACE_DOGTAG_ITEM(ACE_dogtag,832); + ACE_DOGTAG_ITEM(ACE_dogtag,833); + ACE_DOGTAG_ITEM(ACE_dogtag,834); + ACE_DOGTAG_ITEM(ACE_dogtag,835); + ACE_DOGTAG_ITEM(ACE_dogtag,836); + ACE_DOGTAG_ITEM(ACE_dogtag,837); + ACE_DOGTAG_ITEM(ACE_dogtag,838); + ACE_DOGTAG_ITEM(ACE_dogtag,839); + ACE_DOGTAG_ITEM(ACE_dogtag,840); + ACE_DOGTAG_ITEM(ACE_dogtag,841); + ACE_DOGTAG_ITEM(ACE_dogtag,842); + ACE_DOGTAG_ITEM(ACE_dogtag,843); + ACE_DOGTAG_ITEM(ACE_dogtag,844); + ACE_DOGTAG_ITEM(ACE_dogtag,845); + ACE_DOGTAG_ITEM(ACE_dogtag,846); + ACE_DOGTAG_ITEM(ACE_dogtag,847); + ACE_DOGTAG_ITEM(ACE_dogtag,848); + ACE_DOGTAG_ITEM(ACE_dogtag,849); + ACE_DOGTAG_ITEM(ACE_dogtag,850); + ACE_DOGTAG_ITEM(ACE_dogtag,851); + ACE_DOGTAG_ITEM(ACE_dogtag,852); + ACE_DOGTAG_ITEM(ACE_dogtag,853); + ACE_DOGTAG_ITEM(ACE_dogtag,854); + ACE_DOGTAG_ITEM(ACE_dogtag,855); + ACE_DOGTAG_ITEM(ACE_dogtag,856); + ACE_DOGTAG_ITEM(ACE_dogtag,857); + ACE_DOGTAG_ITEM(ACE_dogtag,858); + ACE_DOGTAG_ITEM(ACE_dogtag,859); + ACE_DOGTAG_ITEM(ACE_dogtag,860); + ACE_DOGTAG_ITEM(ACE_dogtag,861); + ACE_DOGTAG_ITEM(ACE_dogtag,862); + ACE_DOGTAG_ITEM(ACE_dogtag,863); + ACE_DOGTAG_ITEM(ACE_dogtag,864); + ACE_DOGTAG_ITEM(ACE_dogtag,865); + ACE_DOGTAG_ITEM(ACE_dogtag,866); + ACE_DOGTAG_ITEM(ACE_dogtag,867); + ACE_DOGTAG_ITEM(ACE_dogtag,868); + ACE_DOGTAG_ITEM(ACE_dogtag,869); + ACE_DOGTAG_ITEM(ACE_dogtag,870); + ACE_DOGTAG_ITEM(ACE_dogtag,871); + ACE_DOGTAG_ITEM(ACE_dogtag,872); + ACE_DOGTAG_ITEM(ACE_dogtag,873); + ACE_DOGTAG_ITEM(ACE_dogtag,874); + ACE_DOGTAG_ITEM(ACE_dogtag,875); + ACE_DOGTAG_ITEM(ACE_dogtag,876); + ACE_DOGTAG_ITEM(ACE_dogtag,877); + ACE_DOGTAG_ITEM(ACE_dogtag,878); + ACE_DOGTAG_ITEM(ACE_dogtag,879); + ACE_DOGTAG_ITEM(ACE_dogtag,880); + ACE_DOGTAG_ITEM(ACE_dogtag,881); + ACE_DOGTAG_ITEM(ACE_dogtag,882); + ACE_DOGTAG_ITEM(ACE_dogtag,883); + ACE_DOGTAG_ITEM(ACE_dogtag,884); + ACE_DOGTAG_ITEM(ACE_dogtag,885); + ACE_DOGTAG_ITEM(ACE_dogtag,886); + ACE_DOGTAG_ITEM(ACE_dogtag,887); + ACE_DOGTAG_ITEM(ACE_dogtag,888); + ACE_DOGTAG_ITEM(ACE_dogtag,889); + ACE_DOGTAG_ITEM(ACE_dogtag,890); + ACE_DOGTAG_ITEM(ACE_dogtag,891); + ACE_DOGTAG_ITEM(ACE_dogtag,892); + ACE_DOGTAG_ITEM(ACE_dogtag,893); + ACE_DOGTAG_ITEM(ACE_dogtag,894); + ACE_DOGTAG_ITEM(ACE_dogtag,895); + ACE_DOGTAG_ITEM(ACE_dogtag,896); + ACE_DOGTAG_ITEM(ACE_dogtag,897); + ACE_DOGTAG_ITEM(ACE_dogtag,898); + ACE_DOGTAG_ITEM(ACE_dogtag,899); + ACE_DOGTAG_ITEM(ACE_dogtag,900); + ACE_DOGTAG_ITEM(ACE_dogtag,901); + ACE_DOGTAG_ITEM(ACE_dogtag,902); + ACE_DOGTAG_ITEM(ACE_dogtag,903); + ACE_DOGTAG_ITEM(ACE_dogtag,904); + ACE_DOGTAG_ITEM(ACE_dogtag,905); + ACE_DOGTAG_ITEM(ACE_dogtag,906); + ACE_DOGTAG_ITEM(ACE_dogtag,907); + ACE_DOGTAG_ITEM(ACE_dogtag,908); + ACE_DOGTAG_ITEM(ACE_dogtag,909); + ACE_DOGTAG_ITEM(ACE_dogtag,910); + ACE_DOGTAG_ITEM(ACE_dogtag,911); + ACE_DOGTAG_ITEM(ACE_dogtag,912); + ACE_DOGTAG_ITEM(ACE_dogtag,913); + ACE_DOGTAG_ITEM(ACE_dogtag,914); + ACE_DOGTAG_ITEM(ACE_dogtag,915); + ACE_DOGTAG_ITEM(ACE_dogtag,916); + ACE_DOGTAG_ITEM(ACE_dogtag,917); + ACE_DOGTAG_ITEM(ACE_dogtag,918); + ACE_DOGTAG_ITEM(ACE_dogtag,919); + ACE_DOGTAG_ITEM(ACE_dogtag,920); + ACE_DOGTAG_ITEM(ACE_dogtag,921); + ACE_DOGTAG_ITEM(ACE_dogtag,922); + ACE_DOGTAG_ITEM(ACE_dogtag,923); + ACE_DOGTAG_ITEM(ACE_dogtag,924); + ACE_DOGTAG_ITEM(ACE_dogtag,925); + ACE_DOGTAG_ITEM(ACE_dogtag,926); + ACE_DOGTAG_ITEM(ACE_dogtag,927); + ACE_DOGTAG_ITEM(ACE_dogtag,928); + ACE_DOGTAG_ITEM(ACE_dogtag,929); + ACE_DOGTAG_ITEM(ACE_dogtag,930); + ACE_DOGTAG_ITEM(ACE_dogtag,931); + ACE_DOGTAG_ITEM(ACE_dogtag,932); + ACE_DOGTAG_ITEM(ACE_dogtag,933); + ACE_DOGTAG_ITEM(ACE_dogtag,934); + ACE_DOGTAG_ITEM(ACE_dogtag,935); + ACE_DOGTAG_ITEM(ACE_dogtag,936); + ACE_DOGTAG_ITEM(ACE_dogtag,937); + ACE_DOGTAG_ITEM(ACE_dogtag,938); + ACE_DOGTAG_ITEM(ACE_dogtag,939); + ACE_DOGTAG_ITEM(ACE_dogtag,940); + ACE_DOGTAG_ITEM(ACE_dogtag,941); + ACE_DOGTAG_ITEM(ACE_dogtag,942); + ACE_DOGTAG_ITEM(ACE_dogtag,943); + ACE_DOGTAG_ITEM(ACE_dogtag,944); + ACE_DOGTAG_ITEM(ACE_dogtag,945); + ACE_DOGTAG_ITEM(ACE_dogtag,946); + ACE_DOGTAG_ITEM(ACE_dogtag,947); + ACE_DOGTAG_ITEM(ACE_dogtag,948); + ACE_DOGTAG_ITEM(ACE_dogtag,949); + ACE_DOGTAG_ITEM(ACE_dogtag,950); + ACE_DOGTAG_ITEM(ACE_dogtag,951); + ACE_DOGTAG_ITEM(ACE_dogtag,952); + ACE_DOGTAG_ITEM(ACE_dogtag,953); + ACE_DOGTAG_ITEM(ACE_dogtag,954); + ACE_DOGTAG_ITEM(ACE_dogtag,955); + ACE_DOGTAG_ITEM(ACE_dogtag,956); + ACE_DOGTAG_ITEM(ACE_dogtag,957); + ACE_DOGTAG_ITEM(ACE_dogtag,958); + ACE_DOGTAG_ITEM(ACE_dogtag,959); + ACE_DOGTAG_ITEM(ACE_dogtag,960); + ACE_DOGTAG_ITEM(ACE_dogtag,961); + ACE_DOGTAG_ITEM(ACE_dogtag,962); + ACE_DOGTAG_ITEM(ACE_dogtag,963); + ACE_DOGTAG_ITEM(ACE_dogtag,964); + ACE_DOGTAG_ITEM(ACE_dogtag,965); + ACE_DOGTAG_ITEM(ACE_dogtag,966); + ACE_DOGTAG_ITEM(ACE_dogtag,967); + ACE_DOGTAG_ITEM(ACE_dogtag,968); + ACE_DOGTAG_ITEM(ACE_dogtag,969); + ACE_DOGTAG_ITEM(ACE_dogtag,970); + ACE_DOGTAG_ITEM(ACE_dogtag,971); + ACE_DOGTAG_ITEM(ACE_dogtag,972); + ACE_DOGTAG_ITEM(ACE_dogtag,973); + ACE_DOGTAG_ITEM(ACE_dogtag,974); + ACE_DOGTAG_ITEM(ACE_dogtag,975); + ACE_DOGTAG_ITEM(ACE_dogtag,976); + ACE_DOGTAG_ITEM(ACE_dogtag,977); + ACE_DOGTAG_ITEM(ACE_dogtag,978); + ACE_DOGTAG_ITEM(ACE_dogtag,979); + ACE_DOGTAG_ITEM(ACE_dogtag,980); + ACE_DOGTAG_ITEM(ACE_dogtag,981); + ACE_DOGTAG_ITEM(ACE_dogtag,982); + ACE_DOGTAG_ITEM(ACE_dogtag,983); + ACE_DOGTAG_ITEM(ACE_dogtag,984); + ACE_DOGTAG_ITEM(ACE_dogtag,985); + ACE_DOGTAG_ITEM(ACE_dogtag,986); + ACE_DOGTAG_ITEM(ACE_dogtag,987); + ACE_DOGTAG_ITEM(ACE_dogtag,988); + ACE_DOGTAG_ITEM(ACE_dogtag,989); + ACE_DOGTAG_ITEM(ACE_dogtag,990); + ACE_DOGTAG_ITEM(ACE_dogtag,991); + ACE_DOGTAG_ITEM(ACE_dogtag,992); + ACE_DOGTAG_ITEM(ACE_dogtag,993); + ACE_DOGTAG_ITEM(ACE_dogtag,994); + ACE_DOGTAG_ITEM(ACE_dogtag,995); + ACE_DOGTAG_ITEM(ACE_dogtag,996); + ACE_DOGTAG_ITEM(ACE_dogtag,997); + ACE_DOGTAG_ITEM(ACE_dogtag,998); + ACE_DOGTAG_ITEM(ACE_dogtag,999); + ACE_DOGTAG_ITEM(ACE_dogtag,1000); +}; diff --git a/addons/dogtags/Dogtag.hpp b/addons/dogtags/Dogtag.hpp new file mode 100644 index 0000000000..937432d2a8 --- /dev/null +++ b/addons/dogtags/Dogtag.hpp @@ -0,0 +1,72 @@ +class RscPicture; +class RscStructuredText; + +class RscTitles { + class GVAR(singleTag) { + idd = -1; + onLoad = QUOTE(uiNamespace setVariable [ARR_2(QUOTE(QGVAR(tag)),_this select 0)]); + onUnload = QUOTE(uiNamespace setVariable [ARR_2(QUOTE(QGVAR(tag)),nil)]); + movingEnable = false; + duration = 5; + fadeIn = 0.2; + fadeOut = 0.2; + + class controls { + class background: RscPicture { + idc = 1000; + text = QUOTE(PATHTOF(data\dogtagSingle.paa)); + sizeEx = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)"; + colorText[] = {1, 1, 1, 1}; + colorBackground[] = {0, 0, 0, 0}; + x = ((safezoneX + safezoneW) - (10 * (((safezoneW / safezoneH) min 1.2) / 40)) - 2.9 * (((safezoneW / safezoneH) min 1.2) / 40)); + y = safeZoneY + 0.175 * safezoneH; + w = (8 * (((safezoneW / safezoneH) min 1.2) / 40)); + h = (8 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25)); + font = "EtelkaMonospacePro"; + }; + class nickname: RscStructuredText { + idc = 1001; + text = ""; + sizeEx = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)"; + colorText[] = {1, 1, 1, 1}; + colorBackground[] = {0, 0, 0, 0}; + x = ((safezoneX + safezoneW) - (8.4 * (((safezoneW / safezoneH) min 1.2) / 40)) - 2.9 * (((safezoneW / safezoneH) min 1.2) / 40)); + y = safeZoneY + 0.24 * safezoneH; + w = (5.9 * (((safezoneW / safezoneH) min 1.2) / 40)); + h = (3 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25)); + font = "RobotoCondensed"; + class Attributes { + font = "RobotoCondensed"; + color = "#EEEEEE"; + align = "left"; + valign = "middle"; + shadow = 2; + shadowColor = "#3f4345"; + size = "0.80"; + }; + }; + }; + }; + class GVAR(doubleTag): GVAR(singleTag) { + idd = -1; + onLoad = QUOTE(uiNamespace setVariable [ARR_2(QUOTE(QGVAR(tag)),_this select 0)]); + onUnload = QUOTE(uiNamespace setVariable [ARR_2(QUOTE(QGVAR(tag)),nil)]); + + class controls: controls { + class background: background { + text = QUOTE(PATHTOF(data\dogtagDouble.paa)); + }; + class nickname: nickname { + class Attributes: Attributes { + font = "RobotoCondensed"; + color = "#EEEEEE"; + align = "left"; + valign = "middle"; + shadow = 2; + shadowColor = "#3f4345"; + size = "0.80"; + }; + }; + }; + }; +}; diff --git a/addons/dogtags/README.md b/addons/dogtags/README.md new file mode 100644 index 0000000000..e3bf6caf73 --- /dev/null +++ b/addons/dogtags/README.md @@ -0,0 +1,11 @@ +ace_dogtags +========== + +Adds options to check and take dog tag from dead or unconscious units + + +## Maintainers + +The people responsible for merging changes to this component or answering potential questions. + +- [SzwedzikPL](https://github.com/SzwedzikPL) diff --git a/addons/dogtags/XEH_PREP.hpp b/addons/dogtags/XEH_PREP.hpp new file mode 100644 index 0000000000..33e42ba191 --- /dev/null +++ b/addons/dogtags/XEH_PREP.hpp @@ -0,0 +1,13 @@ +PREP(addDogtagActions); +PREP(addDogtagItem); +PREP(bloodType); +PREP(canCheckDogtag); +PREP(canTakeDogtag); +PREP(checkDogtag); +PREP(checkDogtagItem); +PREP(getDogtagData); +PREP(getDogtagItem); +PREP(sendDogtagData); +PREP(showDogtag); +PREP(ssn); +PREP(takeDogtag); diff --git a/addons/dogtags/XEH_postInit.sqf b/addons/dogtags/XEH_postInit.sqf new file mode 100644 index 0000000000..729ae7eb04 --- /dev/null +++ b/addons/dogtags/XEH_postInit.sqf @@ -0,0 +1,45 @@ +#include "script_component.hpp" + +[QGVAR(showDogtag), DFUNC(showDogtag)] call CBA_fnc_addEventHandler; +[QGVAR(sendDogtagData), DFUNC(sendDogtagData)] call CBA_fnc_addEventHandler; +[QGVAR(getDogtagItem), DFUNC(getDogtagItem)] call CBA_fnc_addEventHandler; +[QGVAR(addDogtagItem), DFUNC(addDogtagItem)] call CBA_fnc_addEventHandler; + + +//Add actions and event handlers only if ace_medical is loaded +// - Adding actions via config would create a dependency +if (["ACE_Medical"] call EFUNC(common,isModLoaded)) then { + if (hasInterface) then { + + private _checkTagAction = [ + "ACE_CheckDogtag", + format ["%1: %2", localize LSTRING(itemName), localize LSTRING(checkDogtag)], + QPATHTOF(data\dogtag_icon_ca.paa), + {[_player,_target] call FUNC(checkDogtag)}, + {!isNil {_target getVariable QGVAR(dogtagData)}} + ] call ace_interact_menu_fnc_createAction; + ["ACE_bodyBagObject", 0, ["ACE_MainActions"], _checkTagAction] call EFUNC(interact_menu,addActionToClass); + + private _takeTagAction = [ + "ACE_TakeDogtag", + format ["%1: %2", localize LSTRING(itemName), localize LSTRING(takeDogtag)], + QPATHTOF(data\dogtag_icon_ca.paa), + {[_player,_target] call FUNC(takeDogtag)}, + {(!isNil {_target getVariable QGVAR(dogtagData)}) && {((_target getVariable [QGVAR(dogtagTaken), objNull]) != _target)}} + ] call ace_interact_menu_fnc_createAction; + ["ACE_bodyBagObject", 0, ["ACE_MainActions"], _takeTagAction] call EFUNC(interact_menu,addActionToClass); + }; + if (isServer) then { + ["ace_placedInBodyBag", { + params ["_target", "_bodyBag"]; + TRACE_2("ace_placedInBodyBag eh",_target,_bodyBag); + + private _dogTagData = [_target] call FUNC(getDogtagData); + _bodyBag setVariable [QGVAR(dogtagData), _dogTagData, true]; + + if ((_target getVariable [QGVAR(dogtagTaken), objNull]) == _target) then { + _bodyBag setVariable [QGVAR(dogtagTaken), _bodyBag, true]; + }; + }] call CBA_fnc_addEventHandler; + }; +}; diff --git a/addons/dogtags/XEH_preInit.sqf b/addons/dogtags/XEH_preInit.sqf new file mode 100644 index 0000000000..a7feade1c3 --- /dev/null +++ b/addons/dogtags/XEH_preInit.sqf @@ -0,0 +1,7 @@ +#include "script_component.hpp" + +ADDON = false; + +#include "XEH_PREP.hpp" + +ADDON = true; diff --git a/addons/dogtags/XEH_preStart.sqf b/addons/dogtags/XEH_preStart.sqf new file mode 100644 index 0000000000..022888575e --- /dev/null +++ b/addons/dogtags/XEH_preStart.sqf @@ -0,0 +1,3 @@ +#include "script_component.hpp" + +#include "XEH_PREP.hpp" diff --git a/addons/dogtags/config.cpp b/addons/dogtags/config.cpp new file mode 100644 index 0000000000..de66b2a087 --- /dev/null +++ b/addons/dogtags/config.cpp @@ -0,0 +1,18 @@ +#include "script_component.hpp" + +class CfgPatches { + class ADDON { + units[] = {}; + weapons[] = {}; + requiredVersion = REQUIRED_VERSION; + requiredAddons[] = {"ace_common"}; + author[] = {"SzwedzikPL"}; + authorUrl = "https://github.com/SzwedzikPL/"; + VERSION_CONFIG; + }; +}; + +#include "CfgEventHandlers.hpp" +#include "CfgWeapons.hpp" +#include "CfgVehicles.hpp" +#include "Dogtag.hpp" diff --git a/addons/dogtags/data/ace_dogtag.p3d b/addons/dogtags/data/ace_dogtag.p3d new file mode 100644 index 0000000000..442a4b4622 Binary files /dev/null and b/addons/dogtags/data/ace_dogtag.p3d differ diff --git a/addons/dogtags/data/dogtag.rvmat b/addons/dogtags/data/dogtag.rvmat new file mode 100644 index 0000000000..503e31b68f --- /dev/null +++ b/addons/dogtags/data/dogtag.rvmat @@ -0,0 +1,82 @@ +class StageTI { + texture = "a3\data_f\default_glass_ti_ca.paa"; +}; +ambient[] = {1,1,1,1}; +diffuse[] = {1,1,1,1}; +forcedDiffuse[] = {0,0,0,0}; +emmisive[] = {0,0,0,1}; +specular[] = {0.3,0.3,0.3,1}; +specularPower = 50; +PixelShaderID = "Super"; +VertexShaderID = "Super"; +class Stage1 { + texture = "z\ace\addons\dogtags\data\dogtag_nohq.paa"; + uvSource = "tex"; + class uvTransform { + aside[] = {1,0,0}; + up[] = {0,1,0}; + dir[] = {0,0,1}; + pos[] = {0,0,0}; + }; +}; +class Stage2 { + texture = "#(argb,8,8,3)color(0.5,0.5,0.5,1,DT)"; + uvSource = "tex"; + class uvTransform { + aside[] = {1,0,0}; + up[] = {0,1,0}; + dir[] = {0,0,1}; + pos[] = {0,0,0}; + }; +}; +class Stage3 { + texture = "#(argb,8,8,3)color(0,0,0,0,MC)"; + uvSource = "tex"; + class uvTransform { + aside[] = {1,0,0}; + up[] = {0,1,0}; + dir[] = {0,0,1}; + pos[] = {0,0,0}; + }; +}; +class Stage4 { + texture = "#(argb,8,8,3)color(1,1,1,1,AS)"; + uvSource = "tex"; + class uvTransform { + aside[] = {1,0,0}; + up[] = {0,1,0}; + dir[] = {0,0,1}; + pos[] = {0,0,0}; + }; +}; +class Stage5 { + texture = "#(argb,8,8,3)color(0,0.6,1,1,SMDI)"; + uvSource = "tex"; + class uvTransform { + aside[] = {1,0,0}; + up[] = {0,1,0}; + dir[] = {0,0,1}; + pos[] = {0,0,0}; + }; +}; +class Stage6 { + texture = "#(ai,32,128,1)fresnel(0.85,0.36)"; + uvSource = "tex"; + class uvTransform { + aside[] = {1,0,0}; + up[] = {0,1,0}; + dir[] = {0,0,1}; + pos[] = {0,0,0}; + }; +}; +class Stage7 { + useWorldEnvMap = "true"; + texture = "a3\data_f\env_interier_car_ca.paa"; + uvSource = "tex"; + class uvTransform { + aside[] = {1,0,0}; + up[] = {0,1,0}; + dir[] = {0,0,1}; + pos[] = {0,0,0}; + }; +}; diff --git a/addons/dogtags/data/dogtagDouble.paa b/addons/dogtags/data/dogtagDouble.paa new file mode 100644 index 0000000000..8bc7c29ef3 Binary files /dev/null and b/addons/dogtags/data/dogtagDouble.paa differ diff --git a/addons/dogtags/data/dogtagSingle.paa b/addons/dogtags/data/dogtagSingle.paa new file mode 100644 index 0000000000..c85457d903 Binary files /dev/null and b/addons/dogtags/data/dogtagSingle.paa differ diff --git a/addons/dogtags/data/dogtag_ca.paa b/addons/dogtags/data/dogtag_ca.paa new file mode 100644 index 0000000000..ccd77607f3 Binary files /dev/null and b/addons/dogtags/data/dogtag_ca.paa differ diff --git a/addons/dogtags/data/dogtag_icon_ca.paa b/addons/dogtags/data/dogtag_icon_ca.paa new file mode 100644 index 0000000000..4799db17ec Binary files /dev/null and b/addons/dogtags/data/dogtag_icon_ca.paa differ diff --git a/addons/dogtags/data/dogtag_nohq.paa b/addons/dogtags/data/dogtag_nohq.paa new file mode 100644 index 0000000000..faeed10bd6 Binary files /dev/null and b/addons/dogtags/data/dogtag_nohq.paa differ diff --git a/addons/dogtags/data/model.cfg b/addons/dogtags/data/model.cfg new file mode 100644 index 0000000000..cb919c9950 --- /dev/null +++ b/addons/dogtags/data/model.cfg @@ -0,0 +1,16 @@ +class CfgSkeletons { + class Default { + isDiscrete = 1; + skeletonInherit = ""; + skeletonBones[] = {}; + }; +}; + +class CfgModels { + class Default { + sectionsInherit = ""; + sections[] = {""}; + skeletonName = "Default"; + }; + class ace_dogtag: Default {}; +}; diff --git a/addons/dogtags/functions/fnc_addDogtagActions.sqf b/addons/dogtags/functions/fnc_addDogtagActions.sqf new file mode 100644 index 0000000000..ffc45532e9 --- /dev/null +++ b/addons/dogtags/functions/fnc_addDogtagActions.sqf @@ -0,0 +1,40 @@ +/* + * Author: SzwedzikPL + * Creates one action per dogtag. + * + * Arguments: + * 0: Target + * 1: Player + * + * Return Value: + * Children actions + * + * Public: No + */ +#include "script_component.hpp" + +params ["_target", "_player"]; + +//Get all dogtags and their ids +private _unitDogtags = []; +private _unitDogtagIDs = []; +{ + private _id = getNumber (configFile >> "CfgWeapons" >> _x >> QGVAR(tagID)); + if (_id > 0) then { + _unitDogtags pushBack _x; + _unitDogtagIDs pushBack _id; + }; +} forEach items _player; + +//Create action children for all dogtags +private _actions = []; +{ + private _tagID = _unitDogtagIDs select _forEachIndex; + private _displayName = format ["%1 #%2", getText (configFile >> "CfgWeapons" >> _x >> "displayName"), _tagID]; + private _picture = getText (configFile >> "CfgWeapons" >> _x >> "picture"); + + private _action = [_x, _displayName, _picture, {_this call FUNC(checkDogtagItem)}, {true}, {}, _x] call EFUNC(interact_menu,createAction); + _actions pushBack [_action, [], _player]; +} forEach _unitDogtags; + +_actions diff --git a/addons/dogtags/functions/fnc_addDogtagItem.sqf b/addons/dogtags/functions/fnc_addDogtagItem.sqf new file mode 100644 index 0000000000..f4890782b0 --- /dev/null +++ b/addons/dogtags/functions/fnc_addDogtagItem.sqf @@ -0,0 +1,24 @@ +/* + * Author: SzwedzikPL + * Adds dogtag item to unit (triggered by server) + * + * Arguments: + * 0: Item class + * 1: Dogtag data + * + * Return Value: + * None + * + * Public: No + */ +#include "script_component.hpp" + +params ["_item", "_dogtagData"]; + +if (_item == "") exitWith {}; + +[ace_player, _item] call CBA_fnc_addItem; + +_dogtagData params ["_nickName"]; +private _displayText = format [localize LSTRING(takeDogtagSuccess), _nickName]; +[_displayText] call EFUNC(common,displayText); diff --git a/addons/dogtags/functions/fnc_bloodType.sqf b/addons/dogtags/functions/fnc_bloodType.sqf new file mode 100644 index 0000000000..2111e16ccf --- /dev/null +++ b/addons/dogtags/functions/fnc_bloodType.sqf @@ -0,0 +1,24 @@ +/* + * Author: commy2 + * Reports a blood type depending on the units name. + * + * Arguments: + * 0: Name of a unit + * + * Return Value: + * A random blood type + * + * Public: No + */ +#include "script_component.hpp" + +#define BLOOD_TYPES ["O POS", "O NEG", "A POS", "A NEG", "B POS", "B NEG", "AB POS", "AB NEG"] + +params ["_name"]; + +private _num = 0; +private _count = {_num = _num + _x} count toArray _name; + +_num = _num + _count; + +BLOOD_TYPES select (_num % count BLOOD_TYPES) diff --git a/addons/dogtags/functions/fnc_canCheckDogtag.sqf b/addons/dogtags/functions/fnc_canCheckDogtag.sqf new file mode 100644 index 0000000000..a05629c72f --- /dev/null +++ b/addons/dogtags/functions/fnc_canCheckDogtag.sqf @@ -0,0 +1,20 @@ +/* + * Author: SzwedzikPL + * Checks if dogtag can be checked. + * + * Arguments: + * 0: Player + * 1: Target + * + * Return Value: + * True if dogtag can be checked + * + * Public: No + */ +#include "script_component.hpp" + +params ["_player", "_target"]; + +if (isNull _target) exitWith {false}; + +(!alive _target) || {_target getVariable ["ACE_isUnconscious", false]} diff --git a/addons/dogtags/functions/fnc_canTakeDogtag.sqf b/addons/dogtags/functions/fnc_canTakeDogtag.sqf new file mode 100644 index 0000000000..b8279144bb --- /dev/null +++ b/addons/dogtags/functions/fnc_canTakeDogtag.sqf @@ -0,0 +1,20 @@ +/* + * Author: SzwedzikPL + * Checks if dogtag can be taken. + * + * Arguments: + * 0: Player + * 1: Target + * + * Return Value: + * True if dogtag can be taken + * + * Public: No + */ +#include "script_component.hpp" + +params ["_player", "_target"]; + +if (isNull _target) exitWith {false}; + +(!alive _target) || {_target getVariable ["ACE_isUnconscious", false]} diff --git a/addons/dogtags/functions/fnc_checkDogtag.sqf b/addons/dogtags/functions/fnc_checkDogtag.sqf new file mode 100644 index 0000000000..6345871f02 --- /dev/null +++ b/addons/dogtags/functions/fnc_checkDogtag.sqf @@ -0,0 +1,21 @@ +/* + * Author: SzwedzikPL + * Checks unit dogtag + * + * Arguments: + * 0: Player + * 1: Target + * + * Return Value: + * None + * + * Public: No + */ +#include "script_component.hpp" + +params ["_player", "_target"]; + +private _doubleTags = (_target getVariable [QGVAR(dogtagTaken), objNull]) != _target; +private _dogTagData = [_target] call FUNC(getDogTagData); + +[QGVAR(showDogtag), [_dogTagData, _doubleTags]] call CBA_fnc_localEvent; diff --git a/addons/dogtags/functions/fnc_checkDogtagItem.sqf b/addons/dogtags/functions/fnc_checkDogtagItem.sqf new file mode 100644 index 0000000000..930532a0d9 --- /dev/null +++ b/addons/dogtags/functions/fnc_checkDogtagItem.sqf @@ -0,0 +1,19 @@ +/* + * Author: SzwedzikPL + * Check dogtag self menu action + * + * Arguments: + * 0: Player + * 1: Target + * 2: Item class + * + * Return Value: + * Mone + * + * Public: No + */ +#include "script_component.hpp" + +params ["_player", "_target", "_item"]; + +[QGVAR(sendDogtagData), [_player, _item]] call CBA_fnc_serverEvent; diff --git a/addons/dogtags/functions/fnc_getDogtagData.sqf b/addons/dogtags/functions/fnc_getDogtagData.sqf new file mode 100644 index 0000000000..485e09789e --- /dev/null +++ b/addons/dogtags/functions/fnc_getDogtagData.sqf @@ -0,0 +1,31 @@ +/* + * Author: esteldunedain + * Get unit dogtag data + * + * Arguments: + * 0: Target + * + * Return Value: + * None + * + * Public: No + */ +#include "script_component.hpp" + +params ["_target"]; + +// Check if the data was already created +private _dogTagData = _target getVariable QGVAR(dogtagData); +if (!isNil "_dogTagData") exitWith {_dogTagData}; + +// Create dog tag data once for the unit: nickname, code (eg. 135-13-900) and blood type +private _targetName = [_target, false, true] call EFUNC(common,getName); + +private _dogTagData = [ + _targetName, + _targetName call FUNC(ssn), + _targetName call FUNC(bloodType) +]; +// Store it +_target setVariable [QGVAR(dogtagData), _dogTagData, true]; +_dogTagData diff --git a/addons/dogtags/functions/fnc_getDogtagItem.sqf b/addons/dogtags/functions/fnc_getDogtagItem.sqf new file mode 100644 index 0000000000..aee57b31e3 --- /dev/null +++ b/addons/dogtags/functions/fnc_getDogtagItem.sqf @@ -0,0 +1,36 @@ +/* + * Author: SzwedzikPL + * Server: creates new dogtag item and send it to client + * + * Arguments: + * 0: Player + * 1: Target + * + * Return Value: + * None + * + * Public: No + */ +#include "script_component.hpp" + +if(!isServer) exitWith {}; + +params ["_player", "_target"]; +TRACE_2("getDogtagItem",_player,_target); + +private _allDogtags = missionNamespace getVariable [QGVAR(allDogtags), []]; +private _allDogtagDatas = missionNamespace getVariable [QGVAR(allDogtagDatas), []]; + +private _nextID = count _allDogtags + 1; + +if (_nextID > 999) exitWith {ACE_LOGERROR("Ran out of IDs");}; + +private _dogTagData = [_target] call FUNC(getDogTagData); +private _item = format ["ACE_dogtag_%1", _nextID]; +_allDogtags pushBack _item; +_allDogtagDatas pushBack _dogTagData; + +missionNamespace setVariable [QGVAR(allDogtags), _allDogtags]; +missionNamespace setVariable [QGVAR(allDogtagDatas), _allDogtagDatas]; + +[QGVAR(addDogtagItem), [_item, _dogTagData], [_player]] call CBA_fnc_targetEvent; diff --git a/addons/dogtags/functions/fnc_sendDogtagData.sqf b/addons/dogtags/functions/fnc_sendDogtagData.sqf new file mode 100644 index 0000000000..cadb343796 --- /dev/null +++ b/addons/dogtags/functions/fnc_sendDogtagData.sqf @@ -0,0 +1,30 @@ +/* + * Author: SzwedzikPL + * Server: returns to client data on given dogtag + * + * Arguments: + * 0: Player + * 1: Target + * + * Return Value: + * None + * + * Public: No + */ +#include "script_component.hpp" + +if(!isServer) exitWith {}; + +params ["_target", "_item"]; +TRACE_2("sendDogtagData",_target,_item); + +private _allDogtags = missionNameSpace getVariable [QGVAR(allDogtags), []]; +private _allDogtagDatas = missionNameSpace getVariable [QGVAR(allDogtagDatas), []]; + +private _dogtagData = []; +private _index = _allDogtags find _item; +if (_index >= 0) then { + _dogtagData = _allDogtagDatas select _index; +}; + +[QGVAR(showDogtag), [_dogtagData], [_target]] call CBA_fnc_targetEvent; diff --git a/addons/dogtags/functions/fnc_showDogtag.sqf b/addons/dogtags/functions/fnc_showDogtag.sqf new file mode 100644 index 0000000000..119a2de773 --- /dev/null +++ b/addons/dogtags/functions/fnc_showDogtag.sqf @@ -0,0 +1,32 @@ +/* + * Author: SzwedzikPL + * Shows dogtag + * + * Arguments: + * 0: Dog tag data + * 1: Display as double tag + * + * Return Value: + * None + * + * Public: No + */ +#include "script_component.hpp" + +disableSerialization; + +params ["_dogtagData", ["_doubleTags", false, [false]]]; + +if (!hasInterface || {_dogtagData isEqualTo []}) exitWith {}; + +if (_doubleTags) then { + (QGVAR(tag) call BIS_fnc_rscLayer) cutRsc [QGVAR(doubleTag), "PLAIN", 1, true]; +} else { + (QGVAR(tag) call BIS_fnc_rscLayer) cutRsc [QGVAR(singleTag), "PLAIN", 1, true]; +}; +private _display = uiNamespace getvariable [QGVAR(tag), displayNull]; +if(isNull _display) exitWith {}; + +private _control = _display displayCtrl 1001; +_dogtagData params ["_nickName", "_code", "_bloodType"]; +_control ctrlSetStructuredText parseText format ["%1
%2
%3", toUpper _nickName, _code, _bloodType]; diff --git a/addons/dogtags/functions/fnc_ssn.sqf b/addons/dogtags/functions/fnc_ssn.sqf new file mode 100644 index 0000000000..adf5d1c6f8 --- /dev/null +++ b/addons/dogtags/functions/fnc_ssn.sqf @@ -0,0 +1,31 @@ +/* + * Author: SilentSpike + * Reports a social security number generated from the units name. + * + * Arguments: + * 0: Name of a unit + * + * Return Value: + * A random three/two/four format social security number + * + * Public: No + */ +#include "script_component.hpp" + +params ["_name"]; +private _length = count _name; +private _chars = toArray _name; + +// For short names, reuse characters +if (_length < 9) then { + // Iterates every second character, swapping odd/even with each loop + for [{_i = 0},{_i < 2*(9 - _length)},{_i = _i + 2}] do { + _chars pushBack (_chars select floor((_i + (_i/_length % 2)) % _length)); + }; +}; + +// Offset array slice for long names to make generation more unique +private _slice = [0, _length % 9] select (_length > 9); +private _nums = (_chars select [_slice, 9]) apply { _x % 10 }; + +([_nums select [0,3],_nums select [3,2], _nums select [5,4]] apply { _x joinString "" }) joinString "-" diff --git a/addons/dogtags/functions/fnc_takeDogtag.sqf b/addons/dogtags/functions/fnc_takeDogtag.sqf new file mode 100644 index 0000000000..e8c93a985d --- /dev/null +++ b/addons/dogtags/functions/fnc_takeDogtag.sqf @@ -0,0 +1,24 @@ +/* + * Author: SzwedzikPL + * If dogtag is not already taken triggers event on server + * If dogtag already taken displays info about it + * + * Arguments: + * 0: Player + * 1: Target + * + * Return Value: + * None + * + * Public: No + */ +#include "script_component.hpp" + +params ["_player", "_target"]; + +if ((_target getVariable [QGVAR(dogtagTaken), objNull]) == _target) then { + [localize LSTRING(dogtagAlreadyTaken)] call EFUNC(common,displayText); +} else { + _target setVariable [QGVAR(dogtagTaken), _target, true]; + [QGVAR(getDogtagItem), [_player, _target]] call CBA_fnc_serverEvent; +}; diff --git a/addons/dogtags/functions/script_component.hpp b/addons/dogtags/functions/script_component.hpp new file mode 100644 index 0000000000..583e76df33 --- /dev/null +++ b/addons/dogtags/functions/script_component.hpp @@ -0,0 +1 @@ +#include "\z\ace\addons\dogtags\script_component.hpp" diff --git a/addons/dogtags/script_component.hpp b/addons/dogtags/script_component.hpp new file mode 100644 index 0000000000..980222c8da --- /dev/null +++ b/addons/dogtags/script_component.hpp @@ -0,0 +1,17 @@ +#define COMPONENT dogtags +#include "\z\ace\addons\main\script_mod.hpp" + +// #define DEBUG_MODE_FULL +// #define DISABLE_COMPILE_CACHE +// #define CBA_DEBUG_SYNCHRONOUS +// #define ENABLE_PERFORMANCE_COUNTERS + +#ifdef DEBUG_ENABLED_DOGTAGS + #define DEBUG_MODE_FULL +#endif + +#ifdef DEBUG_SETTINGS_DOGTAGS + #define DEBUG_SETTINGS DEBUG_SETTINGS_DOGTAGS +#endif + +#include "\z\ace\addons\main\script_macros.hpp" diff --git a/addons/dogtags/stringtable.xml b/addons/dogtags/stringtable.xml new file mode 100644 index 0000000000..3e946c5ec0 --- /dev/null +++ b/addons/dogtags/stringtable.xml @@ -0,0 +1,29 @@ + + + + + Dog Tag + Nieśmiertelnik + + + Check Dog Tag + Sprawdź nieśmiertelnik + + + Check + Sprawdź + + + Take + Zabierz + + + Dogtag taken from %1... + Zabrałeś nieśmiertelnik %1... + + + Somebody else has already taken the dogtag... + Ktoś już zabrał ten nieśmiertelnik... + + + \ No newline at end of file diff --git a/addons/dragging/XEH_postInit.sqf b/addons/dragging/XEH_postInit.sqf index 6b2fd02dde..0d8e7757eb 100644 --- a/addons/dragging/XEH_postInit.sqf +++ b/addons/dragging/XEH_postInit.sqf @@ -28,3 +28,30 @@ if (isNil "ACE_maxWeightCarry") then { ["ace_unconscious", {_this call FUNC(handleUnconscious)}] call CBA_fnc_addEventHandler; //@todo Captivity? + +//Add Keybind: +["ACE3 Common", QGVAR(drag), (localize LSTRING(DragKeybind)), +{ + if (!alive ACE_player) exitWith {false}; + if !([ACE_player, objNull, ["isNotDragging", "isNotCarrying"]] call EFUNC(common,canInteractWith)) exitWith {false}; + + // If we are drag/carrying something right now then just drop it: + if (ACE_player getVariable [QGVAR(isDragging), false]) exitWith { + [ACE_player, ACE_player getVariable [QGVAR(draggedObject), objNull]] call FUNC(dropObject); + false + }; + if (ACE_player getVariable [QGVAR(isCarrying), false]) exitWith { + [ACE_player, ACE_player getVariable [QGVAR(carriedObject), objNull]] call FUNC(dropObject_carry); + false + }; + + private _cursor = cursorObject; + if ((isNull _cursor) || {(_cursor distance ACE_player) > 2.6}) exitWith {false}; + if (!([ACE_player, _cursor] call FUNC(canDrag))) exitWith {false}; + + [ACE_player, _cursor] call FUNC(startDrag); + false +}, +{false}, +[-1, [false, false, false]]] call CBA_fnc_addKeybind; // UNBOUND + diff --git a/addons/dragging/stringtable.xml b/addons/dragging/stringtable.xml index b0334f3ca2..94757299cc 100644 --- a/addons/dragging/stringtable.xml +++ b/addons/dragging/stringtable.xml @@ -25,6 +25,18 @@ Lascia Elengedés + + Drag/Release Object + Тащить/Отпустить Объекты + Arrastrar/Soltar Objeto + Ciągnij/Puść Obiekt + Táhnout/Položit Objekt + Trainer/Lâcher Objets + Objekt ziehen/loslassen + Arrastar/Soltar Objeto + Trascina/Lascia Oggetto + Húzás/Elengedés Objektum + Item too heavy Gegenstand ist zu schwer diff --git a/addons/explosives/CfgVehicles.hpp b/addons/explosives/CfgVehicles.hpp index b2cd562b18..021d04af92 100644 --- a/addons/explosives/CfgVehicles.hpp +++ b/addons/explosives/CfgVehicles.hpp @@ -286,7 +286,7 @@ class CfgVehicles { class B_Soldier_03_f; class B_engineer_F:B_Soldier_03_f {MACRO_ADDMINEKIT}; class B_Soldier_diver_base_F; class B_diver_exp_F:B_Soldier_diver_base_F {MACRO_ADDMINEKIT}; class B_Soldier_recon_base; class B_recon_exp_F:B_Soldier_recon_base {MACRO_ADDMINEKIT}; - class B_CTRG_soldier_engineer_exp_F:B_Soldier_base_F {MACRO_ADDMINEKIT}; + class B_Soldier_02_f; class B_CTRG_soldier_engineer_exp_F:B_Soldier_02_f {MACRO_ADDMINEKIT}; class I_G_Soldier_base_F; class I_G_engineer_F:I_G_Soldier_base_F {MACRO_ADDMINEKIT}; class I_G_Soldier_exp_F:I_G_Soldier_base_F {MACRO_ADDMINEKIT}; class B_G_engineer_F:I_G_engineer_F {MACRO_ADDMINEKIT}; diff --git a/addons/fcs/ACE_UI.hpp b/addons/fcs/ACE_UI.hpp index ca35779f36..9423e49656 100644 --- a/addons/fcs/ACE_UI.hpp +++ b/addons/fcs/ACE_UI.hpp @@ -1,7 +1,7 @@ class ACE_UI { class gunnerZeroing { class conditions { - ADDON = "false"; + ADDON = "(false)"; }; }; }; diff --git a/addons/huntir/CfgWeapons.hpp b/addons/huntir/CfgWeapons.hpp index 979fc8875c..799cfcb976 100644 --- a/addons/huntir/CfgWeapons.hpp +++ b/addons/huntir/CfgWeapons.hpp @@ -19,11 +19,6 @@ class CfgWeapons { class UGL_F: GrenadeLauncher { magazines[] += {"ACE_HuntIR_M203"}; }; - class GL_3GL_F: UGL_F { - //magazines[] += {"ACE_HuntIR_M203"}; - magazines[] = {"1Rnd_HE_Grenade_shell","UGL_FlareWhite_F","UGL_FlareGreen_F","UGL_FlareRed_F","UGL_FlareYellow_F","UGL_FlareCIR_F","1Rnd_Smoke_Grenade_shell","1Rnd_SmokeRed_Grenade_shell","1Rnd_SmokeGreen_Grenade_shell","1Rnd_SmokeYellow_Grenade_shell","1Rnd_SmokePurple_Grenade_shell","1Rnd_SmokeBlue_Grenade_shell","1Rnd_SmokeOrange_Grenade_shell","3Rnd_HE_Grenade_shell","3Rnd_UGL_FlareWhite_F","3Rnd_UGL_FlareGreen_F","3Rnd_UGL_FlareRed_F","3Rnd_UGL_FlareYellow_F","3Rnd_UGL_FlareCIR_F","3Rnd_Smoke_Grenade_shell","3Rnd_SmokeRed_Grenade_shell","3Rnd_SmokeGreen_Grenade_shell","3Rnd_SmokeYellow_Grenade_shell","3Rnd_SmokePurple_Grenade_shell","3Rnd_SmokeBlue_Grenade_shell","3Rnd_SmokeOrange_Grenade_shell","ACE_HuntIR_M203"}; - }; - class Rifle_Base_F; class arifle_MX_Base_F: Rifle_Base_F { class GL_3GL_F: UGL_F { diff --git a/addons/interact_menu/functions/fnc_renderActionPoints.sqf b/addons/interact_menu/functions/fnc_renderActionPoints.sqf index e30ee55c10..017d3e539b 100644 --- a/addons/interact_menu/functions/fnc_renderActionPoints.sqf +++ b/addons/interact_menu/functions/fnc_renderActionPoints.sqf @@ -159,7 +159,7 @@ if (count GVAR(collectedActionPoints) > 1) then { private _delta = vectorNormalized ((GVAR(collectedActionPoints) select _i select 1) vectorDiff (GVAR(collectedActionPoints) select _j select 1)); // If _i is inside a cone with 20º half angle with origin on _j - if (_delta select 2 > 0.94) exitWith { + if ((_delta select 2 > 0.94) && {((GVAR(collectedActionPoints) select _i select 1) distance2d (GVAR(collectedActionPoints) select _j select 1)) < 0.1}) exitWith { GVAR(collectedActionPoints) deleteAt _i; }; }; diff --git a/addons/javelin/CfgWeapons.hpp b/addons/javelin/CfgWeapons.hpp index 868b77c36c..45c8c5942c 100644 --- a/addons/javelin/CfgWeapons.hpp +++ b/addons/javelin/CfgWeapons.hpp @@ -38,6 +38,9 @@ class CfgWeapons { lockingTargetSound[] = {"",0,1}; lockedTargetSound[] = {"",0,1}; }; + class launch_B_Titan_short_tna_F: launch_B_Titan_short_F { + GVAR(enabled) = 1; + }; class launch_I_Titan_short_F: launch_Titan_short_base { GVAR(enabled) = 1; weaponInfoType = "ACE_RscOptics_javelin"; @@ -59,6 +62,9 @@ class CfgWeapons { lockingTargetSound[] = {"",0,1}; lockedTargetSound[] = {"",0,1}; }; + class launch_O_Titan_short_ghex_F: launch_O_Titan_short_F { + GVAR(enabled) = 1; + }; class launch_Titan_short_F: launch_Titan_short_base { GVAR(enabled) = 1; weaponInfoType = "ACE_RscOptics_javelin"; diff --git a/addons/javelin/functions/fnc_cycleFireMode.sqf b/addons/javelin/functions/fnc_cycleFireMode.sqf index d14c0cdee5..50609b3468 100644 --- a/addons/javelin/functions/fnc_cycleFireMode.sqf +++ b/addons/javelin/functions/fnc_cycleFireMode.sqf @@ -2,12 +2,12 @@ #include "script_component.hpp" TRACE_1("enter", _this); -private["_player", "_currentFireMode"]; +private _currentShooter = if (ACE_player call CBA_fnc_canUseWeapon) then {ACE_player} else {vehicle ACE_player}; +private _currentFireMode = _currentShooter getVariable["ace_missileguidance_attackProfile", "JAV_TOP"]; -_currentFireMode = ACE_player getVariable["ace_missileguidance_attackProfile", "JAV_TOP"]; if(_currentFireMode == "JAV_DIR") then { _currentFireMode = "JAV_TOP"; } else { _currentFireMode = "JAV_DIR"; }; -ACE_player setVariable["ace_missileguidance_attackProfile", _currentFireMode, false]; +_currentShooter setVariable["ace_missileguidance_attackProfile", _currentFireMode, false]; diff --git a/addons/javelin/functions/fnc_onOpticDraw.sqf b/addons/javelin/functions/fnc_onOpticDraw.sqf index 20606dc4dd..7d1bf64b33 100644 --- a/addons/javelin/functions/fnc_onOpticDraw.sqf +++ b/addons/javelin/functions/fnc_onOpticDraw.sqf @@ -11,7 +11,7 @@ private["_firedEH", "_fov", "_lastTick", "_lockTime", "_maxX", "_maxY", "_minX", private["_offsetX", "_offsetY", "_pos", "_randomLockInterval", "_randomPosWithinBounds", "_range"]; private["_runTime", "_soundTime", "_targetArray", "_zamerny", "_currentShooter"]; -_currentShooter = (vehicle ACE_player); +_currentShooter = if (ACE_player call CBA_fnc_canUseWeapon) then {ACE_player} else {vehicle ACE_player}; #define __OffsetX ((ctrlPosition __JavelinIGUITargetingLineV) select 0) - 0.5 #define __OffsetY ((ctrlPosition __JavelinIGUITargetingLineH) select 1) - 0.5 diff --git a/addons/javelin/functions/fnc_onOpticLoad.sqf b/addons/javelin/functions/fnc_onOpticLoad.sqf index b75f391112..5148ca983f 100644 --- a/addons/javelin/functions/fnc_onOpticLoad.sqf +++ b/addons/javelin/functions/fnc_onOpticLoad.sqf @@ -2,13 +2,15 @@ #include "script_component.hpp" TRACE_1("enter", _this); -#define __LOCKONTIMERANDOM 2 // Deviation in lock on time +#define __LOCKONTIMERANDOM 1 // Deviation in lock on time if((count _this) > 0) then { uiNameSpace setVariable ['ACE_RscOptics_javelin',_this select 0]; }; -ACE_player setVariable ["ace_missileguidance_target",nil, false]; +private _currentShooter = if (ACE_player call CBA_fnc_canUseWeapon) then {ACE_player} else {vehicle ACE_player}; +TRACE_2("shooter",_currentShooter,typeOf _currentShooter); +_currentShooter setVariable ["ace_missileguidance_target", nil, false]; __JavelinIGUISeek ctrlSetTextColor __ColorGray; __JavelinIGUINFOV ctrlSetTextColor __ColorGray; diff --git a/addons/javelin/functions/fnc_showFireMode.sqf b/addons/javelin/functions/fnc_showFireMode.sqf index 5b4f8d7814..95dd038b92 100644 --- a/addons/javelin/functions/fnc_showFireMode.sqf +++ b/addons/javelin/functions/fnc_showFireMode.sqf @@ -2,13 +2,13 @@ #include "script_component.hpp" TRACE_1("enter", _this); -private["_player", "_currentFireMode"]; +private _currentShooter = if (ACE_player call CBA_fnc_canUseWeapon) then {ACE_player} else {vehicle ACE_player}; +private _currentFireMode = _currentShooter getVariable ["ace_missileguidance_attackProfile", "JAV_TOP"]; -_currentFireMode = ACE_player getVariable["ace_missileguidance_attackProfile", "JAV_TOP"]; if(_currentFireMode == "JAV_TOP") then { __JavelinIGUITop ctrlSetTextColor __ColorGreen; __JavelinIGUIDir ctrlSetTextColor __ColorGray; } else { __JavelinIGUITop ctrlSetTextColor __ColorGray; __JavelinIGUIDir ctrlSetTextColor __ColorGreen; -}; \ No newline at end of file +}; diff --git a/addons/main/script_macros.hpp b/addons/main/script_macros.hpp index c7997dee28..05db6cd146 100644 --- a/addons/main/script_macros.hpp +++ b/addons/main/script_macros.hpp @@ -84,6 +84,7 @@ #define TYPE_BACKPACK 901 #ifdef DISABLE_COMPILE_CACHE + #undef PREP #define PREP(fncName) DFUNC(fncName) = compile preprocessFileLineNumbers QPATHTOF(functions\DOUBLES(fnc,fncName).sqf) #else #undef PREP diff --git a/addons/medical/functions/fnc_displayPatientInformation.sqf b/addons/medical/functions/fnc_displayPatientInformation.sqf index 0f44ea5699..9d5253bd48 100644 --- a/addons/medical/functions/fnc_displayPatientInformation.sqf +++ b/addons/medical/functions/fnc_displayPatientInformation.sqf @@ -129,7 +129,7 @@ if (_show) then { }; } foreach _bandagedwounds; } else { - private _damaged = [true, true, true, true, true, true]; + _damaged = [true, true, true, true, true, true]; { private _hitPoint = [_target, _x, true] call FUNC(translateSelections); _selectionBloodLoss set [_forEachIndex, _target getHitPointDamage _hitPoint]; diff --git a/addons/medical/functions/fnc_reviveStateLoop.sqf b/addons/medical/functions/fnc_reviveStateLoop.sqf index bfc55ae6d8..5dcaad09c4 100644 --- a/addons/medical/functions/fnc_reviveStateLoop.sqf +++ b/addons/medical/functions/fnc_reviveStateLoop.sqf @@ -21,13 +21,6 @@ if (!local _unit) exitWith {}; private _startTime = _unit getVariable [QGVAR(reviveStartTime), 0]; -// Remove heartbeat -if (GVAR(level) >= 2) then { - if (_unit getVariable [QGVAR(heartRate), 60] > 0) then { - _unit setVariable [QGVAR(heartRate), 0]; - }; -}; - // If we are in revive state in a blown up vehicle, try to unload so that people can access the body if ((alive _unit) && {(vehicle _unit) != _unit} && {!alive (vehicle _unit)}) then { TRACE_2("Unloading", _unit, vehicle _unit); @@ -52,5 +45,12 @@ if !(_unit getVariable [QGVAR(inReviveState), false]) exitwith { _unit setVariable [QGVAR(reviveStartTime), nil]; }; +// Remove heartbeat +if (GVAR(level) >= 2) then { + if (_unit getVariable [QGVAR(heartRate), 60] > 0) then { + _unit setVariable [QGVAR(heartRate), 0]; + }; +}; + // Schedule the loop to be executed again 1 sec later [DFUNC(reviveStateLoop), [_unit], 1] call CBA_fnc_waitAndExecute; diff --git a/addons/medical/functions/fnc_serverRemoveBody.sqf b/addons/medical/functions/fnc_serverRemoveBody.sqf index 42e755f003..f68ffd95cd 100644 --- a/addons/medical/functions/fnc_serverRemoveBody.sqf +++ b/addons/medical/functions/fnc_serverRemoveBody.sqf @@ -27,7 +27,7 @@ if (isNil QGVAR(bodiesToDelete)) then {GVAR(bodiesToDelete) = [];}; GVAR(bodiesToDelete) pushBack _target; // Start up a loop to wait for bodies to be free to delete -if ((count GVAR(bodiesToDelete)) > 0) then { +if ((count GVAR(bodiesToDelete)) == 1) then { [] call FUNC(bodyCleanupLoop); }; diff --git a/addons/missileguidance/functions/fnc_checkLos.sqf b/addons/missileguidance/functions/fnc_checkLos.sqf index d1123a95f2..bf9cec5777 100644 --- a/addons/missileguidance/functions/fnc_checkLos.sqf +++ b/addons/missileguidance/functions/fnc_checkLos.sqf @@ -14,6 +14,8 @@ private["_seeker", "_seekerPos", "_target", "_targetPos", "_return", "_vectorTo" _seeker = _this select 0; _target = _this select 1; +if ((isNil "_seeker") || {isNil "_target"}) exitWith {false}; + _targetPos = getPosASL _target; _seekerPos = getPosASL _seeker; _return = true; diff --git a/addons/nametags/functions/fnc_drawNameTagIcon.sqf b/addons/nametags/functions/fnc_drawNameTagIcon.sqf index a765f1b802..bfe065cf30 100644 --- a/addons/nametags/functions/fnc_drawNameTagIcon.sqf +++ b/addons/nametags/functions/fnc_drawNameTagIcon.sqf @@ -37,7 +37,7 @@ _fnc_parameters = { _size = 1; } else { if (_drawRank && {rank _target != ""}) then { - _icon = GVAR(factionRanks) getVariable faction _target; + _icon = GVAR(factionRanks) getVariable (_target getVariable [QGVAR(faction), faction _target]); if (!isNil "_icon") then { _icon = _icon param [ALL_RANKS find rank _target, ""]; } else { diff --git a/addons/optionsmenu/gui/aceMenuIcon_ca.paa b/addons/optionsmenu/gui/aceMenuIcon_ca.paa new file mode 100644 index 0000000000..0e3c1853e2 Binary files /dev/null and b/addons/optionsmenu/gui/aceMenuIcon_ca.paa differ diff --git a/addons/optionsmenu/gui/define.hpp b/addons/optionsmenu/gui/define.hpp index c2b1faf9cf..9620bdd7e6 100644 --- a/addons/optionsmenu/gui/define.hpp +++ b/addons/optionsmenu/gui/define.hpp @@ -12,6 +12,11 @@ class RscHTML; class RscText; +class RscControlsGroupNoHScrollbars; +class RscPicture; +class RscButtonMenu; + + #ifndef ACE_DEFINE_H #define ACE_DEFINE_H diff --git a/addons/optionsmenu/gui/pauseMenu.hpp b/addons/optionsmenu/gui/pauseMenu.hpp index 34f368df4a..e3a283d2c7 100644 --- a/addons/optionsmenu/gui/pauseMenu.hpp +++ b/addons/optionsmenu/gui/pauseMenu.hpp @@ -108,62 +108,90 @@ class RscDisplayMain: RscStandardDisplay { idc = 80085; }; - class ACE_news: RscControlsGroupNoScrollbars { - idc = 80086; - x = "safezoneX + safezoneW - (16 *(((safezoneW / safezoneH) min 1.2) / 40))"; - y = "safezoneY + (18.5 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25))"; - w = "15 * (((safezoneW / safezoneH) min 1.2) / 40)"; - h = "4.95 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25)"; - class controls { - class ACE_NewsTitle: RscText { - text = CSTRING(aceNews); - colorBackground[] = {(162/255),(28/255),(28/255),0.8}; - idc = -1; - x = "0 * (((safezoneW / safezoneH) min 1.2) / 40)"; - y = "0 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25)"; - w = "15 *(((safezoneW / safezoneH) min 1.2) / 40)"; - h = "1 *((((safezoneW / safezoneH) min 1.2) / 1.2) / 25)"; - }; - class ACE_VersionInfo: RscText { - idc = 68; - x = "0 * (((safezoneW / safezoneH) min 1.2) / 40)"; - y = "1.1 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25)"; - w = "15 * (((safezoneW / safezoneH) min 1.2) / 40)"; - h = "1 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25)"; - colorBackground[] = {0,0,0,0.5}; - }; - class ACE_NewsBackground: RscText { - idc = -1; - x = "0 * (((safezoneW / safezoneH) min 1.2) / 40)"; - y = "2.2 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25)"; - w = "15 * (((safezoneW / safezoneH) min 1.2) / 40)"; - h = "5.75 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25)"; - colorBackground[] = {0,0,0,0.5}; - }; - class ACE_NewsText: RscHTML { - idc = 69; - x = "0.5 * (((safezoneW / safezoneH) min 1.2) / 40)"; - y = "2.2 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25)"; - w = "14 * (((safezoneW / safezoneH) min 1.2) / 40)"; - h = "2.75 *((((safezoneW / safezoneH) min 1.2) / 1.2) / 25)"; + class ACE_news_apex: RscControlsGroupNoHScrollbars { + idc = 80090; + x = "safezoneX + safezoneW - 10 * (pixelW * pixelGrid * 2) - (4 * pixelH)"; + y = "safezoneY + safezoneH - (3 * 2 + 1) * (pixelH * pixelGrid * 2) - 3 * (4 * pixelH)"; + w = "10 * (pixelW * pixelGrid * 2)"; + h = "2 * (pixelH * pixelGrid * 2)"; + class Controls { + class Background: RscPicture { + idc = 80091; + text = "\a3\Ui_f\data\GUI\Rsc\RscDisplayMain\gradientMods_ca.paa"; + colorText[] = {0,0,0,0.75}; + x = "(10 - 4 * 2) * (pixelW * pixelGrid * 2)"; + y = 0; + w = "4 * 2 * (pixelW * pixelGrid * 2)"; + h = "2 * (pixelH * pixelGrid * 2)"; + angle = 180; + }; + class BackgroundIcon: RscPicture { + idc = 80092; + text = "\a3\Ui_f\data\GUI\Rsc\RscDisplayMain\backgroundModsIcon_ca.paa"; + colorText[] = {0,0,0,0.75}; + x = "(10 - 2 * 2) * (pixelW * pixelGrid * 2)"; + y = 0; + w = "2 * 2 * (pixelW * pixelGrid * 2)"; + h = "2 * (pixelH * pixelGrid * 2)"; + angle = 180; + }; + class Icon: RscPicture { + idc = 80093; + text = QPATHTOF(gui\aceMenuIcon_ca.paa); + colorText[] = {1,1,1,0.5}; + x = "(10 - 2) * (pixelW * pixelGrid * 2)"; + y = 0; + w = "2 * (pixelW * pixelGrid * 2)"; + h = "2 * (pixelH * pixelGrid * 2)"; + }; + class CurrentVersionInfo: RscText { + idc = 80094; + style = 1; + text = ""; + sizeEx = "(pixelH * pixelGrid * 1.5)"; + font = "RobotoCondensedLight"; + shadow = 1; + colorBackground[] = {0,0,0,0}; + x = 0; + y = 0; + w = "(10 - 1.25 * 2) * (pixelW * pixelGrid * 2)"; + h = "2 * (pixelH * pixelGrid * 1)"; + onLoad = "(_this select 0) ctrlenable false;"; + }; + class HTTPVersionInfo: RscHTML { + idc = 80095; shadow = 0; class H1 { - font = "RobotoCondensed"; + sizeEx = "(pixelH * pixelGrid * 1.5)"; + font = "RobotoCondensedLight"; fontBold = "RobotoCondensedLight"; - sizeEx = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1.4)"; + align = "right"; }; class H2: H1 { - sizeEx = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1.2)"; - font = "RobotoCondensedLight"; + sizeEx = "(pixelH * pixelGrid * 1.5)"; }; class P: H1 { - sizeEx = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)"; - fontBold = "RobotoCondensedLight"; + sizeEx = "(pixelH * pixelGrid * 1.5)"; }; - colorBold[] = {0.6,0.6,0.6,1}; - colorLink[] = {"(profilenamespace getVariable ['GUI_BCG_RGB_R',0.69])","(profilenamespace getVariable ['GUI_BCG_RGB_G',0.75])","(profilenamespace getVariable ['GUI_BCG_RGB_B',0.5])",1}; - colorLinkActive[] = {"(profilenamespace getVariable ['GUI_BCG_RGB_R',0.69])","(profilenamespace getVariable ['GUI_BCG_RGB_G',0.75])","(profilenamespace getVariable ['GUI_BCG_RGB_B',0.5])",1}; + x = 0; + y = "2 * (pixelH * pixelGrid * 1)"; + w = "(10 - 1.25 * 2) * (pixelW * pixelGrid * 2)"; + h = "2 * (pixelH * pixelGrid * 1)"; + onLoad = "(_this select 0) ctrlenable false;"; + }; + class Button: RscButtonMenu { + idc = 80096; + colorBackground[] = {0,0,0,0}; + colorBackgroundFocused[] = {0,0,0,0}; + colorBackground2[] = {0,0,0,0}; + x = 0; + y = 0; + w = "10 * (pixelW * pixelGrid * 2)"; + h = "2 * (pixelH * pixelGrid * 2)"; + + tooltip = "Download latest and report issues:"; + url = "https://github.com/acemod/ACE3"; }; }; }; diff --git a/addons/optionsmenu/init_loadMainMenuBox.sqf b/addons/optionsmenu/init_loadMainMenuBox.sqf index 9c556e5128..a9b8f5a02a 100644 --- a/addons/optionsmenu/init_loadMainMenuBox.sqf +++ b/addons/optionsmenu/init_loadMainMenuBox.sqf @@ -15,17 +15,18 @@ */ #include "script_component.hpp" -if (missionNamespace getVariable [QGVAR(newsLoaded), false]) exitWith {}; -GVAR(newsLoaded) = true; - //Need to load from profileNamespace because ace_settings might not be init if world = empty if (profileNamespace getVariable [QGVAR(showNewsOnMainMenu), true]) then { - ((_this select 0) displayCtrl 80086) ctrlShow true; + ((_this select 0) displayCtrl 80090) ctrlShow true; - private ["_version"]; - _version = getText (configFile >> "CfgPatches" >> "ace_main" >> "versionStr"); - ((_this select 0) displayCtrl 68) ctrlSetText format ["Installed Version: %1", _version]; - ((_this select 0) displayCtrl 69) htmlLoad "http://ace3mod.com/version.html"; + private _ace3VersionStr = (getText (configFile >> "CfgPatches" >> "ace_main" >> "versionStr")) select [0,5]; + ((_this select 0) displayCtrl 80094) ctrlSetText format ["Version: %1", _ace3VersionStr]; + ((_this select 0) displayCtrl 80095) htmlLoad "http://ace3mod.com/version.html"; } else { - ((_this select 0) displayCtrl 80086) ctrlShow false; + ((_this select 0) displayCtrl 80090) ctrlShow false; }; + +/* +Note: switch version.html to simpler format and right align +

Latest: {{site.ace.version.major}}.{{site.ace.version.minor}}.{{site.ace.version.patch}}

+*/ diff --git a/addons/overheating/CfgWeapons.hpp b/addons/overheating/CfgWeapons.hpp index 12cfe6e498..c7a83eec6e 100644 --- a/addons/overheating/CfgWeapons.hpp +++ b/addons/overheating/CfgWeapons.hpp @@ -2,17 +2,6 @@ class CfgWeapons { class ACE_ItemCore; class InventoryItem_Base_F; - class ACE_SpareBarrel: ACE_ItemCore { - displayname = CSTRING(SpareBarrelName); - descriptionshort = CSTRING(SpareBarrelDescription); - //model = ""; - picture = QPATHTOF(UI\spare_barrel_ca.paa); - scope = 2; - class ItemInfo: InventoryItem_Base_F { - mass = 30; - }; - }; - class RifleCore; class Rifle: RifleCore { //Mean Rounds Between Stoppages (this will be scaled based on the barrel temp) diff --git a/addons/overheating/XEH_preInit.sqf b/addons/overheating/XEH_preInit.sqf index cdd1fa78dd..a7feade1c3 100644 --- a/addons/overheating/XEH_preInit.sqf +++ b/addons/overheating/XEH_preInit.sqf @@ -4,16 +4,4 @@ ADDON = false; #include "XEH_PREP.hpp" -if (isNil "CBA_fnc_getMagazineIndex") then { - CBA_fnc_getMagazineIndex = { - params [["_unit", objNull, [objNull]], ["_magazine", "", [""]]]; - - private _displayName = getText (configFile >> "CfgMagazines" >> _magazine >> "displayName"); - - if (_displayName isEqualTo "") exitWith {[]}; - - (magazinesDetail _unit select {_x find _displayName == 0}) apply {_x = _x splitString "[:]"; _x select (count _x - 1)}; - }; -}; - ADDON = true; diff --git a/addons/overheating/functions/fnc_displayTemperature.sqf b/addons/overheating/functions/fnc_displayTemperature.sqf index b2b8d2b4c0..e829b61f57 100644 --- a/addons/overheating/functions/fnc_displayTemperature.sqf +++ b/addons/overheating/functions/fnc_displayTemperature.sqf @@ -3,7 +3,7 @@ * Displays the weapon temperature * * Arguments: - * 0: Player + * 0: Unit * 1: Weapon * * Return Values: @@ -16,11 +16,13 @@ */ #include "script_component.hpp" -params ["_player", "_weapon"]; -TRACE_2("params",_player,_weapon); +params ["_unit", "_weapon"]; +TRACE_2("params",_unit,_weapon); + +// Get unit's weapon's temperature: +private _tempVarName = format [QGVAR(%1_temp), _weapon]; +private _temperature = _unit getVariable [_tempVarName, 0]; -// Calculate cool down of weapon since last shot -private _temperature = [_player, _weapon, 0] call FUNC(updateTemperature); private _scaledTemperature = (_temperature / 1000) min 1; private _color = [ @@ -41,6 +43,8 @@ for "_a" from (_count + 1) to 12 do { _string = _string + "|"; }; +TRACE_3("",_temperature,_color,_string); + _text = composeText [_text, [_string, [0.5, 0.5, 0.5]] call EFUNC(common,stringToColoredText)]; private _picture = getText (configFile >> "CfgWeapons" >> _weapon >> "picture"); diff --git a/addons/overheating/functions/fnc_loadCoolestSpareBarrel.sqf b/addons/overheating/functions/fnc_loadCoolestSpareBarrel.sqf index d6a9ccfe37..5f0b3ae3a9 100644 --- a/addons/overheating/functions/fnc_loadCoolestSpareBarrel.sqf +++ b/addons/overheating/functions/fnc_loadCoolestSpareBarrel.sqf @@ -50,4 +50,4 @@ _gunner setVariable [format [QGVAR(%1_temp), _weapon], _coolestTemp, true]; [GVAR(storedSpareBarrels), _coolestMag, [_weaponTemp, CBA_missionTime, _barrelMass]] call CBA_fnc_hashSet; // Send an event so the machines of the assistant and gunner can show the hint -[QGVAR(showWeaponTemperature), _gunner], [_gunner, _weapon], [_assistant] call CBA_fnc_targetEvent; +[QGVAR(showWeaponTemperature), [_gunner, _weapon], [_assistant, _gunner]] call CBA_fnc_targetEvent; diff --git a/addons/rearm/functions/fnc_rearmEntireVehicleSuccess.sqf b/addons/rearm/functions/fnc_rearmEntireVehicleSuccess.sqf index f82936b24a..2eb0b408f9 100644 --- a/addons/rearm/functions/fnc_rearmEntireVehicleSuccess.sqf +++ b/addons/rearm/functions/fnc_rearmEntireVehicleSuccess.sqf @@ -17,11 +17,21 @@ private ["_turretPath", "_magazines", "_magazine", "_currentMagazines", "_maxMagazines", "_maxRounds", "_currentRounds"]; params [["_vehicle", objNull, [objNull]]]; +TRACE_1("params",_vehicle); + +//ToDo: Cleanup with CBA_fnc_ownerEvent in CBA 2.4.2 +{ + [QGVAR(rearmEntireVehicleSuccessLocalEH), [_vehicle, _x]] call CBA_fnc_globalEvent; +} forEach REARM_TURRET_PATHS; + + +/* if (isServer) then { { _turretOwnerID = _vehicle turretOwner _x; if (_turretOwnerID == 0) then { + //wtf is _truck from??? [QGVAR(rearmEntireVehicleSuccessLocalEH), [_truck, _vehicle, _x], _truck] call CBA_fnc_targetEvent; } else { [QGVAR(rearmEntireVehicleSuccessLocalEH), [_truck, _vehicle, _x], _turretOwnerID] call CBA_fnc_targetEvent; @@ -30,3 +40,4 @@ if (isServer) then { } else { [QGVAR(rearmEntireVehicleSuccessLocalEH), _this] call CBA_fnc_serverEvent; }; +*/ diff --git a/addons/rearm/functions/fnc_rearmEntireVehicleSuccessLocal.sqf b/addons/rearm/functions/fnc_rearmEntireVehicleSuccessLocal.sqf index 7ebd4b8eba..7d81aa6345 100644 --- a/addons/rearm/functions/fnc_rearmEntireVehicleSuccessLocal.sqf +++ b/addons/rearm/functions/fnc_rearmEntireVehicleSuccessLocal.sqf @@ -18,6 +18,10 @@ private ["_magazines", "_magazine", "_currentMagazines", "_maxMagazines", "_maxRounds", "_currentRounds"]; params [["_vehicle", objNull, [objNull]], ["_turretPath", [], [[]]]]; +TRACE_2("params",_vehicle,_turretPath); + +//ToDo: Cleanup with CBA_fnc_ownerEvent in CBA 2.4.2 +if (!(_vehicle turretLocal _turretPath)) exitWith {TRACE_1("not local turret",_turretPath);}; _magazines = [_vehicle, _turretPath] call FUNC(getConfigMagazines); { diff --git a/addons/rearm/functions/fnc_rearmSuccess.sqf b/addons/rearm/functions/fnc_rearmSuccess.sqf index f8608817ea..4a8e4972ed 100644 --- a/addons/rearm/functions/fnc_rearmSuccess.sqf +++ b/addons/rearm/functions/fnc_rearmSuccess.sqf @@ -24,6 +24,7 @@ private ["_dummy", "_weaponSelect", "_turretOwnerID"]; params [["_args", [objNull, objNull, [], 0, "", 0], [[]], [6]]]; _args params ["_target", "_unit", "_turretPath", "_numMagazines", "_magazineClass", "_numRounds"]; +TRACE_6("params",_target,_unit,_turretPath,_numMagazines,_magazineClass,_numRounds); //hint format ["Target: %1\nTurretPath: %2\nNumMagazines: %3\nMagazine: %4\nNumRounds: %5", _target, _turretPath, _numMagazines, _magazineClass, _numRounds]; @@ -31,6 +32,10 @@ if (local _unit) then { [_unit, true, true] call FUNC(dropAmmo); }; +//ToDo: Cleanup with CBA_fnc_ownerEvent in CBA 2.4.2 +[QGVAR(rearmSuccessLocalEH), _this] call CBA_fnc_globalEvent; + +/* if (isServer) then { _turretOwnerID = _target turretOwner _turretPath; if (_turretOwnerID == 0) then { @@ -41,3 +46,4 @@ if (isServer) then { } else { [QGVAR(rearmSuccessLocalEH), _this] call CBA_fnc_serverEvent; }; + */ \ No newline at end of file diff --git a/addons/rearm/functions/fnc_rearmSuccessLocal.sqf b/addons/rearm/functions/fnc_rearmSuccessLocal.sqf index 44761d3d17..dc4afbc886 100644 --- a/addons/rearm/functions/fnc_rearmSuccessLocal.sqf +++ b/addons/rearm/functions/fnc_rearmSuccessLocal.sqf @@ -24,6 +24,10 @@ private ["_rounds", "_currentRounds", "_maxMagazines", "_currentMagazines", "_dummy", "_weaponSelect"]; params [["_args", [objNull, objNull, [], 0, "", 0], [[]], [6]]]; _args params ["_target", "_unit", "_turretPath", "_numMagazines", "_magazineClass", "_numRounds"]; +TRACE_6("params",_target,_unit,_turretPath,_numMagazines,_magazineClass,_numRounds); + +//ToDo: Cleanup with CBA_fnc_ownerEvent in CBA 2.4.2 +if (!(_target turretLocal _turretPath)) exitWith {TRACE_1("not local turret",_turretPath);}; //hint format ["Target: %1\nTurretPath: %2\nNumMagazines: %3\nMagazine: %4\nNumRounds: %5\nUnit: %6", _target, _turretPath, _numMagazines, _magazineClass, _numRounds, _unit]; diff --git a/addons/refuel/CfgVehicles.hpp b/addons/refuel/CfgVehicles.hpp index 6774140cc7..dd7499a69a 100644 --- a/addons/refuel/CfgVehicles.hpp +++ b/addons/refuel/CfgVehicles.hpp @@ -52,21 +52,13 @@ #define MACRO_CONNECT_ACTIONS \ class ACE_Actions { \ class ACE_MainActions { \ - class GVAR(Refuel) { \ - displayName = CSTRING(Refuel); \ + class GVAR(Connect) { \ + displayName = CSTRING(Connect); \ distance = REFUEL_ACTION_DISTANCE; \ - condition = "true"; \ - statement = ""; \ - showDisabled = 0; \ - priority = 2; \ + condition = QUOTE([ARR_2(_player,_target)] call FUNC(canConnectNozzle)); \ + statement = QUOTE([ARR_2(_player,_target)] call DFUNC(connectNozzle)); \ icon = QPATHTOF(ui\icon_refuel_interact.paa); \ - class GVAR(Connect) { \ - displayName = CSTRING(Connect); \ - condition = QUOTE([ARR_2(_player,_target)] call FUNC(canConnectNozzle)); \ - statement = QUOTE([ARR_2(_player,_target)] call DFUNC(connectNozzle)); \ - exceptions[] = {"isNotInside"}; \ - icon = QPATHTOF(ui\icon_refuel_interact.paa); \ - }; \ + exceptions[] = {"isNotInside"}; \ }; \ }; \ }; @@ -76,6 +68,7 @@ class ACE_MainActions { \ displayName = CSTRING(Refuel); \ distance = REFUEL_ACTION_DISTANCE; \ + position = "[0,-0.025,0.125]"; \ condition = "true"; \ statement = ""; \ showDisabled = 0; \ @@ -319,12 +312,17 @@ class CfgVehicles { }; class Van_01_fuel_base_F: Van_01_base_F { - transportFuel = 0; //1k MACRO_REFUEL_ACTIONS GVAR(hooks)[] = {{0.38,-3.17,-.7},{-0.41,-3.17,-.7}}; GVAR(fuelCargo) = 2000; }; - + class C_Van_01_fuel_F: Van_01_fuel_base_F { + transportFuel = 0; //1k + }; + class I_G_Van_01_fuel_F: Van_01_fuel_base_F { + transportFuel = 0; //1k + }; + class Tank_F: Tank { GVAR(fuelCapacity) = 1200; }; diff --git a/addons/refuel/XEH_postInit.sqf b/addons/refuel/XEH_postInit.sqf index 8c28464287..89a1f3dc45 100644 --- a/addons/refuel/XEH_postInit.sqf +++ b/addons/refuel/XEH_postInit.sqf @@ -9,3 +9,16 @@ if (isServer) then { [QGVAR(resetLocal), { _this call FUNC(resetLocal); }] call CBA_fnc_addEventHandler; + + +#ifdef DEBUG_MODE_FULL +diag_log text format ["[ACE-refuel] Showing CfgVehicles with vanilla transportFuel"]; +private _fuelTrucks = configProperties [configFile >> "CfgVehicles", "(isClass _x) && {(getNumber (_x >> 'transportFuel')) > 0}", true]; +{ + if ((configName _x) isKindOf "Car") then { + diag_log text format ["Car [%1] needs config [fuel: %2]", configName _x, getNumber (_x >> 'transportFuel')]; + } else { + diag_log text format ["Non-car? [%1] needs config [fuel: %2]", configName _x, getNumber (_x >> 'transportFuel')]; + }; +} forEach _fuelTrucks; +#endif diff --git a/addons/reload/ACE_UI.hpp b/addons/reload/ACE_UI.hpp index 6dae3e5147..8164d04b17 100644 --- a/addons/reload/ACE_UI.hpp +++ b/addons/reload/ACE_UI.hpp @@ -1,7 +1,7 @@ class ACE_UI { class ammoCount { class conditions { - ADDON = "false"; + ADDON = "(false)"; }; }; }; diff --git a/addons/repair/config.cpp b/addons/repair/config.cpp index dab412eb93..71a990ea73 100644 --- a/addons/repair/config.cpp +++ b/addons/repair/config.cpp @@ -25,5 +25,5 @@ class ACE_newEvents { setWheelHitPointDamage = QGVAR(setWheelHitPointDamage); setVehicleHitPointDamage = QGVAR(setVehicleHitPointDamage); setVehicleDamage = QGVAR(setVehicleDamage); - AddCargoByClass = "ace_addCargoByClass"; + AddCargoByClass = "ace_addCargo"; }; diff --git a/addons/repair/functions/fnc_addSpareParts.sqf b/addons/repair/functions/fnc_addSpareParts.sqf index 2d133da3c1..971abb571a 100644 --- a/addons/repair/functions/fnc_addSpareParts.sqf +++ b/addons/repair/functions/fnc_addSpareParts.sqf @@ -33,4 +33,4 @@ if (!EGVAR(common,settingsInitFinished)) exitWith { if (!_force && !GVAR(addSpareParts)) exitWith {}; // Load -["ace_addCargoByClass", [_part, _vehicle, _amount]] call CBA_fnc_localEvent; +["ace_addCargo", [_part, _vehicle, _amount]] call CBA_fnc_localEvent; diff --git a/addons/smallarms/CfgWeapons.hpp b/addons/smallarms/CfgWeapons.hpp index 75d8ee6538..1cb7979d5b 100644 --- a/addons/smallarms/CfgWeapons.hpp +++ b/addons/smallarms/CfgWeapons.hpp @@ -1,49 +1,10 @@ class Mode_SemiAuto; class Mode_Burst; class Mode_FullAuto; -class MuzzleSlot; - -// config inheritance of weapon slot info v1.32 -class SlotInfo; -class CowsSlot: SlotInfo {}; -class PointerSlot: SlotInfo { - //compatibleItems[] = {"acc_flashlight","acc_pointer_IR", "ACE_acc_flashlight_tls"}; -}; class CfgWeapons { - - // config inheritance of weapon slot info v1.32 for launchers - class Launcher; - class Launcher_Base_F: Launcher { - class WeaponSlotsInfo {}; - }; - - // config inheritance of weapon slot info v1.32 for assault rifles - class RifleCore; - class Rifle: RifleCore { - class WeaponSlotsInfo { - class MuzzleSlot: MuzzleSlot {}; - class CowsSlot: CowsSlot {}; - class PointerSlot: PointerSlot {}; - }; - }; - class Rifle_Base_F: Rifle {}; - class Rifle_Long_Base_F: Rifle_Base_F { - class WeaponSlotsInfo: WeaponSlotsInfo {}; - }; - - // config inheritance of weapon slot info v1.32 for handguns - class PistolCore; - class Pistol: PistolCore { - class WeaponSlotsInfo { - class CowsSlot: SlotInfo {}; - }; - }; - class Pistol_Base_F: Pistol { - class WeaponSlotsInfo: WeaponSlotsInfo { - class MuzzleSlot: SlotInfo {}; - }; - }; + class Rifle_Base_F; + class Rifle_Long_Base_F; /////////////////////////////////////////////////////////////////////////////// //////////// SMALL ARMS WEAPONS /////////////////////////////////////////////// diff --git a/addons/spottingscope/CfgVehicles.hpp b/addons/spottingscope/CfgVehicles.hpp index f86b9d16c7..84ce5f177f 100644 --- a/addons/spottingscope/CfgVehicles.hpp +++ b/addons/spottingscope/CfgVehicles.hpp @@ -70,8 +70,8 @@ class CfgVehicles { model = QPATHTOF(data\ace_spottingscope.p3d); mapSize = 0.5; transportSoldier = 0; - getInAction = "GetInLow"; - getOutAction = "GetOutLow"; + getInAction = "PlayerProne"; + getOutAction = "PlayerProne"; editorSubcategory = "EdSubcat_Turrets"; class Turrets: Turrets { @@ -115,8 +115,8 @@ class CfgVehicles { gunnerOutOpticsShowCursor = 0; gunnerOpticsShowCursor = 0; gunnerAction = "ACE_SpottingScope"; - gunnerGetInAction = "GetInLow"; - gunnerGetOutAction = "GetOutLow"; + gunnerGetInAction = "PlayerProne"; + gunnerGetOutAction = "PlayerProne"; gunnerForceOptics = 0; ejectDeadGunner = 0; turretInfoType = QGVAR(RscUnitInfo); diff --git a/addons/spottingscope/data/ace_spottingscope.p3d b/addons/spottingscope/data/ace_spottingscope.p3d index 0afe9952cf..969d0b37f5 100644 Binary files a/addons/spottingscope/data/ace_spottingscope.p3d and b/addons/spottingscope/data/ace_spottingscope.p3d differ diff --git a/addons/ui/ACE_Settings.hpp b/addons/ui/ACE_Settings.hpp index e6c3e5e496..c02d5be2b6 100644 --- a/addons/ui/ACE_Settings.hpp +++ b/addons/ui/ACE_Settings.hpp @@ -83,7 +83,7 @@ class ACE_Settings { displayName = CSTRING(AmmoCount); description = CSTRING(RequiresSoldierVehicleWeaponInfo); typeName = "BOOL"; - value = 1; + value = 0; isClientSettable = 1; }; class GVAR(magCount) { diff --git a/addons/ui/CfgVehicles.hpp b/addons/ui/CfgVehicles.hpp index 0b1cc9b2a9..563cf22ce1 100644 --- a/addons/ui/CfgVehicles.hpp +++ b/addons/ui/CfgVehicles.hpp @@ -73,7 +73,7 @@ class CfgVehicles { displayName = CSTRING(AmmoCount); description = CSTRING(RequiresSoldierVehicleWeaponInfo); typeName = "BOOL"; - defaultValue = 1; + defaultValue = 0; }; class magCount { displayName = CSTRING(MagCount); diff --git a/addons/zeus/config.cpp b/addons/zeus/config.cpp index 3ec87b637c..4c9a831fd0 100644 --- a/addons/zeus/config.cpp +++ b/addons/zeus/config.cpp @@ -58,5 +58,5 @@ class ACE_newEvents { zeusUnitAssigned = QGVAR(zeusUnitAssigned); SetSurrendered = QEGVAR(captives,setSurrendered); SetHandcuffed = QEGVAR(captives,setHandcuffed); - AddCargoByClass = "ace_addCargoByClass"; + AddCargoByClass = "ace_addCargo"; }; diff --git a/addons/zeus/functions/fnc_moduleAddSpareTrack.sqf b/addons/zeus/functions/fnc_moduleAddSpareTrack.sqf index 492914eb1c..2926fafcf9 100644 --- a/addons/zeus/functions/fnc_moduleAddSpareTrack.sqf +++ b/addons/zeus/functions/fnc_moduleAddSpareTrack.sqf @@ -32,7 +32,7 @@ if !(["ace_cargo"] call EFUNC(common,isModLoaded) && ["ace_repair"] call EFUNC(c if (getNumber (configFile >> "CfgVehicles" >> "ACE_Track" >> QEGVAR(cargo,size)) > [_mouseOverUnit] call EFUNC(cargo,getCargoSpaceLeft)) then { [LSTRING(OnlyEnoughCargoSpace)] call EFUNC(common,displayTextStructured); } else { - ["ace_addCargoByClass", ["ACE_Track", _mouseOverUnit, 1, true]] call CBA_fnc_localEvent; + ["ace_addCargo", ["ACE_Track", _mouseOverUnit, 1, true]] call CBA_fnc_localEvent; }; }; }; diff --git a/addons/zeus/functions/fnc_moduleAddSpareWheel.sqf b/addons/zeus/functions/fnc_moduleAddSpareWheel.sqf index 105acb2b83..2c051c94b6 100644 --- a/addons/zeus/functions/fnc_moduleAddSpareWheel.sqf +++ b/addons/zeus/functions/fnc_moduleAddSpareWheel.sqf @@ -32,7 +32,7 @@ if !(["ace_cargo"] call EFUNC(common,isModLoaded) && ["ace_repair"] call EFUNC(c if (getNumber (configFile >> "CfgVehicles" >> "ACE_Wheel" >> QEGVAR(cargo,size)) > [_mouseOverUnit] call EFUNC(cargo,getCargoSpaceLeft)) then { [LSTRING(OnlyEnoughCargoSpace)] call EFUNC(common,displayTextStructured); } else { - ["ace_addCargoByClass", ["ACE_Wheel", _mouseOverUnit, 1, true]] call CBA_fnc_localEvent; + ["ace_addCargo", ["ACE_Wheel", _mouseOverUnit, 1, true]] call CBA_fnc_localEvent; }; }; };