mirror of
https://github.com/acemod/ACE3.git
synced 2024-08-30 18:23:18 +00:00
Merge pull request #3795 from acemod/deprecate-components
Add Deprecate components support
This commit is contained in:
commit
d7b239f487
@ -24,6 +24,7 @@ PREP(debugModule);
|
||||
PREP(defineVariable);
|
||||
PREP(deviceKeyFindValidIndex);
|
||||
PREP(deviceKeyRegisterNew);
|
||||
PREP(deprecateComponent);
|
||||
PREP(disableAI);
|
||||
PREP(disableUserInput);
|
||||
PREP(displayIcon);
|
||||
|
63
addons/common/functions/fnc_deprecateComponent.sqf
Normal file
63
addons/common/functions/fnc_deprecateComponent.sqf
Normal file
@ -0,0 +1,63 @@
|
||||
/*
|
||||
* Author: Glowbal
|
||||
* Mark a component as deprecated and switches it to a new component if that is available
|
||||
*
|
||||
* Arguments:
|
||||
* 0: Component <Array>
|
||||
* 1: New component <Array>
|
||||
* 2: Version when the compent will be removed <String>
|
||||
*
|
||||
* Return Value:
|
||||
* Replaced by new component <Boolean>
|
||||
*
|
||||
* Public: No
|
||||
*
|
||||
* Example:
|
||||
* [["ace_sitting", "ace_sitting_enabled"], ["acex_sitting", "acex_sitting_enabled"], "3.7.0"] call ace_common_fnc_deprecateComponent;
|
||||
*/
|
||||
#include "script_component.hpp"
|
||||
|
||||
params ["_oldComponent", "_newComponent", "_version"];
|
||||
|
||||
_oldComponent params ["_oldComponentName", "_oldSettingName"];
|
||||
_newComponent params ["_newComponentName", "_newSettingName"];
|
||||
|
||||
private _isReplacementAvailable = isClass (configFile >> "CfgPatches" >> _newComponentName);
|
||||
private _isDeprecatedLoaded = missionNamespace getvariable [_oldSettingName, false];
|
||||
private _isReplacementLoaded = missionNamespace getvariable [_newSettingName, false];
|
||||
|
||||
if (_isDeprecatedLoaded && {_isReplacementAvailable} && {!_isReplacementLoaded}) then {
|
||||
[_newSettingName, true, true, true] call FUNC(setSetting);
|
||||
};
|
||||
|
||||
if (_isDeprecatedLoaded && {!_isReplacementLoaded}) then {
|
||||
private _componentVersion = getText (configFile >> "CfgPatches" >> _oldComponentName >> "version");
|
||||
((_componentVersion splitString ".") apply {parseNumber _x}) params ["_componentMajor", "_componentMinor", "_componentPatch"];
|
||||
((_version splitString ".") apply {parseNumber _x}) params ["_major", "_minor", "_patch"];
|
||||
|
||||
switch (true) do {
|
||||
case (_componentMajor >= _major && {_componentMinor >= _minor} && {_componentPatch >= _patch}): { // Removed from this version
|
||||
private _message = format[
|
||||
"Component %1 is deprecated. It has been replaced by %2. The component %1 is no longer usable on this version. ", _oldComponentName, _newComponentName, _version];
|
||||
systemChat format["ACE [ERROR] - %1", _message];
|
||||
ACE_LOGERROR(_message);
|
||||
};
|
||||
case (_componentMajor >= _major && {_componentMinor >= _minor-1}): { // Removed the next this version
|
||||
private _message = format[
|
||||
"Component %1 is deprecated. It is replaced by %2. Please disable %1 and make use of %2. "
|
||||
+ "The component (%1) will no longer be available from version %3 and later.", _oldComponentName, _newComponentName, _version];
|
||||
systemChat format["ACE [WARNING] - %1", _message];
|
||||
ACE_LOGWARNING(_message);
|
||||
};
|
||||
case (_componentMajor == _major && {_componentMinor >= _minor - 2}): { // we are in a version leading up to removal
|
||||
private _message = format[
|
||||
"Component %1 is deprecated. It is replaced by %2. Please disable %1 and make use of %2. "
|
||||
+ "The component (%1) will no longer be available from version %3 and later.", _oldComponentName, _newComponentName, _version];
|
||||
ACE_LOGWARNING(_message);
|
||||
};
|
||||
default {
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
_isReplacementAvailable;
|
@ -8,7 +8,7 @@ class CfgVehicles {
|
||||
category = "ACE";
|
||||
displayName = CSTRING(ModuleDisplayName);
|
||||
function = QFUNC(moduleInit);
|
||||
scope = 2;
|
||||
scope = 1;
|
||||
isGlobal = 1;
|
||||
isSingular = 1;
|
||||
icon = QPATHTOF(UI\Icon_Module_Sitting_ca.paa);
|
||||
|
@ -4,8 +4,7 @@
|
||||
if (!hasInterface) exitWith {};
|
||||
|
||||
["SettingsInitialized", {
|
||||
TRACE_1("SettingInit", GVAR(enable));
|
||||
|
||||
if ([[QUOTE(ADDON), QGVAR(enable)], ["acex_sitting", "acex_sitting_enable"], "3.8.0"] call EFUNC(common,deprecateComponent)) exitwith {};
|
||||
//If not enabled, then do not add CanInteractWith Condition or event handlers:
|
||||
if (!GVAR(enable)) exitWith {};
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user