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,52 +15,38 @@
|
||||
|
||||
GVAR(settings) = [];
|
||||
|
||||
// Load settings from main config
|
||||
_countOptions = count (configFile >> "ACE_Settings");
|
||||
for "_index" from 0 to (_countOptions - 1) do {
|
||||
_optionEntry = (configFile >> "ACE_Settings") select _index;
|
||||
_parseConfigForSettings = {
|
||||
private ["_config", "_countOptions", "_optionEntry", "_index"];
|
||||
|
||||
_config = _this select 0;
|
||||
_countOptions = count _config;
|
||||
for "_index" from 0 to (_countOptions - 1) do {
|
||||
_optionEntry = _config select _index;
|
||||
[_optionEntry] call FUNC(setSettingFromConfig);
|
||||
};
|
||||
// Check if all settings should be forced
|
||||
if (GVAR(forceAllSettings)) then {
|
||||
{
|
||||
_x set [6, true];
|
||||
} forEach GVAR(settings);
|
||||
};
|
||||
|
||||
// @todo
|
||||
// Load settings from server userconfig only if the ACE_ServerSettings is loaded
|
||||
/*if (isClass (configFile >> "CfgPatches" >> "ACE_ServerSettings")) then {
|
||||
DFUNC(serverUserConfig) = compile preprocessFileLineNumbers "\userconfig\ACE\ACE_Settings.hpp";
|
||||
if !(isNil DFUNC(serverUserConfig)) then {
|
||||
[] 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
|
||||
_countOptions = count (missionConfigFile >> "ACE_Settings");
|
||||
for "_index" from 0 to (_countOptions - 1) do {
|
||||
_optionEntry = (missionConfigFile >> "ACE_Settings") select _index;
|
||||
|
||||
[_optionEntry] call FUNC(setSettingFromConfig);
|
||||
};
|
||||
// Check if all settings should be forced
|
||||
if (GVAR(forceAllSettings)) then {
|
||||
{
|
||||
_x set [6, true];
|
||||
} forEach GVAR(settings);
|
||||
};
|
||||
};
|
||||
|
||||
// Order is this way because:
|
||||
// ACE_Settings should never force any setting by default. Loading it first ensures that all settings from ACE_Settings exist.
|
||||
// This way, ACE_ServerSettings will override ACE_Settings, even if no force is used.
|
||||
// Mission settings will override the server config settings, if no force is used.
|
||||
// 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
|
||||
|
||||
// Regular config
|
||||
[configFile >> "ACE_Settings"] call _parseConfigForSettings;
|
||||
|
||||
// Server config
|
||||
[configFile >> "ACE_ServerSettings"] call _parseConfigForSettings;
|
||||
|
||||
// mission side settings
|
||||
[missionConfigFile >> "ACE_Settings"] call _parseConfigForSettings;
|
||||
|
||||
// Publish all settings data
|
||||
publicVariable QGVAR(settings);
|
||||
// Publish all setting values
|
||||
|
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(onSettingsMenuOpen);
|
||||
PREP(onSliderPosChanged);
|
||||
PREP(onServerSaveInputField);
|
||||
PREP(onServerSettingsMenuOpen);
|
||||
PREP(onServerListBoxShowSelectionChanged);
|
||||
PREP(resetSettings);
|
||||
PREP(serverResetSettings);
|
||||
PREP(settingsMenuUpdateKeyView);
|
||||
PREP(settingsMenuUpdateList);
|
||||
PREP(serverSettingsMenuUpdateKeyView);
|
||||
PREP(serverSettingsMenuUpdateList);
|
||||
PREP(updateSetting);
|
||||
PREP(exportSettings);
|
||||
PREP(toggleIncludeClientSettings);
|
||||
PREP(moduleAllowConfigExport);
|
||||
|
||||
GVAR(clientSideOptions) = [];
|
||||
GVAR(clientSideColors) = [];
|
||||
|
||||
GVAR(serverConfigGeneration) = 0;
|
||||
GVAR(ClientSettingsExportIncluded) = false;
|
||||
GVAR(serverSideOptions) = [];
|
||||
GVAR(serverSideColors) = [];
|
||||
GVAR(serverSideValues) = [];
|
||||
|
||||
ADDON = true;
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
class CfgPatches {
|
||||
class ADDON {
|
||||
units[] = {};
|
||||
units[] = {"ACE_moduleAllowConfigExport"};
|
||||
weapons[] = {};
|
||||
requiredVersion = REQUIRED_VERSION;
|
||||
requiredAddons[] = {"ace_common"};
|
||||
@ -25,3 +25,5 @@ class CfgAddons {
|
||||
#include "gui\define.hpp"
|
||||
#include "gui\settingsMenu.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;
|
||||
};
|
@ -24,11 +24,18 @@ _rightDropDownIndex = lbCurSel 400; //Index of right drop down
|
||||
if (_rightDropDownIndex < 0) then {_rightDropDownIndex = 0;};
|
||||
|
||||
switch (GVAR(optionMenu_openTab)) do {
|
||||
case (MENU_TAB_OPTIONS): {
|
||||
case (MENU_TAB_OPTIONS): {
|
||||
if ((_settingIndex >= 0) && (_settingIndex < (count GVAR(clientSideOptions)))) then {
|
||||
_settingIndex = (GVAR(clientSideOptions) select _settingIndex) select 0;
|
||||
[MENU_TAB_OPTIONS, _settingIndex, _rightDropDownIndex] call FUNC(updateSetting);
|
||||
};
|
||||
[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"
|
||||
|
||||
if (isMultiplayer /* || !(GVAR(allowServerConfigGeneration))*/) exitwith {
|
||||
closeDialog 0;
|
||||
};
|
||||
|
||||
// Filter only user setable setting
|
||||
GVAR(clientSideOptions) = [];
|
||||
GVAR(clientSideColors) = [];
|
||||
@ -45,3 +49,8 @@ disableSerialization;
|
||||
_menu = uiNamespace getvariable "ACE_settingsMenu";
|
||||
(_menu displayCtrl 1002) 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);
|
||||
};
|
||||
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 {};
|
||||
};
|
||||
|
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);
|
@ -24,7 +24,7 @@ PARAMS_3(_type,_name,_newValue);
|
||||
_changed = false;
|
||||
|
||||
switch (_type) do {
|
||||
case (MENU_TAB_OPTIONS): {
|
||||
case (MENU_TAB_OPTIONS): {
|
||||
{
|
||||
if ((_x select 0) == _name) then {
|
||||
|
||||
@ -40,7 +40,7 @@ case (MENU_TAB_OPTIONS): {
|
||||
};
|
||||
} foreach GVAR(clientSideOptions);
|
||||
};
|
||||
case (MENU_TAB_COLORS): {
|
||||
case (MENU_TAB_COLORS): {
|
||||
{
|
||||
if (((_x select 0) == _name) && {!((_x select 8) isEqualTo _newValue)}) then {
|
||||
_changed = true;
|
||||
@ -48,9 +48,47 @@ case (MENU_TAB_COLORS): {
|
||||
};
|
||||
} 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 (GVAR(serverConfigGeneration) > 0) then {
|
||||
if !(isMultiplayer) then {
|
||||
missionNamespace setvariable [_name, _newValue];
|
||||
};
|
||||
} else {
|
||||
profileNamespace setVariable [_name, _newValue];
|
||||
[_name, _newValue] call EFUNC(common,setSetting);
|
||||
};
|
||||
};
|
||||
|
@ -228,5 +228,211 @@ class ACE_settingsMenu {
|
||||
x = 26.1 * (SIZEX / 40) + OFFSETX;
|
||||
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_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>
|
||||
<Italian>Opzioni</Italian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_OptionsMenu_TabValues">
|
||||
<English>Values</English>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_OptionsMenu_Enabled">
|
||||
<English>Yes</English>
|
||||
<German>Ja</German>
|
||||
@ -70,5 +73,35 @@
|
||||
<Russian>Yстановки:</Russian>
|
||||
<Spanish>Ajuste:</Spanish>
|
||||
</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>
|
||||
</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