mirror of
https://github.com/acemod/ACE3.git
synced 2024-08-30 18:23:18 +00:00
9d1695ffe2
* Common - Diagnose ace install if there are version problems * update user error message * whitespace * missing lettr * remove source from compat --------- Co-authored-by: LinkIsGrim <salluci.lovi@gmail.com>
59 lines
1.9 KiB
Plaintext
59 lines
1.9 KiB
Plaintext
#include "..\script_component.hpp"
|
|
/*
|
|
* Author: PabstMirror
|
|
* Diagnose ACE install problems, this will only be called if there is a known problem
|
|
*
|
|
* Arguments:
|
|
* None
|
|
*
|
|
* Return Value:
|
|
* None
|
|
*
|
|
* Example:
|
|
* [] call ace_common_fnc_checkFiles_diagnoseACE
|
|
*
|
|
* Public: No
|
|
*/
|
|
|
|
// Only run once
|
|
if (missionNameSpace getVariable [QGVAR(checkFiles_diagnoseACE), false]) exitWith {};
|
|
GVAR(checkFiles_diagnoseACE) = true;
|
|
|
|
private _addons = cba_common_addons select {(_x select [0,4]) == "ace_"};
|
|
private _cfgPatches = configFile >> "CfgPatches";
|
|
private _allMods = createHashMap;
|
|
|
|
// Check ACE_ADDONs are in expected mod DIR
|
|
{
|
|
private _cfg = (_cfgPatches >> _x);
|
|
private _actualModDir = configSourceMod _cfg;
|
|
private _expectedModDir = getText (_cfg >> "ACE_expectedModDir");
|
|
if (_expectedModDir == "") then { _expectedModDir = "@ace" };
|
|
private _expectedSteamID = getText (_cfg >> "ACE_expectedSteamID");
|
|
if (_expectedSteamID == "") then { _expectedSteamID = "463939057" };
|
|
|
|
(_allMods getOrDefault [_actualModDir, [], true]) pushBackUnique _expectedSteamID;
|
|
if (_actualModDir != _expectedModDir) then {
|
|
private _errorMsg = format ["%1 loading from unexpected modDir [%2]",_x,_actualModDir];
|
|
systemChat _errorMsg;
|
|
WARNING_1("%1",_errorMsg);
|
|
};
|
|
} forEach _addons;
|
|
|
|
// Check all ACE ModDirs have expected steam WS ID
|
|
{
|
|
private _modDir = _x;
|
|
if ((count _y) != 1) then { ERROR_2("Unexpected multiple steamIDs %1 - %2",_modDir,_y) };
|
|
private _expectedSteamID = _y # 0;
|
|
private _index = getLoadedModsInfo findIf {_x#1 == _modDir};
|
|
(getLoadedModsInfo param [_index, []]) params [["_modName", "$Error$"], "", "", "", "", "", "", ["_actualID", ""]];
|
|
|
|
if (_actualID != _expectedSteamID) then {
|
|
private _errorMsg = format ["%1 [%2] unexpected workshopID [%3]",_modDir,_modName,_actualID];
|
|
systemChat _errorMsg;
|
|
WARNING_1("%1",_errorMsg);
|
|
};
|
|
} forEach _allMods;
|
|
|
|
_allMods
|