-
Notifications
You must be signed in to change notification settings - Fork 734
/
fnc_addMissileReloadActions.sqf
52 lines (41 loc) · 1.29 KB
/
fnc_addMissileReloadActions.sqf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
/*
* Author: commy2
* Create one action per reloadable missile
*
* Argument:
* 1: Target (Object)
* 0: Player (Object)
*
* Return value:
* Children actions (Array)
*
* Public: No
*
*/
#include "script_component.hpp"
params ["_target", "_unit"];
TRACE_2("params",_target,_unit);
//Fast exit for common case:
private _weapon = secondaryWeapon _target;
if ((_weapon == "") || {(getNumber (configFile >> "CfgWeapons" >> _weapon >> QGVAR(enabled))) == 0}) exitWith {
TRACE_1("weapon not supported",_weapon);
[]
};
private _actions = [];
private _loadableMissiles = [_unit, _weapon] call FUNC(getLoadableMissiles);
TRACE_2("",_weapon,_loadableMissiles);
{
private ["_name", "_displayName", "_statement", "_condition", "_action"];
_name = format [QGVAR(Missile_%1), _x];
_displayName = format [localize LSTRING(LoadMagazine), getText (configFile >> "CfgMagazines" >> _x >> "displayName")];
_statement = {
(_this select 2) call DFUNC(load);
};
_condition = {
(_this select 2) call DFUNC(canLoad)
};
_action = [_name, _displayName, "", _statement, _condition, {}, [_unit, _target, _weapon, _x], "", 4] call EFUNC(interact_menu,createAction);
_actions pushBack [_action, [], _unit];
} forEach _loadableMissiles;
TRACE_1("return",_actions);
_actions