mirror of
https://github.com/acemod/ACE3.git
synced 2024-08-30 18:23:18 +00:00
986ac43a68
* Cache config UI * Use configClasses to prevent reading entries in base class * Fix header not containing return value * One more count * More lazy eval
46 lines
1.2 KiB
Plaintext
46 lines
1.2 KiB
Plaintext
/*
|
|
* 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 {
|
|
ACE_LOGERROR_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 {
|
|
ACE_LOGERROR_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) setVariable [_class, [_idd, _elements, _location, _conditions]];
|
|
};
|
|
} forEach ("true" configClasses (configFile >> "ACE_UI"));
|