ACE3/addons/interact_menu/functions/fnc_addAction.sqf
2015-01-28 10:18:19 -08:00

53 lines
1.5 KiB
Plaintext

/*
* Author: commy2
*
* Add an ACE action to an object. Note: This function is NOT global.
*
* Argument:
* 0: Object the action should be assigned to (Object)
* 1: Name of the action shown in the menu (String)
* 2: Icon (String)
* 3: Position (Position or Selection Name)
* 4: Statement (Code)
* 5: Condition (Code)
* 6: Distance (Number)
*
* Return value:
* The entry array, which can be used to remove the entry, or add children entries.
*/
#include "script_component.hpp"
private ["_object", "_displayName", "_icon", "_position", "_statement", "_condition", "_distance", "_actions", "_entry"];
_object = _this select 0;
_displayName = _this select 1;
_icon = _this select 2;
_position = _this select 3;
_statement = _this select 4;
_condition = _this select 5;
_distance = _this select 6;
_actions = [];
if(IS_OBJECT(_object)) then {
_actions = _object getVariable [QUOTE(GVAR(actionData)), []];
if((count _actions) == 0) then {
_object setVariable [QUOTE(GVAR(actionData)), _actions]
};
} else {
if(IS_ARRAY(_object)) then {
_actions = _object select 6;
};
};
_entry = [
_displayName,
_icon,
_position,
_statement,
_condition,
_distance,
[],
GVAR(uidCounter)
];
GVAR(uidCounter) = GVAR(uidCounter) + 1;
_actions pushBack _entry;
_entry;