/* * Author: commy2 * * Get all turret indicies of a vehicle. * * Argument: * 0: Vehicle type (String) * * Return value: * All turret index arrays of the vehicle. E.g: [[0], [0,0]] (Array) */ #include "script_component.hpp" private ["_type", "_config", "_turrets", "_fnc_addTurret"]; _type = _this select 0; _varName = format ["ACE_CachedTurrets_%1", _type]; _turrets = + (uiNamespace getVariable _varName); if (!isNil "_turrets") exitWith {_turrets}; _config = configFile >> "CfgVehicles" >> _type; _turrets = []; _fnc_addTurret = { private ["_config", "_path", "_count", "_offset", "_index", "_path2", "_config2"]; _config = _this select 0; _path = _this select 1; _config = _config >> "Turrets"; _count = count _config; _offset = 0; for "_index" from 0 to (_count - 1) do { _path2 = _path + [_index - _offset]; _config2 = _config select _index; if (isClass _config2) then { _turrets pushBack _path2; [_config2, _path2] call _fnc_addTurret; } else { _offset = _offset + 1; }; }; }; [_config, []] call _fnc_addTurret; uiNamespace setVariable [_varName, _turrets]; _turrets