mirror of
https://github.com/acemod/ACE3.git
synced 2024-08-30 18:23:18 +00:00
Merge pull request #1433 from acemod/fixSettingsFromModules
Delay initialization of modules until settings are properly setup
This commit is contained in:
commit
1c0c73be54
@ -5,7 +5,7 @@ class CfgPatches {
|
||||
units[] = {};
|
||||
weapons[] = {};
|
||||
requiredVersion = REQUIRED_VERSION;
|
||||
requiredAddons[] = {"ace_ballistics", "ace_weather", "ace_modules"};
|
||||
requiredAddons[] = {"ace_ballistics", "ace_weather"};
|
||||
author[] = {"Ruthberg"};
|
||||
authorUrl = "https://github.com/ulteq";
|
||||
VERSION_CONFIG;
|
||||
|
@ -24,12 +24,12 @@ class CfgVehicles {
|
||||
|
||||
// += needs a non inherited entry in that class, otherwise it simply overwrites
|
||||
//#include <DefaultItems.hpp>
|
||||
|
||||
class Logic;
|
||||
class Module_F: Logic {
|
||||
class ModuleDescription {};
|
||||
};
|
||||
class ACE_ModuleCheckPBOs: Module_F {
|
||||
class Logic;
|
||||
class Module_F: Logic {
|
||||
class ModuleDescription;
|
||||
};
|
||||
class ACE_Module: Module_F {};
|
||||
class ACE_ModuleCheckPBOs: ACE_Module {
|
||||
author = "$STR_ACE_Common_ACETeam";
|
||||
category = "ACE";
|
||||
displayName = "$STR_ACE_Common_CheckPBO_DisplayName";
|
||||
@ -77,7 +77,7 @@ class CfgVehicles {
|
||||
};
|
||||
};
|
||||
|
||||
class ACE_ModuleLSDVehicles: Module_F {
|
||||
class ACE_ModuleLSDVehicles: ACE_Module {
|
||||
author = "$STR_ACE_Common_ACETeam";
|
||||
category = "ACE";
|
||||
displayName = "$STR_ACE_Common_LSDVehicles_DisplayName";
|
||||
|
@ -269,6 +269,9 @@ GVAR(commonPostInited) = true;
|
||||
|
||||
diag_log text format["[ACE] Settings received from server"];
|
||||
|
||||
// Event so that ACE_Modules have their settings loaded:
|
||||
["InitSettingsFromModules", []] call FUNC(localEvent);
|
||||
|
||||
// Load user settings from profile
|
||||
if (hasInterface) then {
|
||||
call FUNC(loadSettingsFromProfile);
|
||||
|
@ -5,7 +5,7 @@ class CfgPatches {
|
||||
units[] = {"ACE_Box_Misc", "ACE_bananaItem"};
|
||||
weapons[] = {"ACE_ItemCore","ACE_FakePrimaryWeapon", "ACE_Banana"};
|
||||
requiredVersion = REQUIRED_VERSION;
|
||||
requiredAddons[] = {"ace_main"};
|
||||
requiredAddons[] = {"ace_main","ace_modules"};
|
||||
author[] = {"KoffeinFlummi"};
|
||||
authorUrl = "https://github.com/KoffeinFlummi/";
|
||||
VERSION_CONFIG;
|
||||
|
@ -1,8 +1,5 @@
|
||||
class Logic;
|
||||
class Module_F: Logic {
|
||||
class ModuleDescription {};
|
||||
};
|
||||
class ACE_ModuleExplosive: Module_F {
|
||||
class ACE_Module;
|
||||
class ACE_ModuleExplosive: ACE_Module {
|
||||
author = "$STR_ACE_Common_ACETeam";
|
||||
category = "ACE";
|
||||
displayName = "$STR_ACE_Explosive_Module_DisplayName";
|
||||
@ -24,7 +21,7 @@ class ACE_ModuleExplosive: Module_F {
|
||||
defaultValue = 1;
|
||||
};
|
||||
};
|
||||
class ModuleDescription: ModuleDescription {
|
||||
class ModuleDescription {
|
||||
description = "$STR_ACE_Explosive_Module_Description";
|
||||
};
|
||||
};
|
@ -94,8 +94,8 @@ class CfgVehicles {
|
||||
};
|
||||
|
||||
|
||||
class Module_F;
|
||||
class ACE_ModuleHearing: Module_F {
|
||||
class ACE_Module;
|
||||
class ACE_ModuleHearing: ACE_Module {
|
||||
author = "$STR_ACE_Common_ACETeam";
|
||||
category = "ACE";
|
||||
displayName = "$STR_ACE_Hearing_Module_DisplayName";
|
||||
|
@ -1,7 +1,7 @@
|
||||
class CfgVehicles {
|
||||
|
||||
class Module_F;
|
||||
class ACE_ModuleInteraction: Module_F {
|
||||
class ACE_Module;
|
||||
class ACE_ModuleInteraction: ACE_Module {
|
||||
author = "$STR_ACE_Common_ACETeam";
|
||||
category = "ACE";
|
||||
displayName = "$STR_ACE_InteractionSystem_Module_DisplayName";
|
||||
|
@ -1,6 +1,7 @@
|
||||
class CfgVehicles {
|
||||
class Module_F;
|
||||
class ACE_ModuleMap: Module_F {
|
||||
|
||||
class ACE_Module;
|
||||
class ACE_ModuleMap: ACE_Module {
|
||||
author = "$STR_ACE_Common_ACETeam";
|
||||
category = "ACE";
|
||||
displayName = "$STR_ACE_Map_Module_DisplayName";
|
||||
@ -39,6 +40,7 @@ class CfgVehicles {
|
||||
};
|
||||
};
|
||||
|
||||
class Module_F;
|
||||
class ACE_ModuleBlueForceTracking: Module_F {
|
||||
author = "$STR_ACE_Common_ACETeam";
|
||||
category = "ACE";
|
||||
|
@ -5,7 +5,7 @@ class CfgPatches {
|
||||
units[] = {"ACE_medicalSupplyCrate", "ACE_medicalSupplyCrate_advanced", "ACE_fieldDressingItem", "ACE_packingBandageItem", "ACE_elasticBandageItem", "ACE_tourniquetItem", "ACE_morphineItem", "ACE_atropineItem", "ACE_epinephrineItem", "ACE_plasmaIVItem", "ACE_bloodIVItem", "ACE_salineIVItem", "ACE_quikclotItem", "ACE_personalAidKitItem", "ACE_surgicalKitItem", "ACE_bodyBagItem", "ACE_bodyBagObject"};
|
||||
weapons[] = {"ACE_fieldDressing", "ACE_packingBandage", "ACE_elasticBandage", "ACE_tourniquet", "ACE_morphine", "ACE_atropine", "ACE_epinephrine", "ACE_plasmaIV", "ACE_plasmaIV_500", "ACE_plasmaIV_250", "ACE_bloodIV", "ACE_bloodIV_500", "ACE_bloodIV_250", "ACE_salineIV", "ACE_salineIV_500", "ACE_salineIV_250", "ACE_quikclot", "ACE_personalAidKit", "ACE_surgicalKit", "ACE_bodyBag"};
|
||||
requiredVersion = REQUIRED_VERSION;
|
||||
requiredAddons[] = {"ace_interaction","ace_modules", "ace_apl"};
|
||||
requiredAddons[] = {"ace_interaction", "ace_apl"};
|
||||
author[] = {"Glowbal", "KoffeinFlummi"};
|
||||
authorUrl = "";
|
||||
VERSION_CONFIG;
|
||||
|
@ -36,12 +36,8 @@ class CfgVehicles {
|
||||
};
|
||||
};
|
||||
|
||||
class Logic;
|
||||
class Module_F: Logic {
|
||||
class ArgumentsBaseUnits {};
|
||||
class ModuleDescription {};
|
||||
};
|
||||
class GVAR(dagrModule): Module_F {
|
||||
class ACE_Module;
|
||||
class GVAR(dagrModule): ACE_Module {
|
||||
author = "$STR_ACE_Common_ACETeam";
|
||||
category = "ACE";
|
||||
displayName = "$STR_ACE_Dagr_Module_DisplayName";
|
||||
@ -62,7 +58,7 @@ class CfgVehicles {
|
||||
};
|
||||
};
|
||||
};
|
||||
class ModuleDescription: ModuleDescription {
|
||||
class ModuleDescription {
|
||||
description = "$STR_ACE_Dagr_Module_Description";
|
||||
};
|
||||
};
|
||||
|
@ -43,11 +43,8 @@ class CfgVehicles {
|
||||
};
|
||||
};
|
||||
|
||||
class Logic;
|
||||
class Module_F: Logic {
|
||||
class ModuleDescription {};
|
||||
};
|
||||
class GVAR(module): Module_F {
|
||||
class ACE_Module;
|
||||
class GVAR(module): ACE_Module {
|
||||
author = "$STR_ACE_Common_ACETeam";
|
||||
category = "ACE";
|
||||
displayName = "$STR_ACE_mk6mortar_Module_DisplayName";
|
||||
@ -76,7 +73,7 @@ class CfgVehicles {
|
||||
defaultValue = 1;
|
||||
};
|
||||
};
|
||||
class ModuleDescription: ModuleDescription {
|
||||
class ModuleDescription {
|
||||
description = "$STR_ACE_mk6mortar_Module_Description";
|
||||
};
|
||||
};
|
||||
|
@ -1,44 +1,46 @@
|
||||
|
||||
#include "script_component.hpp"
|
||||
|
||||
// TODO This is a basic and limited implementation that mimics some of the functionality from the A3 module framework, but not all of it.
|
||||
// We have to execute this in the postInit XEH because on object init, the parameters of the modules are not yet available. They are if we execute it at the start of postInit execution.
|
||||
{
|
||||
[_x] call {
|
||||
private ["_logic", "_logicType", "_config", "_isGlobal", "_isDisposable", "_isPersistent","_function"];
|
||||
_logic = _this select 0;
|
||||
_logicType = typeof _logic;
|
||||
_logic hideobject true;
|
||||
["InitSettingsFromModules", {
|
||||
// TODO This is a basic and limited implementation that mimics some of the functionality from the A3 module framework, but not all of it.
|
||||
// We have to execute this in the postInit XEH because on object init, the parameters of the modules are not yet available. They are if we execute it at the start of postInit execution.
|
||||
{
|
||||
[_x] call {
|
||||
private ["_logic", "_logicType", "_config", "_isGlobal", "_isDisposable", "_isPersistent","_function"];
|
||||
_logic = _this select 0;
|
||||
_logicType = typeof _logic;
|
||||
_logic hideobject true;
|
||||
|
||||
if (_logic getvariable [QGVAR(initalized), false]) exitwith {};
|
||||
_config = (configFile >> "CfgVehicles" >> _logicType);
|
||||
if !(isClass _config) exitwith {};
|
||||
if (_logic getvariable [QGVAR(initalized), false]) exitwith {};
|
||||
_config = (configFile >> "CfgVehicles" >> _logicType);
|
||||
if !(isClass _config) exitwith {};
|
||||
|
||||
// isGlobal = 1;
|
||||
_isGlobal = getNumber (_config >> "isGlobal") > 0;
|
||||
_isDisposable = getNumber (_config >> "isDisposable") > 0;
|
||||
_isPersistent = getNumber (_config >> "isPersistent") > 0 || getnumber (_config >> "isGlobal") > 1;
|
||||
_function = getText (_config >> "function");
|
||||
if (isnil _function) then {
|
||||
_function = compile _function;
|
||||
} else {
|
||||
_function = missionNamespace getvariable _function;
|
||||
};
|
||||
// isGlobal = 1;
|
||||
_isGlobal = getNumber (_config >> "isGlobal") > 0;
|
||||
_isDisposable = getNumber (_config >> "isDisposable") > 0;
|
||||
_isPersistent = getNumber (_config >> "isPersistent") > 0 || getnumber (_config >> "isGlobal") > 1;
|
||||
_function = getText (_config >> "function");
|
||||
if (isnil _function) then {
|
||||
_function = compile _function;
|
||||
} else {
|
||||
_function = missionNamespace getvariable _function;
|
||||
};
|
||||
|
||||
if (_isGlobal) then {
|
||||
[_logic, [], true] call _function;
|
||||
} else {
|
||||
if (isServer) then {
|
||||
if (_isGlobal) then {
|
||||
[_logic, [], true] call _function;
|
||||
} else {
|
||||
if (isServer) then {
|
||||
[_logic, [], true] call _function;
|
||||
};
|
||||
};
|
||||
|
||||
if !(_isPersistent) then {
|
||||
_logic setvariable [QGVAR(initalized), true];
|
||||
};
|
||||
|
||||
if (_isDisposable) then {
|
||||
deleteVehicle _logic;
|
||||
};
|
||||
};
|
||||
|
||||
if !(_isPersistent) then {
|
||||
_logic setvariable [QGVAR(initalized), true];
|
||||
};
|
||||
|
||||
if (_isDisposable) then {
|
||||
deleteVehicle _logic;
|
||||
};
|
||||
};
|
||||
}foreach GVAR(moduleInitCollection);
|
||||
}foreach GVAR(moduleInitCollection);
|
||||
}] call FUNC(addEventhandler);
|
||||
|
@ -5,7 +5,7 @@ class CfgPatches {
|
||||
units[] = {};
|
||||
weapons[] = {};
|
||||
requiredVersion = REQUIRED_VERSION;
|
||||
requiredAddons[] = {"ace_common"};
|
||||
requiredAddons[] = {};
|
||||
author[] = {"Glowbal"};
|
||||
authorUrl = "";
|
||||
VERSION_CONFIG;
|
||||
|
@ -1,9 +1,6 @@
|
||||
class CfgVehicles {
|
||||
class Logic;
|
||||
class Module_F: Logic {
|
||||
class ModuleDescription {};
|
||||
};
|
||||
class ACE_ModuleNameTags : Module_F {
|
||||
class ACE_Module;
|
||||
class ACE_ModuleNameTags: ACE_Module {
|
||||
author = "$STR_ACE_Common_ACETeam";
|
||||
category = "ACE";
|
||||
displayName = "$STR_ACE_NameTags_Module_DisplayName";
|
||||
@ -65,7 +62,7 @@ class CfgVehicles {
|
||||
defaultValue = 0;
|
||||
};
|
||||
};
|
||||
class ModuleDescription: ModuleDescription {
|
||||
class ModuleDescription {
|
||||
description = "$STR_ACE_NameTags_Module_Description";
|
||||
};
|
||||
};
|
||||
|
@ -1,9 +1,6 @@
|
||||
class CfgVehicles {
|
||||
class Logic;
|
||||
class Module_F: Logic {
|
||||
class ModuleDescription {};
|
||||
};
|
||||
class ACE_ModuleRespawn: Module_F {
|
||||
class ACE_Module;
|
||||
class ACE_ModuleRespawn: ACE_Module {
|
||||
author = "$STR_ACE_Common_ACETeam";
|
||||
category = "ACE";
|
||||
displayName = "$STR_ACE_Respawn_Module_DisplayName";
|
||||
@ -27,12 +24,12 @@ class CfgVehicles {
|
||||
defaultValue = 1;
|
||||
};
|
||||
};
|
||||
class ModuleDescription: ModuleDescription {
|
||||
class ModuleDescription {
|
||||
description = "$STR_ACE_Respawn_Module_Description";
|
||||
};
|
||||
};
|
||||
|
||||
class ACE_ModuleFriendlyFire: Module_F {
|
||||
class ACE_ModuleFriendlyFire: ACE_Module {
|
||||
author = "$STR_ACE_Common_ACETeam";
|
||||
category = "ACE";
|
||||
displayName = "$STR_ACE_FriendlyFire_Module_DisplayName";
|
||||
@ -42,12 +39,12 @@ class CfgVehicles {
|
||||
icon = QUOTE(PATHTOF(UI\Icon_Module_FriendlyFire_ca.paa));
|
||||
|
||||
class Arguments {};
|
||||
class ModuleDescription: ModuleDescription {
|
||||
class ModuleDescription {
|
||||
description = "$STR_ACE_FriendlyFire_Module_Description";
|
||||
};
|
||||
};
|
||||
|
||||
class ACE_ModuleRallypoint: Module_F {
|
||||
class ACE_ModuleRallypoint: ACE_Module {
|
||||
author = "$STR_ACE_Common_ACETeam";
|
||||
category = "ACE";
|
||||
displayName = "$STR_ACE_Rallypoint_Module_DisplayName";
|
||||
@ -57,7 +54,7 @@ class CfgVehicles {
|
||||
icon = QUOTE(PATHTOF(UI\Icon_Module_Rallypoint_ca.paa));
|
||||
|
||||
class Arguments {};
|
||||
class ModuleDescription: ModuleDescription {
|
||||
class ModuleDescription {
|
||||
description = "$STR_ACE_Rallypoint_Module_Description";
|
||||
};
|
||||
};
|
||||
|
@ -1,6 +1,6 @@
|
||||
class CfgVehicles {
|
||||
class Module_F;
|
||||
class ACE_ModuleSwitchUnits: Module_F {
|
||||
class ACE_Module;
|
||||
class ACE_ModuleSwitchUnits: ACE_Module {
|
||||
author = "$STR_ACE_Common_ACETeam";
|
||||
category = "ACE";
|
||||
displayName = "$STR_ACE_SwitchUnits_Module_DisplayName";
|
||||
|
@ -64,9 +64,10 @@ class CfgVehicles {
|
||||
|
||||
class Logic;
|
||||
class Module_F: Logic {
|
||||
class ModuleDescription {};
|
||||
class ModuleDescription;
|
||||
};
|
||||
class ACE_VehicleLock_ModuleSetup: Module_F {
|
||||
class ACE_Module: Module_F {};
|
||||
class ACE_VehicleLock_ModuleSetup: ACE_Module {
|
||||
author = "$STR_ACE_Common_ACETeam";
|
||||
category = "ACE";
|
||||
displayName = "$STR_ACE_VehicleLock_Module_DisplayName";
|
||||
@ -99,12 +100,12 @@ class CfgVehicles {
|
||||
defaultValue = "10";
|
||||
};
|
||||
};
|
||||
class ModuleDescription: ModuleDescription {
|
||||
class ModuleDescription {
|
||||
description = "$STR_ACE_VehicleLock_Module_Description";
|
||||
};
|
||||
};
|
||||
|
||||
class ACE_VehicleLock_ModuleSyncedAssign: Module_F {
|
||||
class ACE_VehicleLock_ModuleSyncedAssign: ACE_Module {
|
||||
author = "$STR_ACE_Common_ACETeam";
|
||||
category = "ACE";
|
||||
displayName = "$STR_ACE_VehicleLock_VehicleKeyAssign_Module_DisplayName";
|
||||
|
@ -5,7 +5,7 @@ class CfgPatches {
|
||||
units[] = {};
|
||||
weapons[] = {};
|
||||
requiredVersion = REQUIRED_VERSION;
|
||||
requiredAddons[] = {"ace_common", "ace_modules"};
|
||||
requiredAddons[] = {"ace_common"};
|
||||
author[] = {"q1184", "Rocko", "esteldunedain", "Ruthberg"};
|
||||
VERSION_CONFIG;
|
||||
};
|
||||
|
@ -5,7 +5,7 @@ class CfgPatches {
|
||||
units[] = {};
|
||||
weapons[] = {};
|
||||
requiredVersion = REQUIRED_VERSION;
|
||||
requiredAddons[] = {"ace_common","ace_modules"};
|
||||
requiredAddons[] = {"ace_common"};
|
||||
author[] = {"SilentSpike"};
|
||||
authorUrl = "https://github.com/SilentSpike";
|
||||
VERSION_CONFIG;
|
||||
|
Loading…
Reference in New Issue
Block a user