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
|
|
|
|
2015-05-18 21:50:36 +00:00
|
|
|
private ["_logic","_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") };
|
|
|
|
|
|
|
|
_logic = _this select 0;
|
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;
|
|
|
|
|
|
|
|
if (isArray _cfg) then {
|
|
|
|
_requiredAddon = getArray _cfg;
|
|
|
|
{
|
|
|
|
if !(isClass (configFile >> "CfgPatches" >> _x)) exitWith {
|
|
|
|
_removeAddons pushBack (configName _cfg);
|
|
|
|
};
|
|
|
|
} forEach _requiredAddon;
|
|
|
|
};
|
|
|
|
|
|
|
|
if (isText _cfg) then {
|
|
|
|
_requiredAddon = getText _cfg;
|
|
|
|
if !(isClass (configFile >> "CfgPatches" >> _requiredAddon)) then {
|
|
|
|
_removeAddons pushBack (configName _cfg);
|
|
|
|
};
|
|
|
|
};
|
|
|
|
};
|
2015-05-18 19:43:02 +00:00
|
|
|
|
|
|
|
_logic removeCuratorAddons _removeAddons;
|