2016-08-18 17:07:05 +00:00
|
|
|
/*
|
|
|
|
* Author: Jonpas
|
|
|
|
* Compiles and caches UI from ACE_UI config.
|
|
|
|
*
|
|
|
|
* Arguments:
|
|
|
|
* None
|
|
|
|
*
|
|
|
|
* Return Value:
|
|
|
|
* None
|
|
|
|
*
|
|
|
|
* Example:
|
|
|
|
* [] call ace_ui_fnc_compileConfigUI
|
|
|
|
*
|
|
|
|
* Public: No
|
|
|
|
*/
|
|
|
|
#include "script_component.hpp"
|
|
|
|
|
|
|
|
{
|
|
|
|
private _failure = false;
|
|
|
|
private _class = toLower (configName _x);
|
|
|
|
|
|
|
|
private _idd = getNumber (_x >> "idd");
|
|
|
|
|
|
|
|
private _elements = getArray (_x >> "elements");
|
|
|
|
if (_elements isEqualTo []) then {
|
2016-08-22 19:06:52 +00:00
|
|
|
ERROR_1("Failed compiling ACE_UI for Element: %1 - missing elements",_class);
|
2016-08-18 17:07:05 +00:00
|
|
|
_failure = true;
|
|
|
|
};
|
|
|
|
|
|
|
|
private _location = getNumber (_x >> "location");
|
|
|
|
if !(_location in [ANYWHERE, GROUND_ONLY, VEHICLE_ONLY]) then {
|
2016-08-22 19:06:52 +00:00
|
|
|
ERROR_2("Failed compiling ACE_UI for Element: %1 - missing or invalid location %2",_class,_location);
|
2016-08-18 17:07:05 +00:00
|
|
|
_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) setVariable [_class, [_idd, _elements, _location, _conditions]];
|
|
|
|
};
|
|
|
|
} forEach ("true" configClasses (configFile >> "ACE_UI"));
|