From 3972504d4a6f8b67e6e7aeec01516715867b1764 Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Tue, 21 Jun 2016 12:13:32 -0500 Subject: [PATCH] Add dogtag actions to body bags --- addons/dogtags/CfgVehicles.hpp | 6 +-- addons/dogtags/XEH_postInit.sqf | 39 ++++++++++++++++++ addons/dogtags/data/dogtag_icon_ca.paa | Bin 0 -> 25558 bytes .../functions/fnc_serverRemoveBody.sqf | 2 +- 4 files changed, 43 insertions(+), 4 deletions(-) create mode 100644 addons/dogtags/data/dogtag_icon_ca.paa diff --git a/addons/dogtags/CfgVehicles.hpp b/addons/dogtags/CfgVehicles.hpp index 8e9204c4ca..9757ac1c53 100644 --- a/addons/dogtags/CfgVehicles.hpp +++ b/addons/dogtags/CfgVehicles.hpp @@ -9,14 +9,14 @@ class CfgVehicles { statement = ""; showDisabled = 0; priority = 3; - icon = ""; //@todo + 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 = ""; //@todo + icon = QPATHTOF(data\dogtag_icon_ca.paa); }; class ACE_TakeDogtag { displayName = CSTRING(takeDogtag); @@ -24,7 +24,7 @@ class CfgVehicles { statement = QUOTE([ARR_2(_player,_target)] call FUNC(takeDogtag)); showDisabled = 0; priority = 3; - icon = ""; //@todo + icon = QPATHTOF(data\dogtag_icon_ca.paa); }; }; }; diff --git a/addons/dogtags/XEH_postInit.sqf b/addons/dogtags/XEH_postInit.sqf index 96a6a3180c..729ae7eb04 100644 --- a/addons/dogtags/XEH_postInit.sqf +++ b/addons/dogtags/XEH_postInit.sqf @@ -4,3 +4,42 @@ [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/data/dogtag_icon_ca.paa b/addons/dogtags/data/dogtag_icon_ca.paa new file mode 100644 index 0000000000000000000000000000000000000000..4799db17ec2d850d8b92c660cad7243947f82c70 GIT binary patch literal 25558 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 0) then { +if ((count GVAR(bodiesToDelete)) == 1) then { [] call FUNC(bodyCleanupLoop); };