ACE3/addons/arsenal/functions/fnc_initBox.sqf
jonpas 742626ff1a
General - Relative script_component.hpp includes (#9378)
Co-authored-by: PabstMirror <pabstmirror@gmail.com>
2023-09-12 20:58:10 +02:00

58 lines
1.7 KiB
Plaintext

#include "..\script_component.hpp"
/*
* Author: Alganthe, johnb43
* Initialize a box / object for arsenal.
*
* Arguments:
* 0: Target <OBJECT>
* 1: Items <BOOL> <ARRAY>
* 2: Initialize globally <BOOL> (default: true)
*
* Return Value:
* None
*
* Example:
* [_box, ["MyItem1", "MyItem2", "MyItemN"]] call ace_arsenal_fnc_initBox
* [_box, true] call ace_arsenal_fnc_initBox
*
* Public: Yes
*/
params [["_object", objNull, [objNull]], ["_items", true, [[], true]], ["_global", true, [true]]];
if (isNull _object) exitWith {};
if (_global && {isMultiplayer} && {isNil {_object getVariable QGVAR(initBoxJIP)}}) then {
private _id = [QGVAR(initBox), [_object, _items, false]] call CBA_fnc_globalEventJIP;
// Remove JIP EH if object is deleted
[_id, _object] call CBA_fnc_removeGlobalEventJIP;
// Save JIP ID
_object setVariable [QGVAR(initBoxJIP), _id, true];
} else {
// Only add interaction if there isn't one already present
if (((_object getVariable [QEGVAR(interact_menu,actions), []]) findIf {((_x select 0) select 0) == QGVAR(interaction)}) != -1) exitWith {};
private _action = [
QGVAR(interaction),
localize "STR_A3_Arsenal",
"",
{
params ["_target", "_player"];
[_target, _player] call FUNC(openBox);
},
{
params ["_target", "_player"];
[_player, _target] call EFUNC(common,canInteractWith)
}
] call EFUNC(interact_menu,createAction);
[_object, 0, ["ACE_MainActions"], _action] call EFUNC(interact_menu,addActionToObject);
[_object, _items, false] call FUNC(addVirtualItems);
[QGVAR(boxInitialized), [_object, _items]] call CBA_fnc_localEvent;
};