mirror of
https://github.com/acemod/ACE3.git
synced 2024-08-30 18:23:18 +00:00
Merge branch 'master' of github.com:KoffeinFlummi/ACE3 into AdvancedBallistics
This commit is contained in:
commit
b37b549d76
@ -15,11 +15,13 @@
|
|||||||
|
|
||||||
GVAR(settings) = [];
|
GVAR(settings) = [];
|
||||||
|
|
||||||
// Load settings from main config
|
_parseConfigForSettings = {
|
||||||
_countOptions = count (configFile >> "ACE_Settings");
|
private ["_config", "_countOptions", "_optionEntry", "_index"];
|
||||||
for "_index" from 0 to (_countOptions - 1) do {
|
|
||||||
_optionEntry = (configFile >> "ACE_Settings") select _index;
|
|
||||||
|
|
||||||
|
_config = _this select 0;
|
||||||
|
_countOptions = count _config;
|
||||||
|
for "_index" from 0 to (_countOptions - 1) do {
|
||||||
|
_optionEntry = _config select _index;
|
||||||
[_optionEntry] call FUNC(setSettingFromConfig);
|
[_optionEntry] call FUNC(setSettingFromConfig);
|
||||||
};
|
};
|
||||||
// Check if all settings should be forced
|
// Check if all settings should be forced
|
||||||
@ -28,38 +30,22 @@ if (GVAR(forceAllSettings)) then {
|
|||||||
_x set [6, true];
|
_x set [6, true];
|
||||||
} forEach GVAR(settings);
|
} forEach GVAR(settings);
|
||||||
};
|
};
|
||||||
|
};
|
||||||
|
|
||||||
// @todo
|
// Order is this way because:
|
||||||
// Load settings from server userconfig only if the ACE_ServerSettings is loaded
|
// ACE_Settings should never force any setting by default. Loading it first ensures that all settings from ACE_Settings exist.
|
||||||
/*if (isClass (configFile >> "CfgPatches" >> "ACE_ServerSettings")) then {
|
// This way, ACE_ServerSettings will override ACE_Settings, even if no force is used.
|
||||||
DFUNC(serverUserConfig) = compile preprocessFileLineNumbers "\userconfig\ACE\ACE_Settings.hpp";
|
// Mission settings will override the server config settings, if no force is used.
|
||||||
if !(isNil DFUNC(serverUserConfig)) then {
|
// This ensures that all settings are of their correct type, in case an outdated or corrupt server config is used , as well as have their correct localized display name and description
|
||||||
[] call FUNC(serverUserConfig);
|
|
||||||
};
|
|
||||||
// Check if all settings should be forced
|
|
||||||
if (GVAR(forceAllSettings)) then {
|
|
||||||
{
|
|
||||||
if !(missionNamespace getVariable format ["%1_forced", _x]) then {
|
|
||||||
missionNamespace setVariable format ["%1_forced", _x, true];
|
|
||||||
publicVariable format ["%1_forced", _name];
|
|
||||||
};
|
|
||||||
} forEach GVAR(settingsList);
|
|
||||||
};
|
|
||||||
};*/
|
|
||||||
|
|
||||||
// Load settings from mission config
|
// Regular config
|
||||||
_countOptions = count (missionConfigFile >> "ACE_Settings");
|
[configFile >> "ACE_Settings"] call _parseConfigForSettings;
|
||||||
for "_index" from 0 to (_countOptions - 1) do {
|
|
||||||
_optionEntry = (missionConfigFile >> "ACE_Settings") select _index;
|
|
||||||
|
|
||||||
[_optionEntry] call FUNC(setSettingFromConfig);
|
// Server config
|
||||||
};
|
[configFile >> "ACE_ServerSettings"] call _parseConfigForSettings;
|
||||||
// Check if all settings should be forced
|
|
||||||
if (GVAR(forceAllSettings)) then {
|
// mission side settings
|
||||||
{
|
[missionConfigFile >> "ACE_Settings"] call _parseConfigForSettings;
|
||||||
_x set [6, true];
|
|
||||||
} forEach GVAR(settings);
|
|
||||||
};
|
|
||||||
|
|
||||||
// Publish all settings data
|
// Publish all settings data
|
||||||
publicVariable QGVAR(settings);
|
publicVariable QGVAR(settings);
|
||||||
|
28
addons/optionsmenu/CfgVehicles.hpp
Normal file
28
addons/optionsmenu/CfgVehicles.hpp
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
class CfgVehicles {
|
||||||
|
class ACE_Module;
|
||||||
|
// TODO localization for all the modules
|
||||||
|
class ACE_moduleAllowConfigExport: ACE_Module {
|
||||||
|
scope = 2;
|
||||||
|
displayName = "Allow Config Export [ACE]";
|
||||||
|
//icon = "";
|
||||||
|
category = "ACE";
|
||||||
|
function = QUOTE(DFUNC(moduleAllowConfigExport));
|
||||||
|
functionPriority = 1;
|
||||||
|
isGlobal = 1;
|
||||||
|
isTriggerActivated = 0;
|
||||||
|
author = "$STR_ACE_Common_ACETeam";
|
||||||
|
class Arguments {
|
||||||
|
class allowconfigurationExport {
|
||||||
|
displayName = "Allow";
|
||||||
|
description = "Allow export of all settings to a server config formatted.";
|
||||||
|
typeName = "BOOL";
|
||||||
|
defaultValue = 1;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
class ModuleDescription {
|
||||||
|
description = "When allowed, you have access to the settings modification and export in SP. Clicking export will place the formated config on your clipboard.";
|
||||||
|
sync[] = {};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
};
|
@ -6,12 +6,27 @@ PREP(onListBoxSettingsChanged);
|
|||||||
PREP(onListBoxShowSelectionChanged);
|
PREP(onListBoxShowSelectionChanged);
|
||||||
PREP(onSettingsMenuOpen);
|
PREP(onSettingsMenuOpen);
|
||||||
PREP(onSliderPosChanged);
|
PREP(onSliderPosChanged);
|
||||||
|
PREP(onServerSaveInputField);
|
||||||
|
PREP(onServerSettingsMenuOpen);
|
||||||
|
PREP(onServerListBoxShowSelectionChanged);
|
||||||
PREP(resetSettings);
|
PREP(resetSettings);
|
||||||
|
PREP(serverResetSettings);
|
||||||
PREP(settingsMenuUpdateKeyView);
|
PREP(settingsMenuUpdateKeyView);
|
||||||
PREP(settingsMenuUpdateList);
|
PREP(settingsMenuUpdateList);
|
||||||
|
PREP(serverSettingsMenuUpdateKeyView);
|
||||||
|
PREP(serverSettingsMenuUpdateList);
|
||||||
PREP(updateSetting);
|
PREP(updateSetting);
|
||||||
|
PREP(exportSettings);
|
||||||
|
PREP(toggleIncludeClientSettings);
|
||||||
|
PREP(moduleAllowConfigExport);
|
||||||
|
|
||||||
GVAR(clientSideOptions) = [];
|
GVAR(clientSideOptions) = [];
|
||||||
GVAR(clientSideColors) = [];
|
GVAR(clientSideColors) = [];
|
||||||
|
|
||||||
|
GVAR(serverConfigGeneration) = 0;
|
||||||
|
GVAR(ClientSettingsExportIncluded) = false;
|
||||||
|
GVAR(serverSideOptions) = [];
|
||||||
|
GVAR(serverSideColors) = [];
|
||||||
|
GVAR(serverSideValues) = [];
|
||||||
|
|
||||||
ADDON = true;
|
ADDON = true;
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
class CfgPatches {
|
class CfgPatches {
|
||||||
class ADDON {
|
class ADDON {
|
||||||
units[] = {};
|
units[] = {"ACE_moduleAllowConfigExport"};
|
||||||
weapons[] = {};
|
weapons[] = {};
|
||||||
requiredVersion = REQUIRED_VERSION;
|
requiredVersion = REQUIRED_VERSION;
|
||||||
requiredAddons[] = {"ace_common"};
|
requiredAddons[] = {"ace_common"};
|
||||||
@ -25,3 +25,5 @@ class CfgAddons {
|
|||||||
#include "gui\define.hpp"
|
#include "gui\define.hpp"
|
||||||
#include "gui\settingsMenu.hpp"
|
#include "gui\settingsMenu.hpp"
|
||||||
#include "gui\pauseMenu.hpp"
|
#include "gui\pauseMenu.hpp"
|
||||||
|
|
||||||
|
#include "CFgVehicles.hpp"
|
||||||
|
61
addons/optionsmenu/functions/fnc_exportSettings.sqf
Normal file
61
addons/optionsmenu/functions/fnc_exportSettings.sqf
Normal file
@ -0,0 +1,61 @@
|
|||||||
|
/*
|
||||||
|
* Author: Glowbal
|
||||||
|
* Export all config settings with their current values.
|
||||||
|
*
|
||||||
|
* Arguments:
|
||||||
|
* None
|
||||||
|
*
|
||||||
|
* Return Value:
|
||||||
|
* None
|
||||||
|
*
|
||||||
|
* Example:
|
||||||
|
* [] call ACE_optionsmenu_fnc_exportSettings
|
||||||
|
*
|
||||||
|
* Public: No
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "script_component.hpp"
|
||||||
|
|
||||||
|
_compiledConfig = "
|
||||||
|
";
|
||||||
|
{
|
||||||
|
/*_settingData = [
|
||||||
|
_name,
|
||||||
|
_typeName,
|
||||||
|
_isClientSetable,
|
||||||
|
_localizedName,
|
||||||
|
_localizedDescription,
|
||||||
|
_possibleValues,
|
||||||
|
_isForced,
|
||||||
|
_defaultValue
|
||||||
|
];*/
|
||||||
|
|
||||||
|
_name = _x select 0;
|
||||||
|
_typeName = _x select 1;
|
||||||
|
_isClientSetable = _x select 2;
|
||||||
|
_localizedName = _x select 3;
|
||||||
|
_localizedDescription = _x select 4;
|
||||||
|
_possibleValues = _x select 5;
|
||||||
|
_defaultValue = _x select 6;
|
||||||
|
|
||||||
|
if (GVAR(ClientSettingsExportIncluded) || !_isClientSetable) then {
|
||||||
|
_value = missionNamespace getvariable [_name, _defaultValue];
|
||||||
|
if (_typeName == "STRING") then { // I dont think we have string values, but just in case
|
||||||
|
_value = format['"%1"', _value];
|
||||||
|
};
|
||||||
|
if (_typeName == "BOOL") then {
|
||||||
|
_value = if (typeOf _value == "BOOL" && {_value}) then {1} else {0};
|
||||||
|
};
|
||||||
|
_compiledConfigEntry = format ["
|
||||||
|
class %1 {
|
||||||
|
value = %2;
|
||||||
|
typeName = %3;
|
||||||
|
force = 1;
|
||||||
|
};", _name, _value, format['"%1"', _typeName]];
|
||||||
|
_compiledConfig = _compiledConfig + _compiledConfigEntry;
|
||||||
|
};
|
||||||
|
} forEach EGVAR(common,settings);
|
||||||
|
|
||||||
|
copyToClipboard format["%1",_compiledConfig];
|
||||||
|
|
||||||
|
["STR_ACE_OptionsMenu_settingsExported"] call EFUNC(common,displayTextStructured);
|
25
addons/optionsmenu/functions/fnc_moduleAllowConfigExport.sqf
Normal file
25
addons/optionsmenu/functions/fnc_moduleAllowConfigExport.sqf
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
/*
|
||||||
|
* Author: Glowbal
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* Arguments:
|
||||||
|
* none
|
||||||
|
*
|
||||||
|
* Return Value:
|
||||||
|
* None
|
||||||
|
*
|
||||||
|
* Public: No
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "script_component.hpp"
|
||||||
|
|
||||||
|
private ["_logic"];
|
||||||
|
_logic = _this select 0;
|
||||||
|
|
||||||
|
if (isMultiplayer) exitwith {};
|
||||||
|
|
||||||
|
if (_logic getvariable ["allowconfigurationExport", false]) then {
|
||||||
|
GVAR(serverConfigGeneration) = 1;
|
||||||
|
} else {
|
||||||
|
GVAR(serverConfigGeneration) = 0;
|
||||||
|
};
|
@ -31,4 +31,11 @@ case (MENU_TAB_OPTIONS): {
|
|||||||
};
|
};
|
||||||
[false] call FUNC(settingsMenuUpdateList);
|
[false] call FUNC(settingsMenuUpdateList);
|
||||||
};
|
};
|
||||||
|
case (MENU_TAB_SERVER_OPTIONS): {
|
||||||
|
if ((_settingIndex >= 0) && (_settingIndex < (count GVAR(serverSideOptions)))) then {
|
||||||
|
_settingIndex = (GVAR(serverSideOptions) select _settingIndex) select 0;
|
||||||
|
[MENU_TAB_SERVER_OPTIONS, _settingIndex, _rightDropDownIndex] call FUNC(updateSetting);
|
||||||
|
};
|
||||||
|
[false] call FUNC(serverSettingsMenuUpdateList);
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
@ -0,0 +1,88 @@
|
|||||||
|
/*
|
||||||
|
* Author: Glowbal
|
||||||
|
* Changes which tab is open (options or colors)
|
||||||
|
*
|
||||||
|
* Arguments:
|
||||||
|
* The tab to open (defined in script_component) <NUMBER>
|
||||||
|
*
|
||||||
|
* Return Value:
|
||||||
|
* None
|
||||||
|
*
|
||||||
|
* Example:
|
||||||
|
* [MENU_TAB_COLORS] call ACE_optionsmenu_fnc_onListBoxShowSelectionChanged
|
||||||
|
*
|
||||||
|
* Public: No
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "script_component.hpp"
|
||||||
|
|
||||||
|
private ["_settingsMenu", "_localizedHeader"];
|
||||||
|
|
||||||
|
PARAMS_1(_openTab);
|
||||||
|
GVAR(optionMenu_openTab) = _openTab;
|
||||||
|
|
||||||
|
disableSerialization;
|
||||||
|
_settingsMenu = uiNamespace getVariable 'ACE_serverSettingsMenu';
|
||||||
|
|
||||||
|
switch (GVAR(optionMenu_openTab)) do {
|
||||||
|
case (MENU_TAB_SERVER_OPTIONS): {
|
||||||
|
_localizedHeader = format ["%1: %2", (localize "STR_ACE_OptionsMenu_OpenConfigMenu"), (localize "STR_ACE_OptionsMenu_TabOptions")];
|
||||||
|
ctrlSetText [13, _localizedHeader];
|
||||||
|
lbClear 400;
|
||||||
|
|
||||||
|
(_settingsMenu displayCtrl 301) ctrlShow true;
|
||||||
|
|
||||||
|
(_settingsMenu displayCtrl 400) ctrlShow true;
|
||||||
|
(_settingsMenu displayCtrl 410) ctrlShow false;
|
||||||
|
(_settingsMenu displayCtrl 411) ctrlShow false;
|
||||||
|
(_settingsMenu displayCtrl 412) ctrlShow false;
|
||||||
|
(_settingsMenu displayCtrl 413) ctrlShow false;
|
||||||
|
(_settingsMenu displayCtrl 414) ctrlShow false;
|
||||||
|
(_settingsMenu displayCtrl 415) ctrlShow false;
|
||||||
|
(_settingsMenu displayCtrl 416) ctrlShow false;
|
||||||
|
(_settingsMenu displayCtrl 416) ctrlEnable false;
|
||||||
|
};
|
||||||
|
case (MENU_TAB_SERVER_COLORS): {
|
||||||
|
_localizedHeader = format ["%1: %2", (localize "STR_ACE_OptionsMenu_OpenConfigMenu"), (localize "STR_ACE_OptionsMenu_TabColors")];
|
||||||
|
ctrlSetText [13, _localizedHeader];
|
||||||
|
|
||||||
|
lbClear 400;
|
||||||
|
|
||||||
|
(_settingsMenu displayCtrl 301) ctrlShow false;
|
||||||
|
|
||||||
|
(_settingsMenu displayCtrl 400) ctrlShow false;
|
||||||
|
(_settingsMenu displayCtrl 410) ctrlShow true;
|
||||||
|
(_settingsMenu displayCtrl 411) ctrlShow true;
|
||||||
|
(_settingsMenu displayCtrl 412) ctrlShow true;
|
||||||
|
(_settingsMenu displayCtrl 413) ctrlShow true;
|
||||||
|
|
||||||
|
(_settingsMenu displayCtrl 410) sliderSetRange [0, 255];
|
||||||
|
(_settingsMenu displayCtrl 411) sliderSetRange [0, 255];
|
||||||
|
(_settingsMenu displayCtrl 412) sliderSetRange [0, 255];
|
||||||
|
(_settingsMenu displayCtrl 413) sliderSetRange [0, 255];
|
||||||
|
|
||||||
|
(_settingsMenu displayCtrl 414) ctrlShow false;
|
||||||
|
(_settingsMenu displayCtrl 415) ctrlShow false;
|
||||||
|
(_settingsMenu displayCtrl 416) ctrlShow false;
|
||||||
|
(_settingsMenu displayCtrl 416) ctrlEnable false;
|
||||||
|
};
|
||||||
|
case (MENU_TAB_SERVER_VALUES): {
|
||||||
|
_localizedHeader = format ["%1: %2", (localize "STR_ACE_OptionsMenu_OpenConfigMenu"), (localize "STR_ACE_OptionsMenu_TabValues")];
|
||||||
|
ctrlSetText [13, _localizedHeader];
|
||||||
|
|
||||||
|
lbClear 400;
|
||||||
|
(_settingsMenu displayCtrl 301) ctrlShow false;
|
||||||
|
(_settingsMenu displayCtrl 400) ctrlShow false;
|
||||||
|
(_settingsMenu displayCtrl 410) ctrlShow false;
|
||||||
|
(_settingsMenu displayCtrl 411) ctrlShow false;
|
||||||
|
(_settingsMenu displayCtrl 412) ctrlShow false;
|
||||||
|
(_settingsMenu displayCtrl 413) ctrlShow false;
|
||||||
|
|
||||||
|
(_settingsMenu displayCtrl 414) ctrlShow true;
|
||||||
|
(_settingsMenu displayCtrl 415) ctrlShow true;
|
||||||
|
(_settingsMenu displayCtrl 416) ctrlShow true;
|
||||||
|
(_settingsMenu displayCtrl 416) ctrlEnable true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
[true] call FUNC(serverSettingsMenuUpdateList);
|
43
addons/optionsmenu/functions/fnc_onServerSaveInputField.sqf
Normal file
43
addons/optionsmenu/functions/fnc_onServerSaveInputField.sqf
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
/*
|
||||||
|
* Author: Glowbal
|
||||||
|
* Called when the listbox selection is changed for an options (eg: chaning a setting from false to true)
|
||||||
|
*
|
||||||
|
* Arguments:
|
||||||
|
* None
|
||||||
|
*
|
||||||
|
* Return Value:
|
||||||
|
* None
|
||||||
|
*
|
||||||
|
* Example:
|
||||||
|
* [] call ACE_optionsmenu_fnc_onListBoxSettingsChanged
|
||||||
|
*
|
||||||
|
* Public: No
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "script_component.hpp"
|
||||||
|
|
||||||
|
private ["_settingIndex", "_inputText"];
|
||||||
|
|
||||||
|
_settingIndex = lbCurSel 200; //Index of left list
|
||||||
|
_inputText = ctrlText 414; //Index of right drop down
|
||||||
|
|
||||||
|
switch (GVAR(optionMenu_openTab)) do {
|
||||||
|
case (MENU_TAB_SERVER_VALUES): {
|
||||||
|
if ((_settingIndex >= 0) && (_settingIndex < (count GVAR(serverSideValues)))) then {
|
||||||
|
try {
|
||||||
|
_setting = (GVAR(serverSideValues) select _settingIndex);
|
||||||
|
_settingName = _setting select 0;
|
||||||
|
|
||||||
|
_convertedValue = switch (toUpper (_setting select 1)) do {
|
||||||
|
case "STRING": {format ['"%1"', _inputText]};
|
||||||
|
case "ARRAY": {format [call compile "[%1]", _inputText]};
|
||||||
|
case "SCALAR": {parseNumber _inputText;};
|
||||||
|
default {throw "Error"};
|
||||||
|
};
|
||||||
|
[MENU_TAB_SERVER_VALUES, _settingName, _convertedValue] call FUNC(updateSetting);
|
||||||
|
} catch {
|
||||||
|
};
|
||||||
|
};
|
||||||
|
[false] call FUNC(serverSettingsMenuUpdateList);
|
||||||
|
};
|
||||||
|
};
|
@ -0,0 +1,66 @@
|
|||||||
|
/*
|
||||||
|
* Author: Glowbal
|
||||||
|
* Called from the onLoad of ACE_settingsMenu dialog.
|
||||||
|
*
|
||||||
|
* Arguments:
|
||||||
|
* None
|
||||||
|
*
|
||||||
|
* Return Value:
|
||||||
|
* None
|
||||||
|
*
|
||||||
|
* Example:
|
||||||
|
* [onLoadEvent] call ACE_optionsmenu_fnc_onSettingsMenuOpen
|
||||||
|
*
|
||||||
|
* Public: No
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "script_component.hpp"
|
||||||
|
|
||||||
|
if (GVAR(serverConfigGeneration) == 0 || isMultiplayer) exitwith {closeDialog 145246;};
|
||||||
|
|
||||||
|
// Filter only user setable setting
|
||||||
|
GVAR(serverSideOptions) = [];
|
||||||
|
GVAR(serverSideColors) = [];
|
||||||
|
GVAR(serverSideValues) = [];
|
||||||
|
{
|
||||||
|
_name = _x select 0;
|
||||||
|
_typeName = _x select 1;
|
||||||
|
_isClientSetable = _x select 2;
|
||||||
|
_localizedName = _x select 3;
|
||||||
|
_localizedDescription = _x select 4;
|
||||||
|
_possibleValues = _x select 5;
|
||||||
|
_defaultValue = _x select 6;
|
||||||
|
|
||||||
|
// Exclude client side options if they are not included for the export
|
||||||
|
if (!(_isClientSetable) || GVAR(ClientSettingsExportIncluded)) then {
|
||||||
|
// Append the current value to the setting metadata
|
||||||
|
_setting = + _x;
|
||||||
|
_setting pushBack (missionNamespace getVariable (_x select 0));
|
||||||
|
|
||||||
|
// Categorize the setting according to types
|
||||||
|
// @todo: allow the user to modify other types of parameters?
|
||||||
|
if ((_typeName == "SCALAR" && count _possibleValues > 0) || (_x select 1) == "BOOL") then {
|
||||||
|
GVAR(serverSideOptions) pushBack _setting;
|
||||||
|
};
|
||||||
|
if (_typeName == "COLOR") then {
|
||||||
|
GVAR(serverSideColors) pushBack _setting;
|
||||||
|
};
|
||||||
|
if ((_typeName == "SCALAR" && count _possibleValues == 0) || _typeName == "ARRAY" || _typeName == "STRING") then {
|
||||||
|
GVAR(serverSideValues) pushBack _setting;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
} forEach EGVAR(common,settings);
|
||||||
|
|
||||||
|
//Delay a frame
|
||||||
|
[{ [MENU_TAB_SERVER_OPTIONS] call FUNC(onServerListBoxShowSelectionChanged) }, []] call EFUNC(common,execNextFrame);
|
||||||
|
|
||||||
|
private "_menu";
|
||||||
|
disableSerialization;
|
||||||
|
_menu = uiNamespace getvariable "ACE_serverSettingsMenu";
|
||||||
|
(_menu displayCtrl 1003) ctrlEnable false;
|
||||||
|
|
||||||
|
if (GVAR(ClientSettingsExportIncluded)) then {
|
||||||
|
(_settingsMenu displayCtrl 1102) ctrlSetText localize ("STR_ACE_OptionsMenu_exClientSettings");
|
||||||
|
} else {
|
||||||
|
(_settingsMenu displayCtrl 1102) ctrlSetText localize ("STR_ACE_OptionsMenu_inClientSettings");
|
||||||
|
};
|
@ -16,6 +16,10 @@
|
|||||||
|
|
||||||
#include "script_component.hpp"
|
#include "script_component.hpp"
|
||||||
|
|
||||||
|
if (isMultiplayer /* || !(GVAR(allowServerConfigGeneration))*/) exitwith {
|
||||||
|
closeDialog 0;
|
||||||
|
};
|
||||||
|
|
||||||
// Filter only user setable setting
|
// Filter only user setable setting
|
||||||
GVAR(clientSideOptions) = [];
|
GVAR(clientSideOptions) = [];
|
||||||
GVAR(clientSideColors) = [];
|
GVAR(clientSideColors) = [];
|
||||||
@ -45,3 +49,8 @@ disableSerialization;
|
|||||||
_menu = uiNamespace getvariable "ACE_settingsMenu";
|
_menu = uiNamespace getvariable "ACE_settingsMenu";
|
||||||
(_menu displayCtrl 1002) ctrlEnable false;
|
(_menu displayCtrl 1002) ctrlEnable false;
|
||||||
(_menu displayCtrl 1003) ctrlEnable false;
|
(_menu displayCtrl 1003) ctrlEnable false;
|
||||||
|
|
||||||
|
if (GVAR(serverConfigGeneration) == 0) then {
|
||||||
|
(_menu displayCtrl 1102) ctrlEnable false;
|
||||||
|
(_menu displayCtrl 1102) ctrlShow false;
|
||||||
|
};
|
||||||
|
@ -34,5 +34,18 @@ switch (GVAR(optionMenu_openTab)) do {
|
|||||||
};
|
};
|
||||||
[false] call FUNC(settingsMenuUpdateList);
|
[false] call FUNC(settingsMenuUpdateList);
|
||||||
};
|
};
|
||||||
|
case (MENU_TAB_SERVER_COLORS): {
|
||||||
|
|
||||||
|
_newColor = [];
|
||||||
|
{
|
||||||
|
_newColor pushBack ((sliderPosition _x) / 255);
|
||||||
|
} forEach [410, 411, 412, 413];
|
||||||
|
|
||||||
|
if ((_settingIndex >= 0) && (_settingIndex < (count GVAR(clientSideColors)))) then {
|
||||||
|
_settingIndex = (GVAR(clientSideColors) select _settingIndex) select 0;
|
||||||
|
[MENU_TAB_SERVER_COLORS, _settingIndex, _newColor] call FUNC(updateSetting);
|
||||||
|
};
|
||||||
|
[false] call FUNC(serverSettingsMenuUpdateList);
|
||||||
|
};
|
||||||
default {};
|
default {};
|
||||||
};
|
};
|
||||||
|
43
addons/optionsmenu/functions/fnc_serverResetSettings.sqf
Normal file
43
addons/optionsmenu/functions/fnc_serverResetSettings.sqf
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
/*
|
||||||
|
* Author: Glowbal
|
||||||
|
* Resets all server settings to default.
|
||||||
|
*
|
||||||
|
* Arguments:
|
||||||
|
* None
|
||||||
|
*
|
||||||
|
* Return Value:
|
||||||
|
* None
|
||||||
|
*
|
||||||
|
* Example:
|
||||||
|
* [] call ACE_optionsmenu_fnc_onListBoxSettingsChanged
|
||||||
|
*
|
||||||
|
* Public: No
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "script_component.hpp"
|
||||||
|
|
||||||
|
private ["_name", "_default", "_lastSelected"];
|
||||||
|
|
||||||
|
{
|
||||||
|
_name = _x select 0;
|
||||||
|
_default = _x select 7;
|
||||||
|
[MENU_TAB_SERVER_OPTIONS, _name, _default] call FUNC(updateSetting);
|
||||||
|
} forEach GVAR(serverSideOptions);
|
||||||
|
|
||||||
|
{
|
||||||
|
_name = _x select 0;
|
||||||
|
_default = _x select 7;
|
||||||
|
[MENU_TAB_SERVER_COLORS, _name, _default] call FUNC(updateSetting);
|
||||||
|
} forEach GVAR(serverSideColors);
|
||||||
|
|
||||||
|
{
|
||||||
|
_name = _x select 0;
|
||||||
|
_default = _x select 7;
|
||||||
|
[MENU_TAB_SERVER_VALUES, _name, _default] call FUNC(updateSetting);
|
||||||
|
} forEach GVAR(serverSideVakyes);
|
||||||
|
|
||||||
|
_lastSelected = lbCurSel 200;
|
||||||
|
[GVAR(optionMenu_openTab)] call FUNC(onserverListBoxShowSelectionChanged);
|
||||||
|
if (_lastSelected != -1) then {
|
||||||
|
lbSetCurSel [200, _lastSelected];
|
||||||
|
};
|
@ -0,0 +1,94 @@
|
|||||||
|
/*
|
||||||
|
* Author: Glowbal
|
||||||
|
* Updates the right half of the option menu for the currently selected option.
|
||||||
|
*
|
||||||
|
* Arguments:
|
||||||
|
* None
|
||||||
|
*
|
||||||
|
* Return Value:
|
||||||
|
* None
|
||||||
|
*
|
||||||
|
* Example:
|
||||||
|
* [] call ACE_optionsmenu_fnc_settingsMenuUpdateKeyView
|
||||||
|
*
|
||||||
|
* Public: No
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "script_component.hpp"
|
||||||
|
|
||||||
|
private ["_settingsMenu", "_ctrlList", "_collection", "_settingIndex", "_setting", "_entryName", "_localizedName", "_localizedDescription", "_possibleValues", "_settingsValue", "_currentColor"];
|
||||||
|
disableSerialization;
|
||||||
|
|
||||||
|
_settingsMenu = uiNamespace getVariable 'ACE_serverSettingsMenu';
|
||||||
|
_ctrlList = _settingsMenu displayCtrl 200;
|
||||||
|
|
||||||
|
_collection = switch (GVAR(optionMenu_openTab)) do {
|
||||||
|
case MENU_TAB_SERVER_OPTIONS: {GVAR(serverSideOptions)};
|
||||||
|
case MENU_TAB_SERVER_COLORS: {GVAR(serverSideColors)};
|
||||||
|
case MENU_TAB_SERVER_VALUES: {GVAR(serverSideValues)};
|
||||||
|
default {[]};
|
||||||
|
};
|
||||||
|
|
||||||
|
if (count _collection > 0) then {
|
||||||
|
_settingIndex = (lbCurSel _ctrlList);
|
||||||
|
if (_settingIndex > (count _collection)) then {
|
||||||
|
_settingIndex = count _collection - 1;
|
||||||
|
};
|
||||||
|
|
||||||
|
if (_settingIndex < 0) then {
|
||||||
|
_settingIndex = 0;
|
||||||
|
};
|
||||||
|
_setting = _collection select _settingIndex;
|
||||||
|
|
||||||
|
_entryName = _setting select 0;
|
||||||
|
_localizedName = _setting select 3;
|
||||||
|
_localizedDescription = _setting select 4;
|
||||||
|
|
||||||
|
if (_localizedName == "") then {_localizedName = _entryName;};
|
||||||
|
(_settingsMenu displayCtrl 250) ctrlSetText _localizedName;
|
||||||
|
(_settingsMenu displayCtrl 251) ctrlSetText _localizedDescription;
|
||||||
|
(_settingsMenu displayCtrl 300) ctrlSetText _entryName;
|
||||||
|
|
||||||
|
switch (GVAR(optionMenu_openTab)) do {
|
||||||
|
case (MENU_TAB_SERVER_OPTIONS): {
|
||||||
|
_possibleValues = _setting select 5;
|
||||||
|
_settingsValue = _setting select 8;
|
||||||
|
// Created disable/enable options for bools
|
||||||
|
if ((_setting select 1) == "BOOL") then {
|
||||||
|
lbClear 400;
|
||||||
|
lbAdd [400, (localize "STR_ACE_OptionsMenu_Disabled")];
|
||||||
|
lbAdd [400, (localize "STR_ACE_OptionsMenu_Enabled")];
|
||||||
|
_settingsValue = [0, 1] select _settingsValue;
|
||||||
|
} else {
|
||||||
|
lbClear 400;
|
||||||
|
{ lbAdd [400, _x]; } foreach _possibleValues;
|
||||||
|
};
|
||||||
|
(_settingsMenu displayCtrl 400) lbSetCurSel _settingsValue;
|
||||||
|
};
|
||||||
|
case (MENU_TAB_SERVER_COLORS): {
|
||||||
|
_currentColor = _setting select 8;
|
||||||
|
{
|
||||||
|
sliderSetPosition [_x, (255 * (_currentColor select _forEachIndex))];
|
||||||
|
} forEach [410, 411, 412, 413];
|
||||||
|
};
|
||||||
|
case (MENU_TAB_SERVER_VALUES): {
|
||||||
|
// TODO implement
|
||||||
|
_settingsValue = _setting select 8;
|
||||||
|
|
||||||
|
// Created disable/enable options for bools
|
||||||
|
_expectedType = switch (_setting select 1) do {
|
||||||
|
case "STRING": {"STR_ACE_OptionsMenu_stringType"};
|
||||||
|
case "ARRAY": {"STR_ACE_OptionsMenu_arrayType"};
|
||||||
|
case "SCALAR": {"STR_ACE_OptionsMenu_scalarType"};
|
||||||
|
default {"STR_ACE_optionsMenu_unknownType"};
|
||||||
|
};
|
||||||
|
(_settingsMenu displayCtrl 414) ctrlSetText format["%1", _settingsValue];
|
||||||
|
(_settingsMenu displayCtrl 415) ctrlSetText format[localize _expectedType];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
} else { //no settings in list:
|
||||||
|
lbClear 400;
|
||||||
|
(_settingsMenu displayCtrl 250) ctrlSetText "No settings available";
|
||||||
|
(_settingsMenu displayCtrl 251) ctrlSetText "No settings available";
|
||||||
|
(_settingsMenu displayCtrl 300) ctrlSetText "No settings available";
|
||||||
|
};
|
@ -0,0 +1,81 @@
|
|||||||
|
/*
|
||||||
|
* Author: Glowbal
|
||||||
|
* Updates the setting when the client has selected a new value. Saves to profilenamespace.
|
||||||
|
*
|
||||||
|
* Arguments:
|
||||||
|
* 0: Update the keylist as well <BOOL>
|
||||||
|
*
|
||||||
|
* Return Value:
|
||||||
|
* None
|
||||||
|
*
|
||||||
|
* Example:
|
||||||
|
* [false] call ACE_optionsmenu_fnc_settingsMenuUpdateList
|
||||||
|
*
|
||||||
|
* Public: No
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "script_component.hpp"
|
||||||
|
|
||||||
|
private ["_settingsMenu", "_ctrlList", "_settingsText", "_color", "_settingsColor", "_updateKeyView"];
|
||||||
|
DEFAULT_PARAM(0,_updateKeyView,true);
|
||||||
|
|
||||||
|
disableSerialization;
|
||||||
|
_settingsMenu = uiNamespace getVariable 'ACE_serverSettingsMenu';
|
||||||
|
_ctrlList = _settingsMenu displayCtrl 200;
|
||||||
|
|
||||||
|
lbclear _ctrlList;
|
||||||
|
switch (GVAR(optionMenu_openTab)) do {
|
||||||
|
case (MENU_TAB_SERVER_OPTIONS): {
|
||||||
|
{
|
||||||
|
if ((_x select 3) != "") then {
|
||||||
|
_ctrlList lbadd (_x select 3);
|
||||||
|
} else {
|
||||||
|
_ctrlList lbadd (_x select 0);
|
||||||
|
};
|
||||||
|
|
||||||
|
_settingsValue = _x select 8;
|
||||||
|
|
||||||
|
// Created disable/enable options for bools
|
||||||
|
_settingsText = if ((_x select 1) == "BOOL") then {
|
||||||
|
[(localize "STR_ACE_OptionsMenu_Disabled"), (localize "STR_ACE_OptionsMenu_Enabled")] select _settingsValue;
|
||||||
|
} else {
|
||||||
|
(_x select 5) select _settingsValue;
|
||||||
|
};
|
||||||
|
|
||||||
|
_ctrlList lbadd (_settingsText);
|
||||||
|
}foreach GVAR(serverSideOptions);
|
||||||
|
};
|
||||||
|
case (MENU_TAB_SERVER_COLORS): {
|
||||||
|
{
|
||||||
|
_color = +(_x select 8);
|
||||||
|
{
|
||||||
|
_color set [_forEachIndex, ((round (_x * 100))/100)];
|
||||||
|
} forEach _color;
|
||||||
|
_settingsColor = str _color;
|
||||||
|
if ((_x select 3) != "") then {
|
||||||
|
_ctrlList lbadd (_x select 3);
|
||||||
|
} else {
|
||||||
|
_ctrlList lbadd (_x select 0);
|
||||||
|
};
|
||||||
|
_ctrlList lbadd (_settingsColor);
|
||||||
|
_ctrlList lnbSetColor [[_forEachIndex, 1], (_x select 8)];
|
||||||
|
}foreach GVAR(serverSideColors);
|
||||||
|
};
|
||||||
|
case (MENU_TAB_SERVER_VALUES): {
|
||||||
|
{
|
||||||
|
if ((_x select 3) != "") then {
|
||||||
|
_ctrlList lbadd (_x select 3);
|
||||||
|
} else {
|
||||||
|
_ctrlList lbadd (_x select 0);
|
||||||
|
};
|
||||||
|
_settingsValue = _x select 8;
|
||||||
|
if (typeName _settingsValue != "STRINg") then {
|
||||||
|
_settingsValue = format["%1", _settingsValue];
|
||||||
|
};
|
||||||
|
_ctrlList lbadd (_settingsValue);
|
||||||
|
}foreach GVAR(serverSideValues);
|
||||||
|
};
|
||||||
|
};
|
||||||
|
if (_updateKeyView) then {
|
||||||
|
[] call FUNC(serverSettingsMenuUpdateKeyView);
|
||||||
|
};
|
@ -0,0 +1,18 @@
|
|||||||
|
/*
|
||||||
|
* Author: Glowbal
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* Arguments:
|
||||||
|
* none
|
||||||
|
*
|
||||||
|
* Return Value:
|
||||||
|
* None
|
||||||
|
*
|
||||||
|
* Public: No
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "script_component.hpp"
|
||||||
|
|
||||||
|
GVAR(ClientSettingsExportIncluded) = !(GVAR(ClientSettingsExportIncluded));
|
||||||
|
|
||||||
|
[] call FUNC(onServerSettingsMenuOpen);
|
@ -48,9 +48,47 @@ case (MENU_TAB_COLORS): {
|
|||||||
};
|
};
|
||||||
} foreach GVAR(clientSideColors);
|
} foreach GVAR(clientSideColors);
|
||||||
};
|
};
|
||||||
|
case (MENU_TAB_SERVER_OPTIONS): {
|
||||||
|
{
|
||||||
|
if ((_x select 0) == _name) then {
|
||||||
|
|
||||||
|
if ((_x select 1) == "BOOL") then {
|
||||||
|
_newValue = [false, true] select _newValue;
|
||||||
|
};
|
||||||
|
|
||||||
|
if !((_x select 8) isEqualTo _newValue) then {
|
||||||
|
_changed = true;
|
||||||
|
_x set [8, _newValue];
|
||||||
|
} ;
|
||||||
|
|
||||||
|
};
|
||||||
|
} foreach GVAR(serverSideOptions);
|
||||||
|
};
|
||||||
|
case (MENU_TAB_SERVER_COLORS): {
|
||||||
|
{
|
||||||
|
if (((_x select 0) == _name) && {!((_x select 8) isEqualTo _newValue)}) then {
|
||||||
|
_changed = true;
|
||||||
|
_x set [8, _newValue];
|
||||||
|
};
|
||||||
|
} foreach GVAR(serverSideColors);
|
||||||
|
};
|
||||||
|
case (MENU_TAB_SERVER_VALUES): {
|
||||||
|
{
|
||||||
|
if (((_x select 0) == _name) && {!((_x select 8) isEqualTo _newValue)}) then {
|
||||||
|
_changed = true;
|
||||||
|
_x set [8, _newValue];
|
||||||
|
};
|
||||||
|
} foreach GVAR(serverSideValues);
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
if (_changed) then {
|
if (_changed) then {
|
||||||
|
if (GVAR(serverConfigGeneration) > 0) then {
|
||||||
|
if !(isMultiplayer) then {
|
||||||
|
missionNamespace setvariable [_name, _newValue];
|
||||||
|
};
|
||||||
|
} else {
|
||||||
profileNamespace setVariable [_name, _newValue];
|
profileNamespace setVariable [_name, _newValue];
|
||||||
[_name, _newValue] call EFUNC(common,setSetting);
|
[_name, _newValue] call EFUNC(common,setSetting);
|
||||||
};
|
};
|
||||||
|
};
|
||||||
|
@ -228,5 +228,211 @@ class ACE_settingsMenu {
|
|||||||
x = 26.1 * (SIZEX / 40) + OFFSETX;
|
x = 26.1 * (SIZEX / 40) + OFFSETX;
|
||||||
action = QUOTE([] call FUNC(resetSettings));
|
action = QUOTE([] call FUNC(resetSettings));
|
||||||
};
|
};
|
||||||
|
class action_exportServerConfig: actionClose {
|
||||||
|
idc = 1102;
|
||||||
|
text = "$STR_ACE_OptionsMenu_OpenExport";
|
||||||
|
x = 1 * (SIZEX / 40) + OFFSETX;
|
||||||
|
action = QUOTE(if (GVAR(serverConfigGeneration) > 0) then {createDialog 'ACE_serverSettingsMenu'; });
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
class ACE_serverSettingsMenu: ACE_settingsMenu {
|
||||||
|
onLoad = QUOTE(uiNamespace setVariable [ARR_2('ACE_serverSettingsMenu', _this select 0)]; [] call FUNC(onServerSettingsMenuOpen););
|
||||||
|
onUnload = QUOTE(uiNamespace setVariable [ARR_2('ACE_serverSettingsMenu', nil)];);
|
||||||
|
class controls: controls {
|
||||||
|
class HeaderName {
|
||||||
|
idc = 1;
|
||||||
|
type = CT_STATIC;
|
||||||
|
x = 1 * UNITX + OFFSETX;
|
||||||
|
y = 1 * UNITY + OFFSETY;
|
||||||
|
w = 38 * UNITX;
|
||||||
|
h = 1 * UNITY;
|
||||||
|
style = ST_LEFT + ST_SHADOW;
|
||||||
|
font = "PuristaMedium";
|
||||||
|
SizeEx = (UNITY * 1);
|
||||||
|
colorText[] = {0.95, 0.95, 0.95, 0.75};
|
||||||
|
colorBackground[] = {0,0,0,0};
|
||||||
|
text = "$STR_ACE_OptionsMenu_OpenConfigMenu";
|
||||||
|
};
|
||||||
|
class labelSubHeader: ACE_gui_staticBase {
|
||||||
|
idc = 13;
|
||||||
|
x = 2 * UNITX + OFFSETX;
|
||||||
|
y = 3.4 * UNITY + OFFSETY;
|
||||||
|
w = 30 * UNITX;
|
||||||
|
h = 1 * UNITY;
|
||||||
|
text = "";
|
||||||
|
};
|
||||||
|
class selectionAction_1: ACE_gui_buttonBase {
|
||||||
|
idc = 1000;
|
||||||
|
text = "$STR_ACE_OptionsMenu_TabOptions";
|
||||||
|
x = 1 * UNITX + OFFSETX;
|
||||||
|
y = 2.1 * UNITY + OFFSETY;
|
||||||
|
w = 9.5 * UNITX;
|
||||||
|
h = 1 * UNITY;
|
||||||
|
animTextureNormal = "#(argb,8,8,3)color(0,0,0,0.9)";
|
||||||
|
animTextureDisabled = "#(argb,8,8,3)color(0,0,0,0.8)";
|
||||||
|
animTextureOver = "#(argb,8,8,3)color(1,1,1,1)";
|
||||||
|
animTextureFocused = "#(argb,8,8,3)color(1,1,1,1)";
|
||||||
|
animTexturePressed = "#(argb,8,8,3)color(1,1,1,1)";
|
||||||
|
animTextureDefault = "#(argb,8,8,3)color(1,1,1,1)";
|
||||||
|
color[] = {1, 1, 1, 1};
|
||||||
|
color2[] = {0,0,0, 1};
|
||||||
|
colorBackgroundFocused[] = {1,1,1,1};
|
||||||
|
colorBackground[] = {1,1,1,1};
|
||||||
|
colorbackground2[] = {1,1,1,1};
|
||||||
|
colorDisabled[] = {1,1,1,1};
|
||||||
|
colorFocused[] = {0,0,0,1};
|
||||||
|
periodFocus = 1;
|
||||||
|
periodOver = 1;
|
||||||
|
action = QUOTE([MENU_TAB_SERVER_OPTIONS] call FUNC(onServerListBoxShowSelectionChanged););
|
||||||
|
};
|
||||||
|
class selectionAction_2: selectionAction_1 {
|
||||||
|
idc = 1001;
|
||||||
|
text = "$STR_ACE_OptionsMenu_TabColors";
|
||||||
|
x = 10.5 * UNITX + OFFSETX;
|
||||||
|
action = QUOTE([MENU_TAB_SERVER_COLORS] call FUNC(onServerListBoxShowSelectionChanged););
|
||||||
|
};
|
||||||
|
class selectionAction_3: selectionAction_1 {
|
||||||
|
idc = 1002;
|
||||||
|
text = "$STR_ACE_OptionsMenu_TabValues";
|
||||||
|
x = 20 * UNITX + OFFSETX;
|
||||||
|
action = QUOTE([MENU_TAB_SERVER_VALUES] call FUNC(onServerListBoxShowSelectionChanged););
|
||||||
|
};
|
||||||
|
class selectionAction_4: selectionAction_1 {
|
||||||
|
idc = 1003;
|
||||||
|
text = "";
|
||||||
|
x = 29.5 * UNITX + OFFSETX;
|
||||||
|
action = "";
|
||||||
|
};
|
||||||
|
class listBoxSettingsList: ACE_gui_listNBox {
|
||||||
|
idc = 200;
|
||||||
|
x = 2 * UNITX + OFFSETX;
|
||||||
|
y = 5.5 * UNITY + OFFSETY;
|
||||||
|
w = 23 * UNITX;
|
||||||
|
h = 15 * UNITY;
|
||||||
|
SizeEx = (UNITY * 0.8);
|
||||||
|
colorBackground[] = {0, 0, 0, 0.9};
|
||||||
|
colorSelectBackground[] = {0, 0, 0, 0.9};
|
||||||
|
columns[] = {0.0, 0.6};
|
||||||
|
onLBSelChanged = QUOTE(_this call FUNC(serverSettingsMenuUpdateKeyView));
|
||||||
|
};
|
||||||
|
class labelTitle: ACE_gui_staticBase {
|
||||||
|
idc = 250;
|
||||||
|
x = 27.1 * UNITX + OFFSETX;
|
||||||
|
y = 5.1 * UNITY + OFFSETY;
|
||||||
|
w = 11 * UNITX;
|
||||||
|
h = 1 * UNITY;
|
||||||
|
text = "";
|
||||||
|
SizeEx = (UNITY *1);
|
||||||
|
};
|
||||||
|
class labelKey: ACE_gui_staticBase { //Variable Name
|
||||||
|
idc = 300;
|
||||||
|
x = 27.1 * UNITX + OFFSETX;
|
||||||
|
y = 6.2 * UNITY + OFFSETY;
|
||||||
|
w = 11 * UNITX;
|
||||||
|
h = 1 * UNITY;
|
||||||
|
text = "";
|
||||||
|
SizeEx = (UNITY * 0.65);
|
||||||
|
};
|
||||||
|
class Label2: labelKey {
|
||||||
|
idc = 301;
|
||||||
|
y = 7.3 * UNITY + OFFSETY;
|
||||||
|
text = "$STR_ACE_OptionsMenu_Setting";
|
||||||
|
SizeEx = (UNITY * 1);
|
||||||
|
};
|
||||||
|
class comboBox1: ACE_gui_comboBoxBase {
|
||||||
|
idc = 400;
|
||||||
|
x = 31.1 * UNITX + OFFSETX;
|
||||||
|
y = 7.3 * UNITY + OFFSETY;
|
||||||
|
w = 7 * UNITX;
|
||||||
|
h = 1 * UNITY;
|
||||||
|
onLBSelChanged = QUOTE( call FUNC(onListBoxSettingsChanged));
|
||||||
|
SizeEx = (UNITY * 0.9);
|
||||||
|
};
|
||||||
|
class sliderBar1: RscXSliderH {
|
||||||
|
idc = 410;
|
||||||
|
x = 27.1 * UNITX + OFFSETX;
|
||||||
|
y = 7.3 * UNITY + OFFSETY;
|
||||||
|
w = 11 * UNITX;
|
||||||
|
h = 0.75 * UNITY;
|
||||||
|
onSliderPosChanged = QUOTE(_this call FUNC(onSliderPosChanged));
|
||||||
|
color[] = {1,0,0,0.4};
|
||||||
|
colorActive[] = {1,0,0,1};
|
||||||
|
};
|
||||||
|
class sliderBar2: sliderBar1 {
|
||||||
|
idc = 411;
|
||||||
|
y = 8.2 * UNITY + OFFSETY;
|
||||||
|
color[] = {0,1,0,0.4};
|
||||||
|
colorActive[] = {0,1,0,1};
|
||||||
|
};
|
||||||
|
class sliderBar3: sliderBar1 {
|
||||||
|
idc = 412;
|
||||||
|
y = 9.1 * UNITY + OFFSETY;
|
||||||
|
color[] = {0,0,1,0.4};
|
||||||
|
colorActive[] = {0,0,1,1};
|
||||||
|
};
|
||||||
|
class sliderBar4: sliderBar1 {
|
||||||
|
idc = 413;
|
||||||
|
y = 10 * UNITY + OFFSETY;
|
||||||
|
color[] = {1,1,1,0.4};
|
||||||
|
colorActive[] = {1,1,1,1};
|
||||||
|
};
|
||||||
|
class inputField1: ACE_gui_editBase {
|
||||||
|
idc = 414;
|
||||||
|
x = 27.1 * UNITX + OFFSETX;
|
||||||
|
y = 7.3 * UNITY + OFFSETY;
|
||||||
|
w = 11 * UNITX;
|
||||||
|
h = 0.75 * UNITY;
|
||||||
|
};
|
||||||
|
class inputFieldTypeLabel: ACE_gui_staticBase {
|
||||||
|
idc = 415;
|
||||||
|
x = 27.1 * UNITX + OFFSETX;
|
||||||
|
y = 8.2 * UNITY + OFFSETY;
|
||||||
|
w = 11 * UNITX;
|
||||||
|
h = 0.75 * UNITY;
|
||||||
|
text = "";
|
||||||
|
style = ST_LEFT + ST_MULTI;
|
||||||
|
lineSpacing = 1;
|
||||||
|
SizeEx = (UNITY * 0.8);
|
||||||
|
};
|
||||||
|
class saveInputButton: selectionAction_1 {
|
||||||
|
idc = 416;
|
||||||
|
text = "$STR_ACE_OptionsMenu_SaveInput";
|
||||||
|
x = 27.1 * UNITX + OFFSETX;
|
||||||
|
y = 9.1 * UNITY + OFFSETY;
|
||||||
|
w = 11 * UNITX;
|
||||||
|
h = 1 * UNITY;
|
||||||
|
action = QUOTE([] call FUNC(onServerSaveInputField););
|
||||||
|
};
|
||||||
|
class labelDesc: ACE_gui_staticBase {
|
||||||
|
idc = 251;
|
||||||
|
x = 27.1 * UNITX + OFFSETX;
|
||||||
|
y = 11 * UNITY + OFFSETY;
|
||||||
|
w = 11 * UNITX;
|
||||||
|
h = 11 * UNITY;
|
||||||
|
text = "";
|
||||||
|
style = ST_LEFT + ST_MULTI;
|
||||||
|
lineSpacing = 1;
|
||||||
|
SizeEx = (UNITY * 0.8);
|
||||||
|
};
|
||||||
|
class actionClose;
|
||||||
|
class action_reset: actionClose {
|
||||||
|
idc = 1100;
|
||||||
|
text = "$STR_ACE_OptionsMenu_ResetAll";
|
||||||
|
x = 26.1 * (SIZEX / 40) + OFFSETX;
|
||||||
|
action = QUOTE([] call FUNC(serverResetSettings));
|
||||||
|
};
|
||||||
|
class action_exportServerConfig: actionClose {
|
||||||
|
idc = 1101;
|
||||||
|
text = "$STR_ACE_OptionsMenu_Export";
|
||||||
|
x = 1 * (SIZEX / 40) + OFFSETX;
|
||||||
|
action = QUOTE([] call FUNC(exportSettings));
|
||||||
|
};
|
||||||
|
class action_toggleIncludeClientSettings: actionClose {
|
||||||
|
idc = 1102;
|
||||||
|
text = "$STR_ACE_OptionsMenu_inClientSettings";
|
||||||
|
x = 9 * (SIZEX / 40) + OFFSETX;
|
||||||
|
action = QUOTE([] call FUNC(toggleIncludeClientSettings));
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
@ -17,3 +17,6 @@
|
|||||||
#define MENU_TAB_OPTIONS 0
|
#define MENU_TAB_OPTIONS 0
|
||||||
#define MENU_TAB_COLORS 1
|
#define MENU_TAB_COLORS 1
|
||||||
|
|
||||||
|
#define MENU_TAB_SERVER_OPTIONS 10
|
||||||
|
#define MENU_TAB_SERVER_COLORS 11
|
||||||
|
#define MENU_TAB_SERVER_VALUES 12
|
||||||
|
@ -39,6 +39,9 @@
|
|||||||
<Hungarian>Opciók</Hungarian>
|
<Hungarian>Opciók</Hungarian>
|
||||||
<Italian>Opzioni</Italian>
|
<Italian>Opzioni</Italian>
|
||||||
</Key>
|
</Key>
|
||||||
|
<Key ID="STR_ACE_OptionsMenu_TabValues">
|
||||||
|
<English>Values</English>
|
||||||
|
</Key>
|
||||||
<Key ID="STR_ACE_OptionsMenu_Enabled">
|
<Key ID="STR_ACE_OptionsMenu_Enabled">
|
||||||
<English>Yes</English>
|
<English>Yes</English>
|
||||||
<German>Ja</German>
|
<German>Ja</German>
|
||||||
@ -70,5 +73,35 @@
|
|||||||
<Russian>Yстановки:</Russian>
|
<Russian>Yстановки:</Russian>
|
||||||
<Spanish>Ajuste:</Spanish>
|
<Spanish>Ajuste:</Spanish>
|
||||||
</Key>
|
</Key>
|
||||||
|
<Key ID="STR_ACE_OptionsMenu_Export">
|
||||||
|
<English>Export</English>
|
||||||
|
</Key>
|
||||||
|
<Key ID="STR_ACE_OptionsMenu_OpenExport">
|
||||||
|
<English>Open Export Menu</English>
|
||||||
|
</Key>
|
||||||
|
<Key ID="STR_ACE_OptionsMenu_stringType">
|
||||||
|
<English>String input.</English>
|
||||||
|
</Key>
|
||||||
|
<Key ID="STR_ACE_OptionsMenu_arrayType">
|
||||||
|
<English>Array. Seperate elements by using ,.</English>
|
||||||
|
</Key>
|
||||||
|
<Key ID="STR_ACE_OptionsMenu_scalarType">
|
||||||
|
<English>Number</English>
|
||||||
|
</Key>
|
||||||
|
<Key ID="STR_ACE_optionsMenu_unknownType">
|
||||||
|
<English>Uknown input type</English>
|
||||||
|
</Key>
|
||||||
|
<Key ID="STR_ACE_OptionsMenu_SaveInput">
|
||||||
|
<English>Save input</English>
|
||||||
|
</Key>
|
||||||
|
<Key ID="STR_ACE_OptionsMenu_inClientSettings">
|
||||||
|
<English>Include Client Settings</English>
|
||||||
|
</Key>
|
||||||
|
<Key ID="STR_ACE_OptionsMenu_exClientSettings">
|
||||||
|
<English>Exclude Client Settings</English>
|
||||||
|
</Key>
|
||||||
|
<Key ID="STR_ACE_OptionsMenu_settingsExported">
|
||||||
|
<English>Settings exported to clipboard</English>
|
||||||
|
</Key>
|
||||||
</Package>
|
</Package>
|
||||||
</Project>
|
</Project>
|
17
optionals/server/config.cpp
Normal file
17
optionals/server/config.cpp
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
#include "script_component.hpp"
|
||||||
|
|
||||||
|
class CfgPatches {
|
||||||
|
class ADDON {
|
||||||
|
units[] = {};
|
||||||
|
weapons[] = {};
|
||||||
|
requiredVersion = REQUIRED_VERSION;
|
||||||
|
requiredAddons[] = {"ace_common"};
|
||||||
|
author[] = {"Glowbal"};
|
||||||
|
authorUrl = "https://github.com/Glowbal/";
|
||||||
|
VERSION_CONFIG;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
class ACE_ServerSettings {
|
||||||
|
#include "\userconfig\ace\serverconfig.hpp"
|
||||||
|
};
|
12
optionals/server/script_component.hpp
Normal file
12
optionals/server/script_component.hpp
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
#define COMPONENT serverconfig
|
||||||
|
#include "\z\ace\Addons\main\script_mod.hpp"
|
||||||
|
|
||||||
|
#ifdef DEBUG_ENABLED_SERVERCONFIG
|
||||||
|
#define DEBUG_MODE_FULL
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef DEBUG_SETTINGS_SERVERCONFIG
|
||||||
|
#define DEBUG_SETTINGS DEBUG_SETTINGS_SERVERCONFIG
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include "\z\ace\Addons\main\script_macros.hpp"
|
6
optionals/userconfig/ace/serverconfig.hpp
Normal file
6
optionals/userconfig/ace/serverconfig.hpp
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
|
||||||
|
// Example:
|
||||||
|
class ACE_common_forceAllSettings {
|
||||||
|
value = 0;
|
||||||
|
typeName = "BOOL";
|
||||||
|
};
|
Loading…
Reference in New Issue
Block a user