Merge pull request #1433 from acemod/fixSettingsFromModules

Delay initialization of modules until settings are properly setup
This commit is contained in:
Glowbal 2015-06-01 19:18:11 +02:00
commit 1c0c73be54
19 changed files with 87 additions and 95 deletions

View File

@ -5,7 +5,7 @@ class CfgPatches {
units[] = {}; units[] = {};
weapons[] = {}; weapons[] = {};
requiredVersion = REQUIRED_VERSION; requiredVersion = REQUIRED_VERSION;
requiredAddons[] = {"ace_ballistics", "ace_weather", "ace_modules"}; requiredAddons[] = {"ace_ballistics", "ace_weather"};
author[] = {"Ruthberg"}; author[] = {"Ruthberg"};
authorUrl = "https://github.com/ulteq"; authorUrl = "https://github.com/ulteq";
VERSION_CONFIG; VERSION_CONFIG;

View File

@ -24,12 +24,12 @@ class CfgVehicles {
// += needs a non inherited entry in that class, otherwise it simply overwrites // += needs a non inherited entry in that class, otherwise it simply overwrites
//#include <DefaultItems.hpp> //#include <DefaultItems.hpp>
class Logic; class Logic;
class Module_F: Logic { class Module_F: Logic {
class ModuleDescription {}; class ModuleDescription;
}; };
class ACE_ModuleCheckPBOs: Module_F { class ACE_Module: Module_F {};
class ACE_ModuleCheckPBOs: ACE_Module {
author = "$STR_ACE_Common_ACETeam"; author = "$STR_ACE_Common_ACETeam";
category = "ACE"; category = "ACE";
displayName = "$STR_ACE_Common_CheckPBO_DisplayName"; 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"; author = "$STR_ACE_Common_ACETeam";
category = "ACE"; category = "ACE";
displayName = "$STR_ACE_Common_LSDVehicles_DisplayName"; displayName = "$STR_ACE_Common_LSDVehicles_DisplayName";

View File

@ -269,6 +269,9 @@ GVAR(commonPostInited) = true;
diag_log text format["[ACE] Settings received from server"]; 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 // Load user settings from profile
if (hasInterface) then { if (hasInterface) then {
call FUNC(loadSettingsFromProfile); call FUNC(loadSettingsFromProfile);

View File

@ -5,7 +5,7 @@ class CfgPatches {
units[] = {"ACE_Box_Misc", "ACE_bananaItem"}; units[] = {"ACE_Box_Misc", "ACE_bananaItem"};
weapons[] = {"ACE_ItemCore","ACE_FakePrimaryWeapon", "ACE_Banana"}; weapons[] = {"ACE_ItemCore","ACE_FakePrimaryWeapon", "ACE_Banana"};
requiredVersion = REQUIRED_VERSION; requiredVersion = REQUIRED_VERSION;
requiredAddons[] = {"ace_main"}; requiredAddons[] = {"ace_main","ace_modules"};
author[] = {"KoffeinFlummi"}; author[] = {"KoffeinFlummi"};
authorUrl = "https://github.com/KoffeinFlummi/"; authorUrl = "https://github.com/KoffeinFlummi/";
VERSION_CONFIG; VERSION_CONFIG;

View File

@ -1,8 +1,5 @@
class Logic; class ACE_Module;
class Module_F: Logic { class ACE_ModuleExplosive: ACE_Module {
class ModuleDescription {};
};
class ACE_ModuleExplosive: Module_F {
author = "$STR_ACE_Common_ACETeam"; author = "$STR_ACE_Common_ACETeam";
category = "ACE"; category = "ACE";
displayName = "$STR_ACE_Explosive_Module_DisplayName"; displayName = "$STR_ACE_Explosive_Module_DisplayName";
@ -24,7 +21,7 @@ class ACE_ModuleExplosive: Module_F {
defaultValue = 1; defaultValue = 1;
}; };
}; };
class ModuleDescription: ModuleDescription { class ModuleDescription {
description = "$STR_ACE_Explosive_Module_Description"; description = "$STR_ACE_Explosive_Module_Description";
}; };
}; };

View File

@ -94,8 +94,8 @@ class CfgVehicles {
}; };
class Module_F; class ACE_Module;
class ACE_ModuleHearing: Module_F { class ACE_ModuleHearing: ACE_Module {
author = "$STR_ACE_Common_ACETeam"; author = "$STR_ACE_Common_ACETeam";
category = "ACE"; category = "ACE";
displayName = "$STR_ACE_Hearing_Module_DisplayName"; displayName = "$STR_ACE_Hearing_Module_DisplayName";

View File

@ -1,7 +1,7 @@
class CfgVehicles { class CfgVehicles {
class Module_F; class ACE_Module;
class ACE_ModuleInteraction: Module_F { class ACE_ModuleInteraction: ACE_Module {
author = "$STR_ACE_Common_ACETeam"; author = "$STR_ACE_Common_ACETeam";
category = "ACE"; category = "ACE";
displayName = "$STR_ACE_InteractionSystem_Module_DisplayName"; displayName = "$STR_ACE_InteractionSystem_Module_DisplayName";

View File

@ -1,6 +1,7 @@
class CfgVehicles { class CfgVehicles {
class Module_F;
class ACE_ModuleMap: Module_F { class ACE_Module;
class ACE_ModuleMap: ACE_Module {
author = "$STR_ACE_Common_ACETeam"; author = "$STR_ACE_Common_ACETeam";
category = "ACE"; category = "ACE";
displayName = "$STR_ACE_Map_Module_DisplayName"; displayName = "$STR_ACE_Map_Module_DisplayName";
@ -39,6 +40,7 @@ class CfgVehicles {
}; };
}; };
class Module_F;
class ACE_ModuleBlueForceTracking: Module_F { class ACE_ModuleBlueForceTracking: Module_F {
author = "$STR_ACE_Common_ACETeam"; author = "$STR_ACE_Common_ACETeam";
category = "ACE"; category = "ACE";

View File

@ -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"}; 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"}; 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; requiredVersion = REQUIRED_VERSION;
requiredAddons[] = {"ace_interaction","ace_modules", "ace_apl"}; requiredAddons[] = {"ace_interaction", "ace_apl"};
author[] = {"Glowbal", "KoffeinFlummi"}; author[] = {"Glowbal", "KoffeinFlummi"};
authorUrl = ""; authorUrl = "";
VERSION_CONFIG; VERSION_CONFIG;

View File

@ -36,12 +36,8 @@ class CfgVehicles {
}; };
}; };
class Logic; class ACE_Module;
class Module_F: Logic { class GVAR(dagrModule): ACE_Module {
class ArgumentsBaseUnits {};
class ModuleDescription {};
};
class GVAR(dagrModule): Module_F {
author = "$STR_ACE_Common_ACETeam"; author = "$STR_ACE_Common_ACETeam";
category = "ACE"; category = "ACE";
displayName = "$STR_ACE_Dagr_Module_DisplayName"; displayName = "$STR_ACE_Dagr_Module_DisplayName";
@ -62,7 +58,7 @@ class CfgVehicles {
}; };
}; };
}; };
class ModuleDescription: ModuleDescription { class ModuleDescription {
description = "$STR_ACE_Dagr_Module_Description"; description = "$STR_ACE_Dagr_Module_Description";
}; };
}; };

View File

@ -43,11 +43,8 @@ class CfgVehicles {
}; };
}; };
class Logic; class ACE_Module;
class Module_F: Logic { class GVAR(module): ACE_Module {
class ModuleDescription {};
};
class GVAR(module): Module_F {
author = "$STR_ACE_Common_ACETeam"; author = "$STR_ACE_Common_ACETeam";
category = "ACE"; category = "ACE";
displayName = "$STR_ACE_mk6mortar_Module_DisplayName"; displayName = "$STR_ACE_mk6mortar_Module_DisplayName";
@ -76,7 +73,7 @@ class CfgVehicles {
defaultValue = 1; defaultValue = 1;
}; };
}; };
class ModuleDescription: ModuleDescription { class ModuleDescription {
description = "$STR_ACE_mk6mortar_Module_Description"; description = "$STR_ACE_mk6mortar_Module_Description";
}; };
}; };

