ACE3/addons/zeus/functions/fnc_handleZeusUnitAssigned.sqf

51 lines
1.3 KiB
Plaintext
Raw Normal View History

2015-05-18 19:43:02 +00:00
/*
* Author: SilentSpike
2015-05-18 21:50:36 +00:00
* Contextually removes addons (given in ACE_Curator) from zeus based on their required addon(s)
*
* ACE_Curator format:
* ModuleAddon = "RequiredAddon";
* OR
* ModuleAddon[] = {"RequiredAddon1","RequiredAddon2",...}
2015-05-18 19:43:02 +00:00
*
* Arguments:
* 0: The zeus logic <LOGIC>
* 1: The zeus player <UNIT>
*
* Return Value:
* nil
*
* Public: No
*/
2015-05-18 21:50:36 +00:00
#include "script_component.hpp"
2015-05-18 19:43:02 +00:00
private ["_removeAddons", "_numCfgs", "_cfg", "_requiredAddon"];
2015-05-18 19:43:02 +00:00
2015-05-18 21:50:36 +00:00
if !(isClass (configFile >> "ACE_Curator")) exitWith { ERROR("The ACE_Curator class does not exist") };
2015-08-04 22:16:23 +00:00
params ["_logic"];
2015-05-18 19:43:02 +00:00
_removeAddons = [];
2015-05-18 21:50:36 +00:00
_numCfgs = count (configFile >> "ACE_Curator");
for "_n" from 0 to (_numCfgs - 1) do {
_cfg = (configFile >> "ACE_Curator") select _n;
2015-05-18 21:50:36 +00:00
if (isArray _cfg) then {
_requiredAddon = getArray _cfg;
2015-05-18 21:50:36 +00:00
{
if !(isClass (configFile >> "CfgPatches" >> _x)) exitWith {
_removeAddons pushBack (configName _cfg);
2015-05-18 21:50:36 +00:00
};
2015-08-05 06:36:01 +00:00
} forEach _requiredAddon;
2015-05-18 21:50:36 +00:00
};
if (isText _cfg) then {
_requiredAddon = getText _cfg;
2015-05-18 21:50:36 +00:00
if !(isClass (configFile >> "CfgPatches" >> _requiredAddon)) then {
_removeAddons pushBack (configName _cfg);
2015-05-18 21:50:36 +00:00
};
};
};
2015-05-18 19:43:02 +00:00
_logic removeCuratorAddons _removeAddons;