mirror of
https://github.com/acemod/ACE3.git
synced 2024-08-30 18:23:18 +00:00
75f7ed7532
* Utilize isNotEqualTo * undo changes to some files * redo some changes, fix based on @Vdauphin 's comment * fix validator issues Co-authored-by: PabstMirror <pabstmirror@gmail.com>
98 lines
4.4 KiB
Plaintext
98 lines
4.4 KiB
Plaintext
// PabstMirror
|
|
// ["fcs"] call ace_common_fnc_runTests;
|
|
// execVM "z\ace\addons\fcs\dev\test_debugConfigs.sqf;
|
|
|
|
private _testPass = true;
|
|
|
|
diag_log text format ["[ACE_FCS] ---------------"];
|
|
private _vehicles = configProperties [configFile >> "CfgVehicles", "(isClass _x) && {2 == getNumber (_x >> 'scope')}", true];
|
|
private _problemUIs = [];
|
|
{
|
|
private _vehicleType = configName _x;
|
|
{
|
|
private _turret = _x;
|
|
private _config = [_vehicleType, _turret] call CBA_fnc_getTurret;
|
|
if (!isNull _config) then {
|
|
private _aceFCS = (getNumber (_config >> "ACE_FCS_Enabled")) == 1;
|
|
|
|
private _vanillaFCS = false;
|
|
private _weapons = getArray (_config >> "weapons");
|
|
{
|
|
private _weapon = _x;
|
|
private _ballisticComputer = getNumber (configFile >> "CfgWeapons" >> _weapon >> "ballisticsComputer");
|
|
_ballisticComputer = [_ballisticComputer, 5] call ace_common_fnc_toBin;
|
|
if ((_ballisticComputer select [(count _ballisticComputer) - 5, 1]) == "1") then {
|
|
_vanillaFCS = true;
|
|
if (_aceFCS) then {
|
|
_testPass = false;
|
|
diag_log text format ["%1 -> %2: ACE FCS Enabled CONFLICTS with vanilla FCS [%3]", _vehicleType, _weapon, _ballisticComputer];
|
|
};
|
|
};
|
|
} forEach _weapons;
|
|
|
|
if (_weapons isNotEqualTo []) then {
|
|
private _fcsMsg = switch (true) do {
|
|
// case ((!_vanillaFCS) && {!_aceFCS}): {"No FCS"};
|
|
// case ((_vanillaFCS) && {_aceFCS}): {"CONFLICT FCS"};
|
|
// case (_vanillaFCS): {"Vanilla FCS"};
|
|
// case (_aceFCS): {"ACE FCS"};
|
|
default {""};
|
|
};
|
|
if (_fcsMsg != "") then {diag_log text format ["%1: %2", _vehicleType, _fcsMsg];};
|
|
};
|
|
|
|
if (_vanillaFCS) then {
|
|
private _dd = getArray (_config >> "discreteDistance");
|
|
if (_dd isEqualTo []) exitWith {diag_log format ["%1->%2: discreteDistance with vanillaFCS [%3]", _vehicleType, _turret, _config];};
|
|
};
|
|
|
|
if (true) then {
|
|
private _turretInfo = getText (_config >> "turretInfoType");
|
|
private _infoConfig = configFile >> "RscInGameUI" >> _turretInfo;
|
|
if (!isNull _infoConfig) then {
|
|
private _idcList = [];
|
|
|
|
private _fncGetIDCS = {
|
|
params ["_subConfig"];
|
|
if (!isClass _subConfig) exitWith {diag_log "err";};
|
|
private _controlsArray = getArray (_subConfig >> "controls");
|
|
{
|
|
[_subConfig >> _x] call _fncGetIDCS;
|
|
} forEach _controlsArray;
|
|
private _controlsConfig = configProperties [(_subConfig >> "controls"), "isClass _x", true];
|
|
{
|
|
[_x] call _fncGetIDCS;
|
|
} forEach _controlsConfig;
|
|
_idcList pushBack getNumber (_subConfig >> "idc");
|
|
};
|
|
[_infoConfig] call _fncGetIDCS;
|
|
|
|
if (_aceFCS && {!(1713151 in _idcList)}) then {
|
|
_problemUIs pushBackUnique format ["%1: ACE_FCS, but missing ACE_CA_DIST", _turretInfo];
|
|
};
|
|
if (_aceFCS && {(198 in _idcList)}) then {
|
|
_problemUIs pushBackUnique format ["%1: ACE_FCS, but NEW Lazr CA_DIST", _turretInfo, _vehicleType];
|
|
};
|
|
if ((!_aceFCS) && {(1713151 in _idcList)}) then {
|
|
_problemUIs pushBackUnique format ["%1: Not ACE but has ACE_CA_DIST", _turretInfo, _vehicleType];
|
|
};
|
|
if (_vanillaFCS && {!(198 in _idcList)}) then {
|
|
_problemUIs pushBackUnique format ["%1: vanillaFCS but missing NEW Lazr CA_DIST [just a warning]", _turretInfo, _vehicleType];
|
|
};
|
|
};
|
|
};
|
|
};
|
|
// } forEach [[0],[0,0]];
|
|
} forEach [[0],[0,0], [1], [2]];
|
|
} forEach _vehicles;
|
|
|
|
_problemUIs sort true;
|
|
|
|
diag_log text format ["[ACE_FCS] ------- Problem UIs --------"];
|
|
{
|
|
diag_log text format ["- %1", _x];
|
|
} forEach _problemUIs;
|
|
diag_log text format ["[ACE_FCS] ---------------"];
|
|
|
|
_testPass
|