View File

@ -1,9 +1,10 @@
#include "script_component.hpp" #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. ["InitSettingsFromModules", {
// 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. // 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 { [_x] call {
private ["_logic", "_logicType", "_config", "_isGlobal", "_isDisposable", "_isPersistent","_function"]; private ["_logic", "_logicType", "_config", "_isGlobal", "_isDisposable", "_isPersistent","_function"];
_logic = _this select 0; _logic = _this select 0;
@ -41,4 +42,5 @@
deleteVehicle _logic; deleteVehicle _logic;
}; };
}; };
}foreach GVAR(moduleInitCollection); }foreach GVAR(moduleInitCollection);
}] call FUNC(addEventhandler);

View File

@ -5,7 +5,7 @@ class CfgPatches {
units[] = {}; units[] = {};
weapons[] = {}; weapons[] = {};
requiredVersion = REQUIRED_VERSION; requiredVersion = REQUIRED_VERSION;
requiredAddons[] = {"ace_common"}; requiredAddons[] = {};
author[] = {"Glowbal"}; author[] = {"Glowbal"};
authorUrl = ""; authorUrl = "";
VERSION_CONFIG; VERSION_CONFIG;

View File

@ -1,9 +1,6 @@
class CfgVehicles { class CfgVehicles {
class Logic; class ACE_Module;
class Module_F: Logic { class ACE_ModuleNameTags: ACE_Module {
class ModuleDescription {};
};
class ACE_ModuleNameTags : Module_F {
author = "$STR_ACE_Common_ACETeam"; author = "$STR_ACE_Common_ACETeam";
category = "ACE"; category = "ACE";
displayName = "$STR_ACE_NameTags_Module_DisplayName"; displayName = "$STR_ACE_NameTags_Module_DisplayName";
@ -65,7 +62,7 @@ class CfgVehicles {
defaultValue = 0; defaultValue = 0;
}; };
}; };
class ModuleDescription: ModuleDescription { class ModuleDescription {
description = "$STR_ACE_NameTags_Module_Description"; description = "$STR_ACE_NameTags_Module_Description";
}; };
}; };

