2015-01-11 16:42:31 +00:00
|
|
|
/*
|
|
|
|
* Author: commy2
|
|
|
|
*
|
|
|
|
* Remove an addAction event from a unit.
|
|
|
|
*
|
|
|
|
* Argument:
|
|
|
|
* 0: Unit the action is assigned to (Object)
|
|
|
|
* 1: Name of the action, e.g. "DefaultAction" (String)
|
|
|
|
* 2: ID of the action (Number)
|
|
|
|
*
|
|
|
|
* Return value:
|
|
|
|
* None.
|
|
|
|
*/
|
2015-01-13 19:56:02 +00:00
|
|
|
#include "script_component.hpp"
|
2015-01-11 16:42:31 +00:00
|
|
|
|
|
|
|
private ["_unit", "_action", "_id", "_name", "_actionsVar", "_actionID", "_actions", "_currentID", "_actionIDs", "_count"];
|
|
|
|
|
|
|
|
_unit = _this select 0;
|
|
|
|
_action = _this select 1;
|
|
|
|
_id = _this select 2;
|
|
|
|
|
|
|
|
if (_id == -1) exitWith {};
|
|
|
|
|
2015-01-12 04:02:33 +00:00
|
|
|
_name = format ["ACE_Action_%1", _action];
|
2015-01-11 16:42:31 +00:00
|
|
|
|
2015-04-16 00:00:37 +00:00
|
|
|
_actionsVar = _unit getVariable [_name, [-1, [-1, [], []], objNull]];
|
2015-01-11 16:42:31 +00:00
|
|
|
|
|
|
|
_actionID = _actionsVar select 0;
|
|
|
|
_actions = _actionsVar select 1;
|
|
|
|
|
|
|
|
_currentID = _actions select 0;
|
|
|
|
_actionIDs = _actions select 1;
|
|
|
|
_actions = _actions select 2;
|
|
|
|
|
2015-04-16 00:00:37 +00:00
|
|
|
if (_unit != _actionsVar select 2) exitWith {};
|
|
|
|
|
2015-01-11 16:42:31 +00:00
|
|
|
_id = _actionIDs find _id;
|
|
|
|
|
|
|
|
if (_id == -1) exitWith {};
|
|
|
|
|
|
|
|
_actionIDs set [_id, -1];
|
|
|
|
_actionIDs = _actionIDs - [-1];
|
|
|
|
|
|
|
|
_actions set [_id, []];
|
|
|
|
_actions = _actions - [[]];
|
|
|
|
|
|
|
|
if (count _actions == 0) then {
|
|
|
|
_unit removeAction _actionID;
|
|
|
|
_actionID = -1;
|
|
|
|
};
|
|
|
|
|
2015-04-16 00:00:37 +00:00
|
|
|
_unit setVariable [_name, [_actionID, [_currentID, _actionIDs, _actions], _unit], false];
|