diff --git a/addons/common/functions/fnc_readSettingFromModule.sqf b/addons/common/functions/fnc_readSettingFromModule.sqf index c92bb4ab94..518df8ed43 100644 --- a/addons/common/functions/fnc_readSettingFromModule.sqf +++ b/addons/common/functions/fnc_readSettingFromModule.sqf @@ -24,4 +24,4 @@ if (isNil {_logic getVariable _moduleVariable}) exitWith { }; // Set the setting globally and force it -[_settingName, _logic getVariable _moduleVariable, true, true] call FUNC(setSetting); +[_settingName, _logic getVariable _moduleVariable, true, true] call FUNC(setSetting); \ No newline at end of file diff --git a/addons/zeus/CfgFactionClasses.hpp b/addons/zeus/CfgFactionClasses.hpp new file mode 100644 index 0000000000..5d4fe23018 --- /dev/null +++ b/addons/zeus/CfgFactionClasses.hpp @@ -0,0 +1,6 @@ +class CfgFactionClasses { + class NO_CATEGORY; + class ADDON: NO_CATEGORY { + displayName = "ACE Zeus"; + }; +}; \ No newline at end of file diff --git a/addons/zeus/CfgVehicles.hpp b/addons/zeus/CfgVehicles.hpp new file mode 100644 index 0000000000..41289e44db --- /dev/null +++ b/addons/zeus/CfgVehicles.hpp @@ -0,0 +1,80 @@ +class CfgVehicles { + class Module_F; + class ModuleEmpty_F; + class ACE_Module; + + class GVAR(moduleZeusSettings): ACE_Module { + scope = 2; + displayName = "Zeus Settings [ACE]"; + icon = QUOTE(PATHTOF(UI\Icon_Module_Medical_ca.paa)); + category = "ACE_zeus"; + function = QUOTE(DFUNC(moduleZeusSettings)); + functionPriority = 1; + isGlobal = 1; + isTriggerActivated = 0; + author = "SilentSpike"; + class Arguments { + class zeusAscension { + displayName = "Enable Ascension Messages"; + description = "Display a global popup message when a player is assigned as Zeus."; + typeName = "BOOL"; + defaultValue = 1; + }; + class zeusBird { + displayName = "Enable Eagle"; + description = "Spawn an eagle that follows the Zeus camera."; + typeName = "BOOL"; + defaultValue = 1; + }; + class radioOrdnance { + displayName = "Ordnance Radio Warning"; + description = "Play a radio warning when Zeus uses ordnance."; + typeName = "BOOL"; + defaultValue = 1; + }; + class revealMines { + displayName = "Reveal Mines"; + description = "Do you want to reveal mines placed by Zeus?"; + typeName = "NUMBER"; + class values { + class disable { + name = "Disabled"; + value = 0; + }; + class partial { + name = "Reveal to sides friendly with Zeus unit"; + value = 1; + }; + class full { + name = "Add map markers and reveal to sides friendly with Zeus unit"; + value = 2; + default = 1; + }; + }; + }; + class remoteWind { + displayName = "Reveal Remote Control"; + description = "Play a wind sound when Zeus remote controls a unit."; + typeName = "BOOL"; + defaultValue = 1; + }; + }; + class ModuleDescription { + description = "Provides control over various aspects of Zeus."; + sync[] = {}; + }; + }; + + class ModuleCurator_F: Module_F { + function = QUOTE(DFUNC(bi_moduleCurator)); + }; + class ModuleMine_F: ModuleEmpty_F { + function = QUOTE(DFUNC(bi_moduleMine)); + }; + class ModuleOrdnance_F: Module_F { + function = QUOTE(DFUNC(bi_moduleProjectile)); + }; + class ModuleRemoteControl_F: Module_F { + function = QUOTE(DFUNC(bi_moduleRemoteControl)); + }; +}; \ No newline at end of file diff --git a/addons/zeus/XEH_preInit.sqf b/addons/zeus/XEH_preInit.sqf index 726f6923b3..e7bb1b96a5 100644 --- a/addons/zeus/XEH_preInit.sqf +++ b/addons/zeus/XEH_preInit.sqf @@ -6,5 +6,6 @@ PREP(bi_moduleCurator); PREP(bi_moduleMine); PREP(bi_moduleProjectile); PREP(bi_moduleRemoteControl); +PREP(moduleZeusSettings); ADDON = true; diff --git a/addons/zeus/config.cpp b/addons/zeus/config.cpp index 3da43d935e..e469ae7aaa 100644 --- a/addons/zeus/config.cpp +++ b/addons/zeus/config.cpp @@ -5,7 +5,7 @@ class CfgPatches { units[] = {}; weapons[] = {}; requiredVersion = REQUIRED_VERSION; - requiredAddons[] = {"ace_common"}; + requiredAddons[] = {"ace_common","ace_modules"}; author[] = {"SilentSpike"}; authorUrl = "https://github.com/SilentSpike"; VERSION_CONFIG; @@ -13,20 +13,5 @@ class CfgPatches { }; #include "CfgEventHandlers.hpp" - -class CfgVehicles { - class Module_F; - class ModuleEmpty_F; - class ModuleCurator_F: Module_F { - function = QUOTE(FUNC(bi_moduleCurator)); - }; - class ModuleMine_F: ModuleEmpty_F { - function = QUOTE(FUNC(bi_moduleMine)); - }; - class ModuleOrdnance_F: Module_F { - function = QUOTE(FUNC(bi_moduleProjectile)); - }; - class ModuleRemoteControl_F: Module_F { - function = QUOTE(FUNC(bi_moduleRemoteControl)); - }; -}; \ No newline at end of file +#include "CfgFactionClasses.hpp" +#include "CfgVehicles.hpp" \ No newline at end of file diff --git a/addons/zeus/functions/fnc_bi_moduleProjectile.sqf b/addons/zeus/functions/fnc_bi_moduleProjectile.sqf index afb3f6e4bc..fbae16e00d 100644 --- a/addons/zeus/functions/fnc_bi_moduleProjectile.sqf +++ b/addons/zeus/functions/fnc_bi_moduleProjectile.sqf @@ -2,7 +2,7 @@ * Author: Bohemia Interactive * Module function for spawning projectiles * Used by Curator artillery modules etc - * Edited to remove radio warning (also retains ballistics support added by ACE_Modules) + * Edited to remove radio warning and add ballistics support * * Arguments: * 0: The logic object <OBJECT> diff --git a/addons/zeus/functions/fnc_moduleZeusSettings.sqf b/addons/zeus/functions/fnc_moduleZeusSettings.sqf new file mode 100644 index 0000000000..94dc0d966a --- /dev/null +++ b/addons/zeus/functions/fnc_moduleZeusSettings.sqf @@ -0,0 +1,29 @@ +/* + * Author: SilentSpike + * Module for adjusting various aspects of zeus + * + * Arguments: + * 0: The module logic <LOGIC> + * 1: units <ARRAY> + * 2: activated <BOOL> + * + * Return Value: + * None <NIL> + * + * Public: No + */ + +#include "script_component.hpp" + +private ["_logic", "_units", "_activated"]; +_logic = _this select 0; +_units = _this select 1; +_activated = _this select 2; + +if !(_activated) exitWith {}; + +[_logic, QGVAR(settingAscension), "zeusAscension"] call EFUNC(common,readSettingFromModule); +[_logic, QGVAR(settingBird), "zeusBird"] call EFUNC(common,readSettingFromModule); +[_logic, QGVAR(settingOrdnance), "radioOrdnance"] call EFUNC(common,readSettingFromModule); +[_logic, QGVAR(settingMines), "revealMines"] call EFUNC(common,readSettingFromModule); +[_logic, QGVAR(settingWind), "remoteWind"] call EFUNC(common,readSettingFromModule); \ No newline at end of file