View File

@ -1,9 +1,6 @@
class CfgVehicles { class CfgVehicles {
class Logic; class ACE_Module;
class Module_F: Logic { class ACE_ModuleRespawn: ACE_Module {
class ModuleDescription {};
};
class ACE_ModuleRespawn: Module_F {
author = "$STR_ACE_Common_ACETeam"; author = "$STR_ACE_Common_ACETeam";
category = "ACE"; category = "ACE";
displayName = "$STR_ACE_Respawn_Module_DisplayName"; displayName = "$STR_ACE_Respawn_Module_DisplayName";
@ -27,12 +24,12 @@ class CfgVehicles {
defaultValue = 1; defaultValue = 1;
}; };
}; };
class ModuleDescription: ModuleDescription { class ModuleDescription {
description = "$STR_ACE_Respawn_Module_Description"; description = "$STR_ACE_Respawn_Module_Description";
}; };
}; };
class ACE_ModuleFriendlyFire: Module_F { class ACE_ModuleFriendlyFire: ACE_Module {
author = "$STR_ACE_Common_ACETeam"; author = "$STR_ACE_Common_ACETeam";
category = "ACE"; category = "ACE";
displayName = "$STR_ACE_FriendlyFire_Module_DisplayName"; displayName = "$STR_ACE_FriendlyFire_Module_DisplayName";
@ -42,12 +39,12 @@ class CfgVehicles {
icon = QUOTE(PATHTOF(UI\Icon_Module_FriendlyFire_ca.paa)); icon = QUOTE(PATHTOF(UI\Icon_Module_FriendlyFire_ca.paa));
class Arguments {}; class Arguments {};
class ModuleDescription: ModuleDescription { class ModuleDescription {
description = "$STR_ACE_FriendlyFire_Module_Description"; description = "$STR_ACE_FriendlyFire_Module_Description";
}; };
}; };
class ACE_ModuleRallypoint: Module_F { class ACE_ModuleRallypoint: ACE_Module {
author = "$STR_ACE_Common_ACETeam"; author = "$STR_ACE_Common_ACETeam";
category = "ACE"; category = "ACE";
displayName = "$STR_ACE_Rallypoint_Module_DisplayName"; displayName = "$STR_ACE_Rallypoint_Module_DisplayName";
@ -57,7 +54,7 @@ class CfgVehicles {
icon = QUOTE(PATHTOF(UI\Icon_Module_Rallypoint_ca.paa)); icon = QUOTE(PATHTOF(UI\Icon_Module_Rallypoint_ca.paa));
class Arguments {}; class Arguments {};
class ModuleDescription: ModuleDescription { class ModuleDescription {
description = "$STR_ACE_Rallypoint_Module_Description"; description = "$STR_ACE_Rallypoint_Module_Description";
}; };
}; };

View File

@ -1,6 +1,6 @@
class CfgVehicles { class CfgVehicles {
class Module_F; class ACE_Module;
class ACE_ModuleSwitchUnits: Module_F { class ACE_ModuleSwitchUnits: ACE_Module {
author = "$STR_ACE_Common_ACETeam"; author = "$STR_ACE_Common_ACETeam";
category = "ACE"; category = "ACE";
displayName = "$STR_ACE_SwitchUnits_Module_DisplayName"; displayName = "$STR_ACE_SwitchUnits_Module_DisplayName";

View File

@ -64,9 +64,10 @@ class CfgVehicles {
class Logic; class Logic;
class Module_F: 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"; author = "$STR_ACE_Common_ACETeam";
category = "ACE"; category = "ACE";
displayName = "$STR_ACE_VehicleLock_Module_DisplayName"; displayName = "$STR_ACE_VehicleLock_Module_DisplayName";
@ -99,12 +100,12 @@ class CfgVehicles {
defaultValue = "10"; defaultValue = "10";
}; };
}; };
class ModuleDescription: ModuleDescription { class ModuleDescription {
description = "$STR_ACE_VehicleLock_Module_Description"; description = "$STR_ACE_VehicleLock_Module_Description";
}; };
}; };
class ACE_VehicleLock_ModuleSyncedAssign: Module_F { class ACE_VehicleLock_ModuleSyncedAssign: ACE_Module {
author = "$STR_ACE_Common_ACETeam"; author = "$STR_ACE_Common_ACETeam";
category = "ACE"; category = "ACE";
displayName = "$STR_ACE_VehicleLock_VehicleKeyAssign_Module_DisplayName"; displayName = "$STR_ACE_VehicleLock_VehicleKeyAssign_Module_DisplayName";

View File

@ -5,7 +5,7 @@ class CfgPatches {
units[] = {}; units[] = {};
weapons[] = {}; weapons[] = {};
requiredVersion = REQUIRED_VERSION; requiredVersion = REQUIRED_VERSION;
requiredAddons[] = {"ace_common", "ace_modules"}; requiredAddons[] = {"ace_common"};
author[] = {"q1184", "Rocko", "esteldunedain", "Ruthberg"}; author[] = {"q1184", "Rocko", "esteldunedain", "Ruthberg"};
VERSION_CONFIG; VERSION_CONFIG;
}; };

View File

@ -5,7 +5,7 @@ class CfgPatches {
units[] = {}; units[] = {};
weapons[] = {}; weapons[] = {};
requiredVersion = REQUIRED_VERSION; requiredVersion = REQUIRED_VERSION;
requiredAddons[] = {"ace_common","ace_modules"}; requiredAddons[] = {"ace_common"};
author[] = {"SilentSpike"}; author[] = {"SilentSpike"};
authorUrl = "https://github.com/SilentSpike"; authorUrl = "https://github.com/SilentSpike";
VERSION_CONFIG; VERSION_CONFIG;