diff --git a/addons/settings/fnc_gui_settingCheckbox.sqf b/addons/settings/fnc_gui_settingCheckbox.sqf
index ed6a7f0b4..092d28739 100644
--- a/addons/settings/fnc_gui_settingCheckbox.sqf
+++ b/addons/settings/fnc_gui_settingCheckbox.sqf
@@ -21,6 +21,8 @@ _ctrlCheckbox ctrlAddEventHandler ["CheckedChanged", {
// automatically check "overwrite client" for mission makers qol
[_controlsGroup, _source] call (_controlsGroup getVariable QFUNC(auto_check_overwrite));
+ // refresh priority to update overwrite color if current value is equal to overwrite
+ [_controlsGroup] call (_controlsGroup getVariable QFUNC(updateUI_locked));
}];
// set setting ui manually to new value
diff --git a/addons/settings/fnc_gui_settingColor.sqf b/addons/settings/fnc_gui_settingColor.sqf
index f4e71dad5..cf75f1233 100644
--- a/addons/settings/fnc_gui_settingColor.sqf
+++ b/addons/settings/fnc_gui_settingColor.sqf
@@ -42,6 +42,8 @@ for "_index" from 0 to ((count _currentValue max 3 min 4) - 1) do {
// automatically check "overwrite client" for mission makers qol
[_controlsGroup, _source] call (_controlsGroup getVariable QFUNC(auto_check_overwrite));
+ // refresh priority to update overwrite color if current value is equal to overwrite
+ [_controlsGroup] call (_controlsGroup getVariable QFUNC(updateUI_locked));
}];
private _ctrlColorEdit = _controlsGroup controlsGroupCtrl (IDCS_SETTING_COLOR_EDIT select _index);
@@ -75,6 +77,8 @@ for "_index" from 0 to ((count _currentValue max 3 min 4) - 1) do {
// automatically check "overwrite client" for mission makers qol
[_controlsGroup, _source] call (_controlsGroup getVariable QFUNC(auto_check_overwrite));
+ // refresh priority to update overwrite color if current value is equal to overwrite
+ [_controlsGroup] call (_controlsGroup getVariable QFUNC(updateUI_locked));
}];
_ctrlColorEdit ctrlAddEventHandler ["KillFocus", {
diff --git a/addons/settings/fnc_gui_settingDefault.sqf b/addons/settings/fnc_gui_settingDefault.sqf
index 5089af612..cc2909b9f 100644
--- a/addons/settings/fnc_gui_settingDefault.sqf
+++ b/addons/settings/fnc_gui_settingDefault.sqf
@@ -18,6 +18,8 @@ _ctrlDefault ctrlAddEventHandler ["ButtonClick", {
private _controlsGroup = ctrlParentControlsGroup _ctrlDefault;
[_controlsGroup, _defaultValue] call (_controlsGroup getVariable QFUNC(updateUI));
+ // refresh priority to update overwrite color if current value is equal to overwrite
+ [_controlsGroup] call (_controlsGroup getVariable QFUNC(updateUI_locked));
private _ctrlSettingName = _controlsGroup controlsGroupCtrl IDC_SETTING_NAME;
_ctrlSettingName ctrlSetTextColor COLOR_TEXT_ENABLED_WAS_EDITED;
diff --git a/addons/settings/fnc_gui_settingEditbox.sqf b/addons/settings/fnc_gui_settingEditbox.sqf
index dc1407867..1804b4c65 100644
--- a/addons/settings/fnc_gui_settingEditbox.sqf
+++ b/addons/settings/fnc_gui_settingEditbox.sqf
@@ -39,6 +39,8 @@ _ctrlEditbox ctrlAddEventHandler ["KeyUp", {
// automatically check "overwrite client" for mission makers qol
[_controlsGroup, _source] call (_controlsGroup getVariable QFUNC(auto_check_overwrite));
+ // refresh priority to update overwrite color if current value is equal to overwrite
+ [_controlsGroup] call (_controlsGroup getVariable QFUNC(updateUI_locked));
}];
// set setting ui manually to new value
diff --git a/addons/settings/fnc_gui_settingList.sqf b/addons/settings/fnc_gui_settingList.sqf
index 0d843b7fb..7bb508542 100644
--- a/addons/settings/fnc_gui_settingList.sqf
+++ b/addons/settings/fnc_gui_settingList.sqf
@@ -47,6 +47,8 @@ _ctrlList ctrlAddEventHandler ["LBSelChanged", {
// automatically check "overwrite client" for mission makers qol
[_controlsGroup, _source] call (_controlsGroup getVariable QFUNC(auto_check_overwrite));
+ // refresh priority to update overwrite color if current value is equal to overwrite
+ [_controlsGroup] call (_controlsGroup getVariable QFUNC(updateUI_locked));
}];
// set setting ui manually to new value
diff --git a/addons/settings/fnc_gui_settingOverwrite.sqf b/addons/settings/fnc_gui_settingOverwrite.sqf
index 293ae80c5..b467b24f1 100644
--- a/addons/settings/fnc_gui_settingOverwrite.sqf
+++ b/addons/settings/fnc_gui_settingOverwrite.sqf
@@ -107,9 +107,11 @@ _controlsGroup setVariable [QFUNC(updateUI_locked), {
params ["_controlsGroup"];
private _setting = _controlsGroup getVariable QGVAR(setting);
private _priority = TEMP_PRIORITY(_setting);
+ private _tempValue = TEMP_VALUE(_setting);
{
private _source = _x getVariable QGVAR(source);
+ private _sourceValue = TEMP_VALUE_SOURCE(_setting,_source);
private _ctrlLocked = _x controlsGroupCtrl IDC_SETTING_LOCKED;
if (_source isEqualTo _priority) then {
@@ -123,23 +125,26 @@ _controlsGroup setVariable [QFUNC(updateUI_locked), {
_ctrlLocked ctrlSetTooltip LLSTRING(applies);
};
} else {
+ private _overwriteEqual = _sourceValue isEqualTo _tempValue;
+ private _overwriteColor = [COLOR_OVERWRITTEN, COLOR_OVERWRITTEN_EQUAL] select _overwriteEqual;
+
switch [_source, _priority] do {
case ["client", "server"];
case ["mission", "server"]: {
_ctrlLocked ctrlSetText ICON_OVERWRITTEN;
- _ctrlLocked ctrlSetTextColor COLOR_OVERWRITTEN;
- _ctrlLocked ctrlSetTooltip LLSTRING(overwritten_by_server_tooltip);
+ _ctrlLocked ctrlSetTextColor _overwriteColor;
+ _ctrlLocked ctrlSetTooltip [LLSTRING(overwritten_by_server_tooltip), LLSTRING(overwritten_by_server_equal_tooltip)] select _overwriteEqual;
};
case ["client", "mission"];
case ["server", "mission"]: {
_ctrlLocked ctrlSetText ICON_OVERWRITTEN;
- _ctrlLocked ctrlSetTextColor COLOR_OVERWRITTEN;
- _ctrlLocked ctrlSetTooltip LLSTRING(overwritten_by_mission_tooltip);
+ _ctrlLocked ctrlSetTextColor _overwriteColor;
+ _ctrlLocked ctrlSetTooltip [LLSTRING(overwritten_by_mission_tooltip), LLSTRING(overwritten_by_mission_equal_tooltip)] select _overwriteEqual;
};
case ["mission", "client"]: {
_ctrlLocked ctrlSetText ICON_OVERWRITTEN;
- _ctrlLocked ctrlSetTextColor COLOR_OVERWRITTEN;
- _ctrlLocked ctrlSetTooltip LLSTRING(overwritten_by_client_tooltip);
+ _ctrlLocked ctrlSetTextColor _overwriteColor;
+ _ctrlLocked ctrlSetTooltip [LLSTRING(overwritten_by_client_tooltip), LLSTRING(overwritten_by_client_equal_tooltip)] select _overwriteEqual;
};
case ["server", "client"]: {
if (isServer) then {
diff --git a/addons/settings/fnc_gui_settingSlider.sqf b/addons/settings/fnc_gui_settingSlider.sqf
index 40d6a0a5e..ae1cd2089 100644
--- a/addons/settings/fnc_gui_settingSlider.sqf
+++ b/addons/settings/fnc_gui_settingSlider.sqf
@@ -32,6 +32,8 @@ _ctrlSlider ctrlAddEventHandler ["SliderPosChanged", {
// automatically check "overwrite client" for mission makers qol
[_controlsGroup, _source] call (_controlsGroup getVariable QFUNC(auto_check_overwrite));
+ // refresh priority to update overwrite color if current value is equal to overwrite
+ [_controlsGroup] call (_controlsGroup getVariable QFUNC(updateUI_locked));
}];
private _ctrlSliderEdit = _controlsGroup controlsGroupCtrl IDC_SETTING_SLIDER_EDIT;
@@ -63,6 +65,8 @@ _ctrlSliderEdit ctrlAddEventHandler ["KeyUp", {
// automatically check "overwrite client" for mission makers qol
[_controlsGroup, _source] call (_controlsGroup getVariable QFUNC(auto_check_overwrite));
+ // refresh priority to update overwrite color if current value is equal to overwrite
+ [_controlsGroup] call (_controlsGroup getVariable QFUNC(updateUI_locked));
}];
_ctrlSliderEdit ctrlAddEventHandler ["KillFocus", {
diff --git a/addons/settings/fnc_gui_settingTime.sqf b/addons/settings/fnc_gui_settingTime.sqf
index 4cfb9bf19..f6f7da752 100644
--- a/addons/settings/fnc_gui_settingTime.sqf
+++ b/addons/settings/fnc_gui_settingTime.sqf
@@ -30,6 +30,8 @@ _ctrlSlider ctrlAddEventHandler ["SliderPosChanged", {
// automatically check "overwrite client" for mission makers qol
[_controlsGroup, _source] call (_controlsGroup getVariable QFUNC(auto_check_overwrite));
+ // refresh priority to update overwrite color if current value is equal to overwrite
+ [_controlsGroup] call (_controlsGroup getVariable QFUNC(updateUI_locked));
}];
{
@@ -66,6 +68,8 @@ _ctrlSlider ctrlAddEventHandler ["SliderPosChanged", {
// automatically check "overwrite client" for mission makers qol
[_controlsGroup, _source] call (_controlsGroup getVariable QFUNC(auto_check_overwrite));
+ // refresh priority to update overwrite color if current value is equal to overwrite
+ [_controlsGroup] call (_controlsGroup getVariable QFUNC(updateUI_locked));
}];
} forEach [
[IDC_SETTING_TIME_HOURS, floor (_currentValue / 3600)],
diff --git a/addons/settings/script_component.hpp b/addons/settings/script_component.hpp
index d8695cd8a..131fdb723 100644
--- a/addons/settings/script_component.hpp
+++ b/addons/settings/script_component.hpp
@@ -105,6 +105,7 @@
#define COLOR_APPLIES [0, 0.95, 0, 1]
#define COLOR_OVERWRITTEN [0.95, 0, 0, 1]
+#define COLOR_OVERWRITTEN_EQUAL [0.95, 0.55, 0, 1]
#define COLOR_NEED_RESTART [0.95, 0.95, 0, 1]
#define CAN_SET_SERVER_SETTINGS ((isServer || FUNC(whitelisted)) && {!isNull GVAR(server)}) // in single player, as host (local server) or as logged in (not voted) admin connected to a dedicated server
@@ -132,11 +133,13 @@
(uiNamespace getVariable QGVAR(serverTemp)) getVariable [setting, [nil, [setting, "server"] call FUNC(priority)]] select 1\
]; ["client", "mission", "server"] select (_arr find selectMax _arr)})
-#define TEMP_VALUE(setting) ([\
+#define TEMP_VALUE_SOURCE(setting,source) ([\
(uiNamespace getVariable QGVAR(clientTemp)) getVariable [setting, [[setting, "client"] call FUNC(get), nil]] select 0,\
(uiNamespace getVariable QGVAR(missionTemp)) getVariable [setting, [[setting, "mission"] call FUNC(get), nil]] select 0,\
(uiNamespace getVariable QGVAR(serverTemp)) getVariable [setting, [[setting, "server"] call FUNC(get), nil]] select 0\
-] select (["client", "mission", "server"] find TEMP_PRIORITY(setting)))
+] select (["client", "mission", "server"] find (source)))
+
+#define TEMP_VALUE(setting) TEMP_VALUE_SOURCE(setting,TEMP_PRIORITY(setting))
#define ASCII_NEWLINE 10
#define ASCII_CARRIAGE_RETURN 13
diff --git a/addons/settings/stringtable.xml b/addons/settings/stringtable.xml
index 11ebdd5e3..0b0ddcdd2 100644
--- a/addons/settings/stringtable.xml
+++ b/addons/settings/stringtable.xml
@@ -406,12 +406,30 @@
此项设定被客户端给覆写并仅适用于伺服器。
Esta configuração é sobrescrita pelos clientes e é apenas aplicada no servidor.
Этот параметр перезаписан клиентом и применяется исключительно к серверу.
- Ta wartość zostałą nadpisana przez klientów i ma zastosowanie tylko na serwerze.
+ Ta wartość została nadpisana przez klientów i ma zastosowanie tylko na serwerze.
Ce paramètre est écrasé par les clients et ne s'applique qu'au serveur.
Oyuncular tarafından bu ayarın üstüne yazılmış, ayar sadece sunucuda geçerli.
Questa impostazione è sovrascritta dai client e si applica solo al server.
Toto nastavení je přepsáno klienty a platí pouze na serveru.
+
+ Overwritten by client with the same value.
+ Mit gleichem Wert durch Client überschrieben.
+ Nadpisane przez klienta z taką samą wartością.
+ Écrasé par le client, avec la même valeur.
+
+
+ Overwritten by mission with the same value.
+ Mit gleichem Wert durch Mission überschrieben.
+ Nadpisane przez misję z taką samą wartością.
+ Écrasé par la mission, avec la même valeur.
+
+
+ Overwritten by server with the same value.
+ Mit gleichem Wert durch Server überschrieben.
+ Nadpisane przez serwer z taką samą wartością.
+ Écrasé par le serveur, avec la même valeur.
+
Copy to clipboard
In Zwischenablage