Skip to content

Commit 50a8779

Browse files
authored
Update checkScopes.sqf (#11294)
* Update checkScopes.sqf * Unique optics, add parent to diag
1 parent 91b786a commit 50a8779

File tree

1 file changed

+28
-4
lines changed

1 file changed

+28
-4
lines changed

addons/scopes/dev/checkScopes.sqf

Lines changed: 28 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,14 @@
11
// [] call compileScript ["\z\ace\addons\scopes\dev\checkScopes.sqf"];
22

33

4+
private _uniqueOptics = createHashMap;
45
private _optics = "getNumber (_x >> 'scope') > 0" configClasses (configFile >> "CfgWeapons");
56
_optics = _optics select {(getNumber (_x >> 'ItemInfo' >> 'type')) == 201};
7+
_optics = _optics select {
8+
private _model = getText (_x >> "model");
9+
private _configOffset = getNumber (_x >> "ACE_ScopeHeightAboveRail");
10+
!(_uniqueOptics set [[toLower _model, _configOffset], true])
11+
};
612
diag_log text format ["** Checking %1 scopes **", count _optics];
713

814
private _fnc_checkConfig = {
@@ -33,17 +39,23 @@ private _fnc_checkConfig = {
3339
private _configOffset = getNumber (_config >> "ACE_ScopeHeightAboveRail");
3440

3541
if ((abs (_actualOffset - _configOffset)) > 0.1) then {
36-
diag_log text format ["Mismatch %1 - Actual %2 vs Config %3", configName _config, _actualOffset, _configOffset];
42+
private _parent = configName inheritsFrom _config;
43+
diag_log text format ["Mismatch %1:%2 - Actual %3 vs Config %4", configName _config, _parent, _actualOffset, _configOffset];
3744
[_config, true] call _fnc_checkConfig;
3845
};
3946
} forEach _optics;
4047

4148

4249

4350

51+
private _uniqueRifles = createHashMap;
4452
private _rifles = "getNumber (_x >> 'scope') > 0" configClasses (configFile >> "CfgWeapons");
4553
_rifles = _rifles select {(getNumber (_x >> 'type')) == 1};
46-
_rifles = _rifles select {(configName _x) == (getText (_x >> 'baseWeapon'))};
54+
_rifles = _rifles select {
55+
private _model = getText (_x >> "model");
56+
private _configOffset = getNumber (_x >> "ACE_RailHeightAboveBore");
57+
!(_uniqueRifles set [[toLower _model, _configOffset], true])
58+
};
4759
diag_log text format ["** Checking %1 weapons **", count _rifles];
4860

4961
private _fnc_checkConfig = {
@@ -64,15 +76,27 @@ private _fnc_checkConfig = {
6476
deleteVehicle _weaponObj;
6577
_xOffset
6678
};
79+
6780
{
6881
private _config = _x;
69-
if ((compatibleItems [configName _config, "CowsSlot"]) isEqualTo []) then { continue }; // e.g. arifle_SDAR_F has no scopes
82+
private _slots = configProperties [_config >> "WeaponSlotsInfo", "isClass _x"];
83+
private _opticSlot = "CowsSlot";
84+
{
85+
if (getText (_x >> "linkProxy") == "\a3\data_f\proxies\weapon_slots\TOP") then {
86+
_opticSlot = configName _x;
87+
};
88+
} forEach _slots;
89+
if ((compatibleItems [configName _config, _opticSlot]) isEqualTo []) then {
90+
diag_log text format ["note: %1 has no compatible items for %2", configName _config, _opticSlot];
91+
continue // e.g. arifle_SDAR_F has no scopes
92+
};
7093
private _actualOffset = [_config, false] call _fnc_checkConfig;
7194
if (_actualOffset == -999) then { continue };
7295
private _configOffset = getNumber (_config >> "ACE_RailHeightAboveBore");
7396

7497
if ((abs (_actualOffset - _configOffset)) > 0.1) then {
75-
diag_log text format ["Mismatch %1 - Actual %2 vs Config %3", configName _config, _actualOffset, _configOffset];
98+
private _parent = configName inheritsFrom _config;
99+
diag_log text format ["Mismatch %1:%2 - Actual %3 vs Config %4", configName _config, _parent, _actualOffset, _configOffset];
76100
[_config, true] call _fnc_checkConfig;
77101
};
78102
} forEach _rifles;

0 commit comments

Comments
 (0)