2023-09-12 18:58:10 +00:00
|
|
|
#include "..\script_component.hpp"
|
2015-01-11 16:42:31 +00:00
|
|
|
/*
|
2015-02-02 08:35:17 +00:00
|
|
|
* Author: Garth 'L-H' de Wet
|
|
|
|
* Selects a trigger for an explosive.
|
|
|
|
*
|
|
|
|
* Arguments:
|
2015-02-20 01:28:16 +00:00
|
|
|
* 0: Explosive <OBJECT>
|
|
|
|
* 1: Magazine <STRING>
|
|
|
|
* 2: Trigger mode <STRING>
|
2015-02-02 08:35:17 +00:00
|
|
|
*
|
|
|
|
* Return Value:
|
|
|
|
* None
|
|
|
|
*
|
|
|
|
* Example:
|
2015-02-20 01:28:16 +00:00
|
|
|
* [_explosive, "SatchelCharge_Remote_Mag","Timer"] call ACE_Explosives_fnc_selectTrigger;
|
2015-02-02 08:35:17 +00:00
|
|
|
*
|
|
|
|
* Public: No
|
|
|
|
*/
|
2015-08-15 19:35:33 +00:00
|
|
|
|
|
|
|
params ["_explosive", "_magazine", "_trigger"];
|
|
|
|
TRACE_3("params",_explosive,_magazine,_trigger);
|
|
|
|
|
2016-09-04 14:44:22 +00:00
|
|
|
private _config = ConfigFile >> "ACE_Triggers" >> _trigger;
|
2015-01-11 16:42:31 +00:00
|
|
|
|
2024-02-07 20:47:01 +00:00
|
|
|
// Make selected trigger the active one (for keybind) if it's the first to be connected
|
|
|
|
private _activeTrigger = GVAR(activeTrigger);
|
|
|
|
if (
|
|
|
|
_activeTrigger == "" &&
|
|
|
|
{(["Command", "MK16_Transmitter", "DeadManSwitch"] findIf {_x == _trigger}) != -1}
|
|
|
|
) then {
|
|
|
|
GVAR(activeTrigger) = getArray (_config >> "requires") select 0;
|
|
|
|
};
|
|
|
|
|
2015-01-11 16:42:31 +00:00
|
|
|
// If the onSetup function returns true, it is handled elsewhere
|
2015-08-16 06:51:44 +00:00
|
|
|
if (isText(_config >> "onSetup") && {[_explosive,_magazine] call compile getText (_config >> "onSetup")}) exitWith {
|
|
|
|
TRACE_2("onSetup returned true",_explosive,_trigger);
|
|
|
|
};
|
2015-01-11 16:42:31 +00:00
|
|
|
|
2015-07-15 08:18:19 +00:00
|
|
|
[ACE_player, getPosATL _explosive, _explosive getVariable [QGVAR(Direction), 0],_magazine, _trigger, [], _explosive] call FUNC(placeExplosive);
|