ACE3/addons/ui/functions/fnc_compileConfigUI.sqf

46 lines
1.2 KiB
Plaintext

#include "..\script_component.hpp"
/*
* Author: Jonpas
* Compiles and caches UI from ACE_UI config.
*
* Arguments:
* None
*
* Return Value:
* None
*
* Example:
* [] call ace_ui_fnc_compileConfigUI
*
* Public: No
*/
{
private _failure = false;
private _class = toLowerANSI (configName _x);
private _idd = getNumber (_x >> "idd");
private _elements = getArray (_x >> "elements");
if (_elements isEqualTo []) then {
ERROR_1("Failed compiling ACE_UI for Element: %1 - missing elements",_class);
_failure = true;
};
private _location = getNumber (_x >> "location");
if !(_location in [ANYWHERE, GROUND_ONLY, VEHICLE_ONLY]) then {
ERROR_2("Failed compiling ACE_UI for Element: %1 - missing or invalid location %2",_class,_location);
_failure = true;
};
if (!_failure) then {
private _conditions = [];
{
_conditions pushBack [compile (getText _x), configName _x];
TRACE_1("Caching Condition",_x);
} forEach (configProperties [_x >> "conditions"]);
GVAR(configCache) set [_class, [_idd, _elements, _location, _conditions]];
};
} forEach ("true" configClasses (configFile >> "ACE_UI"));