ACE3/addons/refuel/XEH_preStart.sqf
Dedmen Miller 25d847ef12 Refuel - Cache refuel classes (#6807)
* Cache refuel classes

* Apply suggestions from code review

Co-Authored-By: dedmen <dedmen@users.noreply.github.com>

* Fix script errors from inner _x
2019-02-16 17:05:24 -06:00

31 lines
1.2 KiB
Plaintext

#include "script_component.hpp"
#include "XEH_PREP.hpp"
// cache refuel vehicles, see XEH_postInit.sqf
private _staticClasses = [];
private _dynamicClasses = [];
{
private _fuelCargo = getNumber (_x >> QGVAR(fuelCargo));
if (_fuelCargo > 0 || {_fuelCargo == REFUEL_INFINITE_FUEL}) then {
private _sourceClass = configName _x;
// check if we can use actions with inheritance
if (
!isText (_x >> "EventHandlers" >> "CBA_Extended_EventHandlers" >> "init") // addActionToClass relies on XEH init
|| {configName _x isKindOf "Static"} // CBA_fnc_addClassEventHandler doesn't support "Static" class
) then {
if (2 == getNumber (_x >> "scope")) then {
_staticClasses pushBackUnique _sourceClass;
};
} else {
if (-1 == _dynamicClasses findIf {_sourceClass isKindOf _x}) then {
_dynamicClasses pushBackUnique _sourceClass;
};
};
};
} forEach ('true' configClasses (configFile >> "CfgVehicles"));
TRACE_2("compiled",count _staticClasses,count _dynamicClasses);
uiNamespace setVariable [QGVAR(cacheRefuelClasses), compileFinal str [_staticClasses, _dynamicClasses]];