ACE3/addons/common/functions/fnc_exportConfig.sqf
2015-01-12 19:22:58 +01:00

70 lines
1.6 KiB
Plaintext

// by commy2
/*
usage:
(configFile >> "CfgAmmo") call FUNC(exportConfig);
*/
#include "\z\ace\addons\common\script_component.hpp"
private "_fnc_logEntries";
_fnc_logEntries = {
private ["_c", "_d", "_p", "_t", "_e"];
_c = _this select 0;
_d = _this select 1;
_p = inheritsFrom _c;
_t = format [["class %1: %2 {", "class %1 {"] select (configName _p == ""), configName _c, configName _p];
for "_a" from 1 to _d do {
_t = " " + _t;
};
diag_log text _t;
_e = [];
for "_i" from 0 to (count _c - 1) do {
private ["_e1, _e2"];
_e1 = _c select _i;
_e2 = switch (true) do {
case (isNumber _e1): {getNumber _e1};
case (isText _e1): {getText _e1};
case (isArray _e1): {getArray _e1};
case (isClass _e1): {[_e1, _d + 1] call _fnc_logEntries; false};
};
if (typeName _e2 != "BOOL") then {
if (typeName _e2 == "ARRAY") then {
_e2 = toArray str _e2;
{
if (_x == toArray "[" select 0) then {
_e2 set [_forEachIndex, toArray "{" select 0];
};
if (_x == toArray "]" select 0) then {
_e2 set [_forEachIndex, toArray "}" select 0];
};
} forEach _e2;
_e2 = toString _e2;
_t = format ["%1[] = %2;", configName _e1, _e2];
} else {
_t = format ["%1 = %2;", configName _e1, str _e2];
};
for "_a" from 0 to _d do {
_t = " " + _t;
};
diag_log text _t;
};
};
_t = "};";
for "_a" from 1 to _d do {
_t = " " + _t;
};
diag_log text _t;
diag_log text "";
};
[_this, 0] call _fnc_logEntries;