diff --git a/addons/advanced_ballistics/CfgEventHandlers.hpp b/addons/advanced_ballistics/CfgEventHandlers.hpp
index 44b6e8e6ff..5da5fd0dc2 100644
--- a/addons/advanced_ballistics/CfgEventHandlers.hpp
+++ b/addons/advanced_ballistics/CfgEventHandlers.hpp
@@ -1,3 +1,10 @@
+
+class Extended_PreStart_EventHandlers {
+ class ADDON {
+ init = QUOTE(call COMPILE_FILE(XEH_preStart));
+ };
+};
+
class Extended_PreInit_EventHandlers {
class ADDON {
init = QUOTE( call COMPILE_FILE(XEH_preInit) );
diff --git a/addons/advanced_ballistics/XEH_PREP.hpp b/addons/advanced_ballistics/XEH_PREP.hpp
new file mode 100644
index 0000000000..df2501467f
--- /dev/null
+++ b/addons/advanced_ballistics/XEH_PREP.hpp
@@ -0,0 +1,14 @@
+
+PREP(calculateAmmoTemperatureVelocityShift);
+PREP(calculateAtmosphericCorrection);
+PREP(calculateBarrelLengthVelocityShift);
+PREP(calculateRetardation);
+PREP(calculateStabilityFactor);
+PREP(diagnoseWeapons);
+PREP(displayProtractor);
+PREP(handleFired);
+PREP(initializeTerrainExtension);
+PREP(initModuleSettings);
+PREP(readAmmoDataFromConfig);
+PREP(readWeaponDataFromConfig);
+PREP(handleFirePFH);
diff --git a/addons/advanced_ballistics/XEH_preInit.sqf b/addons/advanced_ballistics/XEH_preInit.sqf
index 1404f08bc0..a7feade1c3 100644
--- a/addons/advanced_ballistics/XEH_preInit.sqf
+++ b/addons/advanced_ballistics/XEH_preInit.sqf
@@ -2,17 +2,6 @@
ADDON = false;
-PREP(calculateAmmoTemperatureVelocityShift);
-PREP(calculateAtmosphericCorrection);
-PREP(calculateBarrelLengthVelocityShift);
-PREP(calculateRetardation);
-PREP(calculateStabilityFactor);
-PREP(diagnoseWeapons);
-PREP(displayProtractor);
-PREP(handleFired);
-PREP(initializeTerrainExtension);
-PREP(initModuleSettings);
-PREP(readAmmoDataFromConfig);
-PREP(readWeaponDataFromConfig);
-PREP(handleFirePFH);
+#include "XEH_PREP.hpp"
+
ADDON = true;
diff --git a/addons/apl/XEH_preInit.sqf b/addons/advanced_ballistics/XEH_preStart.sqf
similarity index 52%
rename from addons/apl/XEH_preInit.sqf
rename to addons/advanced_ballistics/XEH_preStart.sqf
index 6899f59bd9..022888575e 100644
--- a/addons/apl/XEH_preInit.sqf
+++ b/addons/advanced_ballistics/XEH_preStart.sqf
@@ -1,5 +1,3 @@
#include "script_component.hpp"
-ADDON = false;
-
-ADDON = true;
+#include "XEH_PREP.hpp"
diff --git a/addons/apl/CfgEventHandlers.hpp b/addons/apl/CfgEventHandlers.hpp
deleted file mode 100644
index 5bacc02434..0000000000
--- a/addons/apl/CfgEventHandlers.hpp
+++ /dev/null
@@ -1,7 +0,0 @@
-/*
-class Extended_PreInit_EventHandlers {
- class ADDON {
- init = QUOTE(call COMPILE_FILE(XEH_preInit));
- };
-};
-*/
\ No newline at end of file
diff --git a/addons/apl/config.cpp b/addons/apl/config.cpp
index fff902d962..089f4bffe0 100644
--- a/addons/apl/config.cpp
+++ b/addons/apl/config.cpp
@@ -11,5 +11,3 @@ class CfgPatches {
VERSION_CONFIG;
};
};
-
-#include "CfgEventHandlers.hpp"
diff --git a/addons/atragmx/CfgEventHandlers.hpp b/addons/atragmx/CfgEventHandlers.hpp
index 3996e3371d..1bd535a305 100644
--- a/addons/atragmx/CfgEventHandlers.hpp
+++ b/addons/atragmx/CfgEventHandlers.hpp
@@ -1,3 +1,10 @@
+
+class Extended_PreStart_EventHandlers {
+ class ADDON {
+ init = QUOTE(call COMPILE_FILE(XEH_preStart));
+ };
+};
+
class Extended_PreInit_EventHandlers {
class ADDON {
init = QUOTE( call COMPILE_FILE(XEH_preInit) );
diff --git a/addons/atragmx/XEH_PREP.hpp b/addons/atragmx/XEH_PREP.hpp
new file mode 100644
index 0000000000..20900711c3
--- /dev/null
+++ b/addons/atragmx/XEH_PREP.hpp
@@ -0,0 +1,67 @@
+
+PREP(add_new_gun);
+PREP(calculate_range_card);
+PREP(calculate_solution);
+PREP(calculate_target_range_assist);
+PREP(calculate_target_solution);
+PREP(calculate_target_speed_assist);
+PREP(can_show);
+PREP(change_gun);
+PREP(change_target_slot);
+PREP(clear_user_data);
+PREP(create_dialog);
+PREP(cycle_gun_list);
+PREP(cycle_image_size_units);
+PREP(cycle_num_ticks_units);
+PREP(cycle_range_card_columns);
+PREP(cycle_scope_unit);
+PREP(cycle_target_size_units);
+PREP(cycle_target_speed_direction);
+PREP(delete_gun);
+PREP(init);
+PREP(parse_input);
+PREP(reset_relative_click_memory);
+PREP(restore_atmo_default);
+PREP(restore_user_data);
+PREP(save_gun);
+PREP(show_add_new_gun);
+PREP(show_atmo_env_data);
+PREP(show_gun_ammo_data);
+PREP(show_gun_list);
+PREP(show_main_page);
+PREP(show_range_card);
+PREP(show_range_card_setup);
+PREP(show_solution_setup);
+PREP(show_target_data);
+PREP(show_target_range_assist);
+PREP(show_target_speed_assist);
+PREP(show_target_speed_assist_timer);
+PREP(sord);
+PREP(store_user_data);
+PREP(target_speed_assist_timer);
+PREP(toggle_atmo_env_data);
+PREP(toggle_gun_ammo_data);
+PREP(toggle_gun_list);
+PREP(toggle_range_card);
+PREP(toggle_range_card_setup);
+PREP(toggle_solution_setup);
+PREP(toggle_target_data);
+PREP(toggle_target_range_assist);
+PREP(toggle_target_speed_assist);
+PREP(update_atmosphere);
+PREP(update_atmo_env_data);
+PREP(update_atmo_selection);
+PREP(update_gun);
+PREP(update_gun_ammo_data);
+PREP(update_inclination_angle);
+PREP(update_range_card);
+PREP(update_relative_click_memory);
+PREP(update_result);
+PREP(update_scope_unit);
+PREP(update_solution_setup);
+PREP(update_target);
+PREP(update_target_data);
+PREP(update_target_selection);
+PREP(update_unit_selection);
+PREP(update_zero_range);
+PREP(on_close_dialog);
diff --git a/addons/atragmx/XEH_preInit.sqf b/addons/atragmx/XEH_preInit.sqf
index 0277de1c14..a7feade1c3 100644
--- a/addons/atragmx/XEH_preInit.sqf
+++ b/addons/atragmx/XEH_preInit.sqf
@@ -2,71 +2,6 @@
ADDON = false;
-PREP(add_new_gun);
-PREP(calculate_range_card);
-PREP(calculate_solution);
-PREP(calculate_target_range_assist);
-PREP(calculate_target_solution);
-PREP(calculate_target_speed_assist);
-PREP(can_show);
-PREP(change_gun);
-PREP(change_target_slot);
-PREP(clear_user_data);
-PREP(create_dialog);
-PREP(cycle_gun_list);
-PREP(cycle_image_size_units);
-PREP(cycle_num_ticks_units);
-PREP(cycle_range_card_columns);
-PREP(cycle_scope_unit);
-PREP(cycle_target_size_units);
-PREP(cycle_target_speed_direction);
-PREP(delete_gun);
-PREP(init);
-PREP(parse_input);
-PREP(reset_relative_click_memory);
-PREP(restore_atmo_default);
-PREP(restore_user_data);
-PREP(save_gun);
-PREP(show_add_new_gun);
-PREP(show_atmo_env_data);
-PREP(show_gun_ammo_data);
-PREP(show_gun_list);
-PREP(show_main_page);
-PREP(show_range_card);
-PREP(show_range_card_setup);
-PREP(show_solution_setup);
-PREP(show_target_data);
-PREP(show_target_range_assist);
-PREP(show_target_speed_assist);
-PREP(show_target_speed_assist_timer);
-PREP(sord);
-PREP(store_user_data);
-PREP(target_speed_assist_timer);
-PREP(toggle_atmo_env_data);
-PREP(toggle_gun_ammo_data);
-PREP(toggle_gun_list);
-PREP(toggle_range_card);
-PREP(toggle_range_card_setup);
-PREP(toggle_solution_setup);
-PREP(toggle_target_data);
-PREP(toggle_target_range_assist);
-PREP(toggle_target_speed_assist);
-PREP(update_atmosphere);
-PREP(update_atmo_env_data);
-PREP(update_atmo_selection);
-PREP(update_gun);
-PREP(update_gun_ammo_data);
-PREP(update_inclination_angle);
-PREP(update_range_card);
-PREP(update_relative_click_memory);
-PREP(update_result);
-PREP(update_scope_unit);
-PREP(update_solution_setup);
-PREP(update_target);
-PREP(update_target_data);
-PREP(update_target_selection);
-PREP(update_unit_selection);
-PREP(update_zero_range);
-PREP(on_close_dialog);
+#include "XEH_PREP.hpp"
ADDON = true;
diff --git a/addons/atragmx/XEH_preStart.sqf b/addons/atragmx/XEH_preStart.sqf
new file mode 100644
index 0000000000..022888575e
--- /dev/null
+++ b/addons/atragmx/XEH_preStart.sqf
@@ -0,0 +1,3 @@
+#include "script_component.hpp"
+
+#include "XEH_PREP.hpp"
diff --git a/addons/attach/CfgEventHandlers.hpp b/addons/attach/CfgEventHandlers.hpp
index c050fbd1c7..73b8553839 100644
--- a/addons/attach/CfgEventHandlers.hpp
+++ b/addons/attach/CfgEventHandlers.hpp
@@ -1,3 +1,10 @@
+
+class Extended_PreStart_EventHandlers {
+ class ADDON {
+ init = QUOTE(call COMPILE_FILE(XEH_preStart));
+ };
+};
+
class Extended_PreInit_EventHandlers {
class ADDON {
init = QUOTE(call COMPILE_FILE(XEH_preInit));
diff --git a/addons/attach/XEH_PREP.hpp b/addons/attach/XEH_PREP.hpp
new file mode 100644
index 0000000000..5dedc2254e
--- /dev/null
+++ b/addons/attach/XEH_PREP.hpp
@@ -0,0 +1,10 @@
+
+PREP(attach);
+PREP(canAttach);
+PREP(canDetach);
+PREP(detach);
+PREP(getChildrenAttachActions);
+PREP(handleGetIn);
+PREP(handleGetOut);
+PREP(handleKilled);
+PREP(placeApprove);
diff --git a/addons/attach/XEH_preInit.sqf b/addons/attach/XEH_preInit.sqf
index 17b8490a77..a7feade1c3 100644
--- a/addons/attach/XEH_preInit.sqf
+++ b/addons/attach/XEH_preInit.sqf
@@ -2,14 +2,6 @@
ADDON = false;
-PREP(attach);
-PREP(canAttach);
-PREP(canDetach);
-PREP(detach);
-PREP(getChildrenAttachActions);
-PREP(handleGetIn);
-PREP(handleGetOut);
-PREP(handleKilled);
-PREP(placeApprove);
+#include "XEH_PREP.hpp"
ADDON = true;
diff --git a/addons/attach/XEH_preStart.sqf b/addons/attach/XEH_preStart.sqf
new file mode 100644
index 0000000000..022888575e
--- /dev/null
+++ b/addons/attach/XEH_preStart.sqf
@@ -0,0 +1,3 @@
+#include "script_component.hpp"
+
+#include "XEH_PREP.hpp"
diff --git a/addons/backpacks/CfgEventHandlers.hpp b/addons/backpacks/CfgEventHandlers.hpp
index 1aad146690..20cf8f83bf 100644
--- a/addons/backpacks/CfgEventHandlers.hpp
+++ b/addons/backpacks/CfgEventHandlers.hpp
@@ -1,4 +1,10 @@
+class Extended_PreStart_EventHandlers {
+ class ADDON {
+ init = QUOTE(call COMPILE_FILE(XEH_preStart));
+ };
+};
+
class Extended_PreInit_EventHandlers {
class ADDON {
init = QUOTE(call COMPILE_FILE(XEH_preInit));
diff --git a/addons/backpacks/XEH_PREP.hpp b/addons/backpacks/XEH_PREP.hpp
new file mode 100644
index 0000000000..8c8a014235
--- /dev/null
+++ b/addons/backpacks/XEH_PREP.hpp
@@ -0,0 +1,4 @@
+
+PREP(backpackOpened);
+PREP(isBackpack);
+PREP(onOpenInventory);
diff --git a/addons/backpacks/XEH_preInit.sqf b/addons/backpacks/XEH_preInit.sqf
index f4c6a1a5d8..a7feade1c3 100644
--- a/addons/backpacks/XEH_preInit.sqf
+++ b/addons/backpacks/XEH_preInit.sqf
@@ -2,8 +2,6 @@
ADDON = false;
-PREP(backpackOpened);
-PREP(isBackpack);
-PREP(onOpenInventory);
+#include "XEH_PREP.hpp"
ADDON = true;
diff --git a/addons/backpacks/XEH_preStart.sqf b/addons/backpacks/XEH_preStart.sqf
new file mode 100644
index 0000000000..022888575e
--- /dev/null
+++ b/addons/backpacks/XEH_preStart.sqf
@@ -0,0 +1,3 @@
+#include "script_component.hpp"
+
+#include "XEH_PREP.hpp"
diff --git a/addons/ballistics/CfgWeapons.hpp b/addons/ballistics/CfgWeapons.hpp
index e0cc3f203d..3f6835bbba 100644
--- a/addons/ballistics/CfgWeapons.hpp
+++ b/addons/ballistics/CfgWeapons.hpp
@@ -14,7 +14,6 @@ class CfgWeapons {
class MMG_02_base_F;
class Rifle_Base_F;
class Rifle_Long_Base_F;
- class WeaponSlotsInfo;
class MuzzleSlot;
/* Long Rifles */
@@ -74,22 +73,12 @@ class CfgWeapons {
};
class DMR_01_base_F: Rifle_Long_Base_F {
- class WeaponSlotsInfo: WeaponSlotsInfo {
- class MuzzleSlot: MuzzleSlot {
- compatibleItems[] += {"ACE_muzzle_mzls_B"};
- };
- };
class Single: Mode_SemiAuto {
dispersion = 0.0004; // radians. Equal to 1.375 MOA.
};
};
class EBR_base_F: Rifle_Long_Base_F {
- class WeaponSlotsInfo: WeaponSlotsInfo {
- class MuzzleSlot: MuzzleSlot {
- compatibleItems[] += {"ACE_muzzle_mzls_B"};
- };
- };
class Single: Mode_SemiAuto {
dispersion = 0.00029; // radians. Equal to 1.00 MOA.
};
@@ -101,13 +90,7 @@ class CfgWeapons {
/* MX */
- class arifle_MX_Base_F: Rifle_Base_F {
- class WeaponSlotsInfo: WeaponSlotsInfo {
- class MuzzleSlot: MuzzleSlot {
- compatibleItems[] += {"ACE_muzzle_mzls_H"};
- };
- };
- };
+ class arifle_MX_Base_F: Rifle_Base_F {};
class arifle_MX_SW_F: arifle_MX_Base_F {
magazines[] = {
"100Rnd_65x39_caseless_mag_Tracer",
@@ -120,13 +103,6 @@ class CfgWeapons {
initSpeed = -1.0;
ACE_barrelTwist=228.6;
ACE_barrelLength=406.4;
- class WeaponSlotsInfo: WeaponSlotsInfo {
- class MuzzleSlot: MuzzleSlot {
- // Shit is broken again
- //compatibleItems[] += {"ACE_muzzle_mzls_H"};
- compatibleItems[] = {"muzzle_snds_H","muzzle_snds_H_SW","ACE_muzzle_mzls_H"};
- };
- };
};
class arifle_MXM_F: arifle_MX_Base_F {
magazines[] = {
@@ -150,13 +126,7 @@ class CfgWeapons {
/* Katiba */
- class arifle_katiba_Base_F: Rifle_Base_F {
- class WeaponSlotsInfo: WeaponSlotsInfo {
- class MuzzleSlot: MuzzleSlot {
- compatibleItems[] += {"ACE_muzzle_mzls_H"};
- };
- };
- };
+ class arifle_katiba_Base_F: Rifle_Base_F {};
/* Other */
@@ -167,42 +137,16 @@ class CfgWeapons {
"ACE_200Rnd_65x39_cased_Box_Tracer_Dim"
};
initSpeed = -0.9763;
- class WeaponSlotsInfo: WeaponSlotsInfo {
- class MuzzleSlot: MuzzleSlot {
- compatibleItems[] += {"ACE_muzzle_mzls_H"};
- };
- };
ACE_barrelTwist=177.8;
ACE_barrelLength=317.5;
};
class LMG_Zafir_F: Rifle_Long_Base_F {
initSpeed = -1.0;
- class WeaponSlotsInfo: WeaponSlotsInfo {
- class MuzzleSlot: MuzzleSlot {
- compatibleItems[] += {"ACE_muzzle_mzls_B"};
- };
- };
ACE_barrelTwist=304.8;
ACE_barrelLength=459.74;
};
-
-
- /* Assault Rifles */
- class Tavor_base_F: Rifle_Base_F {
- class WeaponSlotsInfo: WeaponSlotsInfo {
- class MuzzleSlot: MuzzleSlot {
- compatibleItems[] += {"ACE_muzzle_mzls_L"};
- };
- };
- };
- class mk20_base_F: Rifle_Base_F {
- class WeaponSlotsInfo: WeaponSlotsInfo {
- class MuzzleSlot: MuzzleSlot {
- compatibleItems[] += {"ACE_muzzle_mzls_L"};
- };
- };
- };
-
+ class Tavor_base_F: Rifle_Base_F {};
+ class mk20_base_F: Rifle_Base_F {};
/* SMGs */
class SDAR_base_F: Rifle_Base_F {
@@ -219,93 +163,43 @@ class CfgWeapons {
dispersion = 0.0008727; // radians. Equal to 3 MOA.
};
};
- class pdw2000_base_F: Rifle_Base_F {
- class WeaponSlotsInfo: WeaponSlotsInfo {
- class MuzzleSlot: MuzzleSlot {
- compatibleItems[] += {"ACE_muzzle_mzls_smg_02"};
- };
- };
- };
- class SMG_01_Base: Rifle_Base_F {
- class WeaponSlotsInfo: WeaponSlotsInfo {
- class MuzzleSlot: MuzzleSlot {
- compatibleItems[] += {"ACE_muzzle_mzls_smg_01"};
- };
- };
- };
- class SMG_02_base_F: Rifle_Base_F {
- class WeaponSlotsInfo: WeaponSlotsInfo {
- class MuzzleSlot: MuzzleSlot {
- compatibleItems[] += {"ACE_muzzle_mzls_smg_02"};
- };
- };
- };
-
+ class pdw2000_base_F: Rifle_Base_F {};
+ class SMG_01_Base: Rifle_Base_F {};
+ class SMG_02_base_F: Rifle_Base_F {};
+
/* Pistols */
class Pistol;
- class Pistol_Base_F: Pistol {
- class WeaponSlotsInfo;
- };
+ class Pistol_Base_F: Pistol {};
class hgun_P07_F: Pistol_Base_F {
initSpeed = -0.9778;
ACE_barrelTwist=254.0;
ACE_barrelLength=101.6;
- class WeaponSlotsInfo: WeaponSlotsInfo {
- class MuzzleSlot: MuzzleSlot {
- linkProxy = "\A3\data_f\proxies\weapon_slots\MUZZLE";
- compatibleItems[] += {"ACE_muzzle_mzls_smg_02"};
- };
- };
};
class hgun_Rook40_F: Pistol_Base_F {
initSpeed = -1.0;
ACE_barrelTwist=254.0;
ACE_barrelLength=111.76;
- class WeaponSlotsInfo: WeaponSlotsInfo {
- class MuzzleSlot: MuzzleSlot {
- linkProxy = "\A3\data_f\proxies\weapon_slots\MUZZLE";
- compatibleItems[] += {"ACE_muzzle_mzls_smg_02"};
- };
- };
};
class hgun_ACPC2_F: Pistol_Base_F {
initSpeed = -1.0;
ACE_barrelTwist=406.4;
ACE_barrelLength=127.0;
- class WeaponSlotsInfo: WeaponSlotsInfo {
- class MuzzleSlot: MuzzleSlot {
- compatibleItems[] += {"ACE_muzzle_mzls_smg_01"};
- };
- };
};
class hgun_Pistol_heavy_01_F: Pistol_Base_F {
initSpeed = -0.96;
ACE_barrelTwist=406.4;
ACE_barrelLength=114.3;
- class WeaponSlotsInfo: WeaponSlotsInfo {
- class MuzzleSlot: MuzzleSlot {
- compatibleItems[] += {"ACE_muzzle_mzls_smg_01"};
- };
- };
};
class hgun_Pistol_heavy_02_F: Pistol_Base_F {
initSpeed = -0.92;
ACE_barrelTwist=406.4;
ACE_barrelLength=76.2;
- /*
- class WeaponSlotsInfo: WeaponSlotsInfo {
- class MuzzleSlot {
- linkProxy = "\A3\data_f\proxies\weapon_slots\MUZZLE";
- compatibleItems[] += {"ACE_muzzle_mzls_smg_01"};
- };
- };
- */
};
class hgun_PDW2000_F: pdw2000_base_F {
initSpeed = -1.157;
diff --git a/addons/captives/CfgEventHandlers.hpp b/addons/captives/CfgEventHandlers.hpp
index 4d12dc10c4..916990f1b5 100644
--- a/addons/captives/CfgEventHandlers.hpp
+++ b/addons/captives/CfgEventHandlers.hpp
@@ -1,3 +1,10 @@
+
+class Extended_PreStart_EventHandlers {
+ class ADDON {
+ init = QUOTE(call COMPILE_FILE(XEH_preStart));
+ };
+};
+
class Extended_PreInit_EventHandlers {
class ADDON {
init = QUOTE(call COMPILE_FILE(XEH_preInit));
@@ -9,6 +16,13 @@ class Extended_PostInit_EventHandlers {
init = QUOTE(call COMPILE_FILE(XEH_postInit));
};
};
+
+class Extended_DisplayUnload_EventHandlers {
+ class RscDisplayCurator {
+ ADDON = QUOTE(call FUNC(handleZeusDisplayChanged));
+ };
+};
+
//release escorted captive when entering a vehicle
class Extended_GetIn_EventHandlers {
class All {
diff --git a/addons/captives/XEH_PREP.hpp b/addons/captives/XEH_PREP.hpp
new file mode 100644
index 0000000000..2722214e1b
--- /dev/null
+++ b/addons/captives/XEH_PREP.hpp
@@ -0,0 +1,30 @@
+
+PREP(canApplyHandcuffs);
+PREP(canEscortCaptive);
+PREP(canFriskPerson);
+PREP(canLoadCaptive);
+PREP(canRemoveHandcuffs);
+PREP(canStopEscorting);
+PREP(canSurrender);
+PREP(canUnloadCaptive);
+PREP(doApplyHandcuffs);
+PREP(doEscortCaptive);
+PREP(doFriskPerson);
+PREP(doLoadCaptive);
+PREP(doRemoveHandcuffs);
+PREP(doUnloadCaptive);
+PREP(findEmptyNonFFVCargoSeat);
+PREP(handleGetIn);
+PREP(handleGetOut);
+PREP(handleOnUnconscious);
+PREP(handlePlayerChanged);
+PREP(handleRespawn);
+PREP(handleUnitInitPost);
+PREP(handleZeusDisplayChanged);
+PREP(moduleHandcuffed);
+PREP(moduleSettings);
+PREP(moduleSurrender);
+PREP(setHandcuffed);
+PREP(setSurrendered);
+PREP(vehicleCaptiveMoveIn);
+PREP(vehicleCaptiveMoveOut);
diff --git a/addons/captives/XEH_postInit.sqf b/addons/captives/XEH_postInit.sqf
index 8f7109b81f..144d3efb9a 100644
--- a/addons/captives/XEH_postInit.sqf
+++ b/addons/captives/XEH_postInit.sqf
@@ -18,7 +18,6 @@ if (isServer) then {
}];
};
-["zeusDisplayChanged", {_this call FUNC(handleZeusDisplayChanged)}] call EFUNC(common,addEventHandler);
["playerChanged", {_this call FUNC(handlePlayerChanged)}] call EFUNC(common,addEventhandler);
["MoveInCaptive", {_this call FUNC(vehicleCaptiveMoveIn)}] call EFUNC(common,addEventHandler);
["MoveOutCaptive", {_this call FUNC(vehicleCaptiveMoveOut)}] call EFUNC(common,addEventHandler);
diff --git a/addons/captives/XEH_preInit.sqf b/addons/captives/XEH_preInit.sqf
index e419d4d11b..81657a8960 100644
--- a/addons/captives/XEH_preInit.sqf
+++ b/addons/captives/XEH_preInit.sqf
@@ -2,35 +2,7 @@
ADDON = false;
-PREP(canApplyHandcuffs);
-PREP(canEscortCaptive);
-PREP(canFriskPerson);
-PREP(canLoadCaptive);
-PREP(canRemoveHandcuffs);
-PREP(canStopEscorting);
-PREP(canSurrender);
-PREP(canUnloadCaptive);
-PREP(doApplyHandcuffs);
-PREP(doEscortCaptive);
-PREP(doFriskPerson);
-PREP(doLoadCaptive);
-PREP(doRemoveHandcuffs);
-PREP(doUnloadCaptive);
-PREP(findEmptyNonFFVCargoSeat);
-PREP(handleGetIn);
-PREP(handleGetOut);
-PREP(handleOnUnconscious);
-PREP(handlePlayerChanged);
-PREP(handleRespawn);
-PREP(handleUnitInitPost);
-PREP(handleZeusDisplayChanged);
-PREP(moduleHandcuffed);
-PREP(moduleSettings);
-PREP(moduleSurrender);
-PREP(setHandcuffed);
-PREP(setSurrendered);
-PREP(vehicleCaptiveMoveIn);
-PREP(vehicleCaptiveMoveOut);
+#include "XEH_PREP.hpp"
GVAR(captivityEnabled) = false;
diff --git a/addons/captives/XEH_preStart.sqf b/addons/captives/XEH_preStart.sqf
new file mode 100644
index 0000000000..022888575e
--- /dev/null
+++ b/addons/captives/XEH_preStart.sqf
@@ -0,0 +1,3 @@
+#include "script_component.hpp"
+
+#include "XEH_PREP.hpp"
diff --git a/addons/captives/functions/fnc_handleZeusDisplayChanged.sqf b/addons/captives/functions/fnc_handleZeusDisplayChanged.sqf
index ef8aedbbe1..433c1fc259 100644
--- a/addons/captives/functions/fnc_handleZeusDisplayChanged.sqf
+++ b/addons/captives/functions/fnc_handleZeusDisplayChanged.sqf
@@ -17,15 +17,10 @@
*/
#include "script_component.hpp"
-params ["_unit","_zeusIsOpen"];
-
-//set showHUD based on unit status:
-if (!_zeusIsOpen) then {
- if ((_unit getVariable [QGVAR(isHandcuffed), false]) || {_unit getVariable [QGVAR(isSurrendering), false]}) then {
- TRACE_1("Player Change (showHUD false)",_unit);
- ["captive", [false, false, false, false, false, false, false, false]] call EFUNC(common,showHud);
- } else {
- TRACE_1("Player Change (showHUD true)",_unit);
- ["captive", []] call EFUNC(common,showHud); //same as showHud true;
- };
+if ((ACE_player getVariable [QGVAR(isHandcuffed), false]) || {ACE_player getVariable [QGVAR(isSurrendering), false]}) then {
+ TRACE_1("Player Change (showHUD false)",ACE_player);
+ ["captive", [false, false, false, false, false, false, false, false]] call EFUNC(common,showHud);
+} else {
+ TRACE_1("Player Change (showHUD true)",ACE_player);
+ ["captive", []] call EFUNC(common,showHud); //same as showHud true;
};
diff --git a/addons/cargo/CfgEventHandlers.hpp b/addons/cargo/CfgEventHandlers.hpp
index f65dc24e06..3f784e7ab4 100644
--- a/addons/cargo/CfgEventHandlers.hpp
+++ b/addons/cargo/CfgEventHandlers.hpp
@@ -1,3 +1,10 @@
+
+class Extended_PreStart_EventHandlers {
+ class ADDON {
+ init = QUOTE(call COMPILE_FILE(XEH_preStart));
+ };
+};
+
class Extended_PreInit_EventHandlers {
class ADDON {
init = QUOTE(call COMPILE_FILE(XEH_preInit));
diff --git a/addons/cargo/XEH_PREP.hpp b/addons/cargo/XEH_PREP.hpp
new file mode 100644
index 0000000000..9ccd0d587d
--- /dev/null
+++ b/addons/cargo/XEH_PREP.hpp
@@ -0,0 +1,20 @@
+
+PREP(addCargoItem);
+PREP(canLoad);
+PREP(canLoadItemIn);
+PREP(canUnloadItem);
+PREP(findNearestVehicle);
+PREP(getCargoSpaceLeft);
+PREP(getSizeItem);
+PREP(handleDestroyed);
+PREP(initObject);
+PREP(initVehicle);
+PREP(loadItem);
+PREP(makeLoadable);
+PREP(moduleMakeLoadable);
+PREP(moduleSettings);
+PREP(onMenuOpen);
+PREP(startLoadIn);
+PREP(startUnload);
+PREP(unloadItem);
+PREP(validateCargoSpace);
diff --git a/addons/cargo/XEH_preInit.sqf b/addons/cargo/XEH_preInit.sqf
index 1f2be9894b..a24ce048b5 100644
--- a/addons/cargo/XEH_preInit.sqf
+++ b/addons/cargo/XEH_preInit.sqf
@@ -2,25 +2,7 @@
ADDON = false;
-PREP(addCargoItem);
-PREP(canLoad);
-PREP(canLoadItemIn);
-PREP(canUnloadItem);
-PREP(findNearestVehicle);
-PREP(getCargoSpaceLeft);
-PREP(getSizeItem);
-PREP(handleDestroyed);
-PREP(initObject);
-PREP(initVehicle);
-PREP(loadItem);
-PREP(makeLoadable);
-PREP(moduleMakeLoadable);
-PREP(moduleSettings);
-PREP(onMenuOpen);
-PREP(startLoadIn);
-PREP(startUnload);
-PREP(unloadItem);
-PREP(validateCargoSpace);
+#include "XEH_PREP.hpp"
GVAR(initializedItemClasses) = [];
GVAR(initializedVehicleClasses) = [];
diff --git a/addons/cargo/XEH_preStart.sqf b/addons/cargo/XEH_preStart.sqf
new file mode 100644
index 0000000000..022888575e
--- /dev/null
+++ b/addons/cargo/XEH_preStart.sqf
@@ -0,0 +1,3 @@
+#include "script_component.hpp"
+
+#include "XEH_PREP.hpp"
diff --git a/addons/cargo/stringtable.xml b/addons/cargo/stringtable.xml
index 04569e8a25..a7ac525a7b 100644
--- a/addons/cargo/stringtable.xml
+++ b/addons/cargo/stringtable.xml
@@ -165,6 +165,7 @@
Object's Size
+ Objektgröße
Rozmiar obiektu
Dimensioni dell'oggetto
diff --git a/addons/common/CfgEventHandlers.hpp b/addons/common/CfgEventHandlers.hpp
index 1afbe16512..bdfeccd4fa 100644
--- a/addons/common/CfgEventHandlers.hpp
+++ b/addons/common/CfgEventHandlers.hpp
@@ -1,4 +1,10 @@
+class Extended_PreStart_EventHandlers {
+ class ADDON {
+ init = QUOTE(call COMPILE_FILE(XEH_preStart));
+ };
+};
+
class Extended_PreInit_EventHandlers {
class ADDON {
init = QUOTE(call COMPILE_FILE(XEH_preInit));
@@ -13,6 +19,12 @@ class Extended_PostInit_EventHandlers {
};
};
+class Extended_DisplayLoad_EventHandlers {
+ class RscDisplayMission {
+ ADDON = QUOTE(_this call COMPILE_FILE(XEH_mainDislayLoad));
+ };
+};
+
class Extended_InitPost_EventHandlers {
class All {
class GVAR(executePersistent) {
diff --git a/addons/common/RscInfoType.hpp b/addons/common/RscInfoType.hpp
index 4d94f8ae2c..327a9814d1 100644
--- a/addons/common/RscInfoType.hpp
+++ b/addons/common/RscInfoType.hpp
@@ -1,7 +1,7 @@
class RscInGameUI {
class RscUnitInfo {
- onLoad = QUOTE([ARR_4(""onLoad"",_this,""RscUnitInfo"",'IGUI')] call compile preprocessfilelinenumbers ""A3\ui_f\scripts\initDisplay.sqf""; [ARR_2('infoDisplayChanged', [ARR_2(_this select 0, 'Any')])] call FUNC(localEvent););
+ onLoad = QUOTE([ARR_4(""onLoad"",_this,""RscUnitInfo"",'IGUI')] call (uinamespace getvariable 'BIS_fnc_initDisplay'); [ARR_2('infoDisplayChanged', [ARR_2(_this select 0, 'Any')])] call FUNC(localEvent););
};
class RscUnitInfoNoHUD {
@@ -9,19 +9,19 @@ class RscInGameUI {
};
class RscUnitInfoSoldier: RscUnitInfo {
- onLoad = QUOTE([ARR_4(""onLoad"",_this,""RscUnitInfo"",'IGUI')] call compile preprocessfilelinenumbers ""A3\ui_f\scripts\initDisplay.sqf""; uiNamespace setVariable [ARR_2('ACE_dlgSoldier', _this select 0)]; [ARR_2('infoDisplayChanged', [ARR_2(_this select 0, 'Soldier')])] call FUNC(localEvent););
+ onLoad = QUOTE([ARR_4(""onLoad"",_this,""RscUnitInfo"",'IGUI')] call (uinamespace getvariable 'BIS_fnc_initDisplay'); uiNamespace setVariable [ARR_2('ACE_dlgSoldier', _this select 0)]; [ARR_2('infoDisplayChanged', [ARR_2(_this select 0, 'Soldier')])] call FUNC(localEvent););
};
class RscUnitInfoTank: RscUnitInfo {
- onLoad = QUOTE([ARR_4(""onLoad"",_this,""RscUnitInfo"",'IGUI')] call compile preprocessfilelinenumbers ""A3\ui_f\scripts\initDisplay.sqf""; uiNamespace setVariable [ARR_2('ACE_dlgVehicle', _this select 0)]; [ARR_2('infoDisplayChanged', [ARR_2(_this select 0, 'Vehicle')])] call FUNC(localEvent););
+ onLoad = QUOTE([ARR_4(""onLoad"",_this,""RscUnitInfo"",'IGUI')] call (uinamespace getvariable 'BIS_fnc_initDisplay'); uiNamespace setVariable [ARR_2('ACE_dlgVehicle', _this select 0)]; [ARR_2('infoDisplayChanged', [ARR_2(_this select 0, 'Vehicle')])] call FUNC(localEvent););
};
class RscUnitInfoAirNoWeapon: RscUnitInfo {
- onLoad = QUOTE([ARR_4(""onLoad"",_this,""RscUnitInfo"",'IGUI')] call compile preprocessfilelinenumbers ""A3\ui_f\scripts\initDisplay.sqf""; uiNamespace setVariable [ARR_2('ACE_dlgAircraft', _this select 0)]; [ARR_2('infoDisplayChanged', [ARR_2(_this select 0, 'Aircraft')])] call FUNC(localEvent););
+ onLoad = QUOTE([ARR_4(""onLoad"",_this,""RscUnitInfo"",'IGUI')] call (uinamespace getvariable 'BIS_fnc_initDisplay'); uiNamespace setVariable [ARR_2('ACE_dlgAircraft', _this select 0)]; [ARR_2('infoDisplayChanged', [ARR_2(_this select 0, 'Aircraft')])] call FUNC(localEvent););
};
class RscUnitInfoAir: RscUnitInfoAirNoWeapon {
- onLoad = QUOTE([ARR_4(""onLoad"",_this,""RscUnitInfo"",'IGUI')] call compile preprocessfilelinenumbers ""A3\ui_f\scripts\initDisplay.sqf""; uiNamespace setVariable [ARR_2('ACE_dlgAircraft', _this select 0)]; [ARR_2('infoDisplayChanged', [ARR_2(_this select 0, 'Aircraft')])] call FUNC(localEvent););
+ onLoad = QUOTE([ARR_4(""onLoad"",_this,""RscUnitInfo"",'IGUI')] call (uinamespace getvariable 'BIS_fnc_initDisplay'); uiNamespace setVariable [ARR_2('ACE_dlgAircraft', _this select 0)]; [ARR_2('infoDisplayChanged', [ARR_2(_this select 0, 'Aircraft')])] call FUNC(localEvent););
};
class RscUnitInfo_AH64D_gunner {
@@ -33,11 +33,11 @@ class RscInGameUI {
};
class RscUnitInfoSubmarine: RscUnitInfo {
- onLoad = QUOTE([ARR_4(""onLoad"",_this,""RscUnitInfo"",'IGUI')] call compile preprocessfilelinenumbers ""A3\ui_f\scripts\initDisplay.sqf""; uiNamespace setVariable [ARR_2('ACE_dlgSubmarine', _this select 0)]; [ARR_2('infoDisplayChanged', [ARR_2(_this select 0, 'Submarine')])] call FUNC(localEvent););
+ onLoad = QUOTE([ARR_4(""onLoad"",_this,""RscUnitInfo"",'IGUI')] call (uinamespace getvariable 'BIS_fnc_initDisplay'); uiNamespace setVariable [ARR_2('ACE_dlgSubmarine', _this select 0)]; [ARR_2('infoDisplayChanged', [ARR_2(_this select 0, 'Submarine')])] call FUNC(localEvent););
};
class RscUnitInfoShip: RscUnitInfo {
- onLoad = QUOTE([ARR_4(""onLoad"",_this,""RscUnitInfo"",'IGUI')] call compile preprocessfilelinenumbers ""A3\ui_f\scripts\initDisplay.sqf""; uiNamespace setVariable [ARR_2('ACE_dlgShip', _this select 0)]; [ARR_2('infoDisplayChanged', [ARR_2(_this select 0, 'Ship')])] call FUNC(localEvent););
+ onLoad = QUOTE([ARR_4(""onLoad"",_this,""RscUnitInfo"",'IGUI')] call (uinamespace getvariable 'BIS_fnc_initDisplay'); uiNamespace setVariable [ARR_2('ACE_dlgShip', _this select 0)]; [ARR_2('infoDisplayChanged', [ARR_2(_this select 0, 'Ship')])] call FUNC(localEvent););
};
class RscWeaponEmpty {
@@ -97,7 +97,7 @@ class RscInGameUI {
};
class RscUnitInfoParachute: RscUnitInfo {
- onLoad = QUOTE([ARR_4(""onLoad"",_this,""RscUnitInfo"",'IGUI')] call compile preprocessfilelinenumbers ""A3\ui_f\scripts\initDisplay.sqf""; uiNamespace setVariable [ARR_2('ACE_dlgParachute', _this select 0)]; [ARR_2('infoDisplayChanged', [ARR_2(_this select 0, 'Parachute')])] call FUNC(localEvent););
+ onLoad = QUOTE([ARR_4(""onLoad"",_this,""RscUnitInfo"",'IGUI')] call (uinamespace getvariable 'BIS_fnc_initDisplay'); uiNamespace setVariable [ARR_2('ACE_dlgParachute', _this select 0)]; [ARR_2('infoDisplayChanged', [ARR_2(_this select 0, 'Parachute')])] call FUNC(localEvent););
};
class RscUnitVehicle {
@@ -112,25 +112,3 @@ class RscInGameUI {
onLoad = QUOTE([ARR_4(""onLoad"",_this,""RscStaminaBar"",'IGUI')] call (uinamespace getvariable 'BIS_fnc_initDisplay'); uiNamespace setVariable [ARR_2(QUOTE(QGVAR(dlgStaminaBar)),_this select 0)]);
};
};
-
-class RscDisplayInventory {
- onLoad = QUOTE([ARR_4(""onLoad"",_this,""RscDisplayInventory"",'IGUI')] call compile preprocessfilelinenumbers ""A3\ui_f\scripts\initDisplay.sqf""; [ARR_2('inventoryDisplayLoaded', _this)] call FUNC(localEvent););
-};
-
-// map
-class RscDisplayMainMap {
- onLoad = QUOTE([ARR_4(""onLoad"",_this,""RscDiary"",'GUI')] call (uinamespace getVariable 'BIS_fnc_initDisplay'); uiNamespace setVariable [ARR_2('ACE_dlgMap', _this select 0)]; [ARR_2('mapDisplayLoaded', [ARR_2(_this select 0, 'Ingame')])] call FUNC(localEvent););
-};
-
-class RscDisplayGetReady: RscDisplayMainMap {
- onLoad = QUOTE([ARR_4(""onLoad"",_this,""RscDiary"",'GUI')] call (uinamespace getVariable 'BIS_fnc_initDisplay'); uiNamespace setVariable [ARR_2('ACE_dlgMap', _this select 0)]; [ARR_2('mapDisplayLoaded', [ARR_2(_this select 0, 'Briefing')])] call FUNC(localEvent););
-};
-
-class RscDisplayServerGetReady: RscDisplayGetReady {
- onLoad = QUOTE([ARR_4(""onLoad"",_this,""RscDiary"",'GUI')] call (uinamespace getVariable 'BIS_fnc_initDisplay'); uiNamespace setVariable [ARR_2('ACE_dlgMap', _this select 0)]; [ARR_2('mapDisplayLoaded', [ARR_2(_this select 0, 'ServerBriefing')])] call FUNC(localEvent););
-};
-
-
-class RscDisplayClientGetReady: RscDisplayGetReady {
- onLoad = QUOTE([ARR_4(""onLoad"",_this,""RscDiary"",'GUI')] call (uinamespace getVariable 'BIS_fnc_initDisplay'); uiNamespace setVariable [ARR_2('ACE_dlgMap', _this select 0)]; [ARR_2('mapDisplayLoaded', [ARR_2(_this select 0, 'ClientBriefing')])] call FUNC(localEvent););
-};
diff --git a/addons/common/XEH_PREP.hpp b/addons/common/XEH_PREP.hpp
new file mode 100644
index 0000000000..dbc7e39f48
--- /dev/null
+++ b/addons/common/XEH_PREP.hpp
@@ -0,0 +1,284 @@
+
+PREP(addCanInteractWithCondition);
+PREP(addLineToDebugDraw);
+PREP(addSetting);
+PREP(addToInventory);
+PREP(assignedItemFix);
+PREP(assignObjectsInList);
+PREP(ambientBrightness);
+PREP(ASLToPosition);
+PREP(binarizeNumber);
+PREP(blurScreen);
+PREP(cachedCall);
+PREP(canGetInPosition);
+PREP(canInteractWith);
+PREP(changeProjectileDirection);
+PREP(checkFiles);
+PREP(checkPBOs);
+PREP(claim);
+PREP(codeToString);
+PREP(createOrthonormalReference);
+PREP(currentChannel);
+PREP(debug);
+PREP(debugModule);
+PREP(defineVariable);
+PREP(deviceKeyFindValidIndex);
+PREP(deviceKeyRegisterNew);
+PREP(disableAI);
+PREP(disableUserInput);
+PREP(displayIcon);
+PREP(displayText);
+PREP(displayTextPicture);
+PREP(displayTextStructured);
+PREP(doAnimation);
+PREP(dropBackpack);
+PREP(endRadioTransmission);
+PREP(eraseCache);
+PREP(errorMessage);
+PREP(execNextFrame);
+PREP(execPersistentFnc);
+PREP(execRemoteFnc);
+PREP(executePersistent);
+PREP(filter);
+PREP(findUnloadPosition);
+PREP(firedEH);
+PREP(fixCollision);
+PREP(fixFloating);
+PREP(fixLoweredRifleAnimation);
+PREP(fixPosition);
+PREP(getAllDefinedSetVariables);
+PREP(getAllGear);
+PREP(getDeathAnim);
+PREP(getCaptivityStatus);
+PREP(getDefaultAnim);
+PREP(getDefinedVariable);
+PREP(getDefinedVariableDefault);
+PREP(getDefinedVariableInfo);
+PREP(getFirstObjectIntersection);
+PREP(getFirstTerrainIntersection);
+PREP(getForceWalkStatus);
+PREP(getGunner);
+PREP(getInPosition);
+PREP(getMapGridData);
+PREP(getMapGridFromPos);
+PREP(getMapPosFromGrid);
+PREP(getMarkerType);
+PREP(getMGRSdata);
+PREP(getName);
+PREP(getNumberFromMissionSQM);
+PREP(getNumberMagazinesIn);
+PREP(getPitchBankYaw);
+PREP(getSettingData);
+PREP(getStaminaBarControl);
+PREP(getStringFromMissionSQM);
+PREP(getTargetAzimuthAndInclination);
+PREP(getTargetDistance);
+PREP(getTargetObject);
+PREP(getTurnedOnLights);
+PREP(getTurretDirection);
+PREP(getUavControlPosition);
+PREP(getVehicleCargo);
+PREP(getVehicleCodriver);
+PREP(getVersion);
+PREP(getWeaponAzimuthAndInclination);
+PREP(getWeaponIndex);
+PREP(getWeaponState);
+PREP(getWindDirection);
+PREP(getZoom);
+PREP(goKneeling);
+PREP(hadamardProduct);
+PREP(handleModifierKey);
+PREP(handleModifierKeyUp);
+PREP(handleScrollWheel);
+PREP(hasItem);
+PREP(hasMagazine);
+PREP(headBugFix);
+PREP(hideUnit);
+PREP(insertionSort);
+PREP(interpolateFromArray);
+PREP(inTransitionAnim);
+PREP(isAutoWind);
+PREP(isAwake);
+PREP(isEngineer);
+PREP(isEOD);
+PREP(isFeatureCameraActive);
+PREP(isInBuilding);
+PREP(isModLoaded);
+PREP(isPlayer);
+PREP(isUnderwater);
+PREP(lightIntensityFromObject);
+PREP(loadPerson);
+PREP(loadPersonLocal);
+PREP(loadSettingsFromProfile);
+PREP(loadSettingsOnServer);
+PREP(loadSettingsLocalizedText);
+PREP(map);
+PREP(moduleCheckPBOs);
+PREP(moduleLSDVehicles);
+PREP(muteUnit);
+PREP(muteUnitHandleInitPost);
+PREP(muteUnitHandleRespawn);
+PREP(numberToDigits);
+PREP(numberToDigitsString);
+PREP(numberToString);
+PREP(onAnswerRequest);
+PREP(owned);
+PREP(parseList);
+PREP(player);
+PREP(playerSide);
+PREP(positionToASL);
+PREP(progressBar);
+PREP(readSettingFromModule);
+PREP(readSettingsFromParamsArray);
+PREP(receiveRequest);
+PREP(removeCanInteractWithCondition);
+PREP(removeSpecificMagazine);
+PREP(requestCallback);
+PREP(resetAllDefaults);
+PREP(restoreVariablesJIP);
+PREP(runAfterSettingsInit);
+PREP(sanitizeString);
+PREP(sendRequest);
+PREP(serverLog);
+PREP(setAllGear);
+PREP(setApproximateVariablePublic);
+PREP(setCaptivityStatus);
+PREP(setDefinedVariable);
+PREP(setDisableUserInputStatus);
+PREP(setForceWalkStatus);
+PREP(setHearingCapability);
+PREP(setName);
+PREP(setParameter);
+PREP(setPitchBankYaw);
+PREP(setProne);
+PREP(setSetting);
+PREP(setSettingFromConfig);
+PREP(setVariableJIP);
+PREP(setVariablePublic);
+PREP(setVolume);
+PREP(showHud);
+PREP(statusEffect_addType);
+PREP(statusEffect_get);
+PREP(statusEffect_localEH);
+PREP(statusEffect_resetVariables);
+PREP(statusEffect_respawnEH);
+PREP(statusEffect_sendEffects);
+PREP(statusEffect_set);
+PREP(stringCompare);
+PREP(stringToColoredText);
+PREP(stringRemoveWhiteSpace);
+PREP(switchToGroupSide);
+PREP(throttledPublicVariable);
+PREP(toBin);
+PREP(toBitmask);
+PREP(toHex);
+PREP(toNumber);
+PREP(unhideUnit);
+PREP(uniqueElements);
+PREP(unloadPerson);
+PREP(unloadPersonLocal);
+PREP(unmuteUnit);
+PREP(useItem);
+PREP(useMagazine);
+PREP(waitAndExecute);
+PREP(waitUntilAndExecute);
+PREP(waveHeightAt);
+
+PREP(translateToWeaponSpace);
+PREP(translateToModelSpace);
+
+// Model and drawing helpers
+PREP(worldToScreenBounds);
+
+// config items
+PREP(getConfigType);
+PREP(getItemType);
+PREP(getWeaponType);
+PREP(getWeaponModes);
+PREP(getWeaponMuzzles);
+
+// config objects
+PREP(getConfigTypeObject);
+PREP(getConfigGunner);
+PREP(getConfigCommander);
+PREP(getSelectionsWithoutHitPoints);
+PREP(getReflectorsWithSelections);
+PREP(getLightProperties);
+PREP(getLightPropertiesWeapon);
+PREP(getVehicleCrew);
+PREP(getVehicleUAVCrew);
+
+// turrets
+PREP(getTurrets);
+PREP(getTurretIndex);
+PREP(getTurretConfigPath);
+PREP(getTurretGunner);
+PREP(getTurretCommander);
+PREP(getTurretCopilot);
+PREP(getDoorTurrets);
+PREP(getTurretsFFV);
+PREP(getTurretsOther);
+PREP(hasHatch);
+
+// missing inventory commands
+PREP(binocularMagazine);
+PREP(removeBinocularMagazine);
+
+// ACE_Debug
+PREP(exportConfig);
+PREP(getChildren);
+PREP(getDisplayConfigName);
+PREP(monitor);
+PREP(showUser);
+
+PREP(dumpPerformanceCounters);
+PREP(dumpArray);
+
+// ACE_CuratorFix
+PREP(addCuratorUnloadEventhandler);
+PREP(fixCrateContent);
+
+PREP(globalEvent);
+PREP(_handleNetEvent);
+PREP(addEventHandler);
+PREP(targetEvent);
+PREP(serverEvent);
+PREP(localEvent);
+PREP(removeEventHandler);
+PREP(removeAlLEventHandlers);
+
+// Synchronized Events
+PREP(syncedEventPFH);
+PREP(addSyncedEventHandler);
+PREP(removeSyncedEventHandler);
+PREP(requestSyncedEvent);
+PREP(syncedEvent);
+
+PREP(_handleSyncedEvent);
+PREP(_handleRequestSyncedEvent);
+PREP(_handleRequestAllSyncedEvents);
+
+// other eventhandlers
+PREP(addActionEventHandler);
+PREP(addActionMenuEventHandler);
+PREP(addScrollWheelEventHandler);
+PREP(addMapMarkerCreatedEventHandler);
+
+PREP(removeActionEventHandler);
+PREP(removeActionMenuEventHandler);
+PREP(removeScrollWheelEventHandler);
+PREP(removeMapMarkerCreatedEventHandler);
+
+// hashes
+PREP(hashCreate);
+PREP(hashSet);
+PREP(hashGet);
+PREP(hashHasKey);
+PREP(hashRem);
+PREP(hashListCreateList);
+PREP(hashListCreateHash);
+PREP(hashListSelect);
+PREP(hashListSet);
+PREP(hashListPush);
+
+PREP(timePFH);
diff --git a/addons/common/XEH_mainDislayLoad.sqf b/addons/common/XEH_mainDislayLoad.sqf
new file mode 100644
index 0000000000..57ace32f94
--- /dev/null
+++ b/addons/common/XEH_mainDislayLoad.sqf
@@ -0,0 +1,6 @@
+#include "script_component.hpp"
+
+GVAR(ScrollWheelFrame) = diag_frameno;
+
+call COMPILE_FILE(init_handleScrollWheel);
+call COMPILE_FILE(init_handleModifierKey);
diff --git a/addons/common/XEH_postInit.sqf b/addons/common/XEH_postInit.sqf
index a7955789db..58e674dd8d 100644
--- a/addons/common/XEH_postInit.sqf
+++ b/addons/common/XEH_postInit.sqf
@@ -293,31 +293,6 @@ if (!hasInterface) exitWith {};
call FUNC(assignedItemFix);
-GVAR(ScrollWheelFrame) = diag_frameno;
-
-["mainDisplayLoaded", {
- [{
- call FUNC(handleScrollWheelInit);
- call FUNC(handleModifierKeyInit);
- }, [], 0.1] call FUNC(waitAndExecute); // needs delay, otherwise doesn't work without pressing "RESTART" in editor once. Tested in 1.52RC
-}] call FUNC(addEventHandler);
-
-// add PFH to execute event that fires when the main display (46) is created
-private _fnc_initMainDisplayCheck = {
- [{
- if !(isNull findDisplay 46) then {
- // Raise ACE event locally
- ["mainDisplayLoaded", [findDisplay 46]] call FUNC(localEvent);
- [_this select 1] call CBA_fnc_removePerFrameHandler;
- };
- }, 0, []] call CBA_fnc_addPerFrameHandler;
-};
-
-call _fnc_initMainDisplayCheck;
-
-// repeat this every time a savegame is loaded
-addMissionEventHandler ["Loaded", _fnc_initMainDisplayCheck];
-
// @todo remove?
enableCamShake true;
@@ -344,17 +319,6 @@ enableCamShake true;
// Set up numerous eventhanders for player controlled units
//////////////////////////////////////////////////
-//CBA has events for zeus's display onLoad and onUnload (Need to delay a frame for display to be ready)
-private _zeusDisplayChangedFNC = {
- [{
- private _data = !(isNull findDisplay 312);
- ["zeusDisplayChanged", [ACE_player, _data]] call FUNC(localEvent);
- }, []] call FUNC(execNextFrame);
-};
-["CBA_curatorOpened", _zeusDisplayChangedFNC] call CBA_fnc_addEventHandler;
-["CBA_curatorClosed", _zeusDisplayChangedFNC] call CBA_fnc_addEventHandler;
-
-
// default variables
GVAR(OldPlayerVehicle) = vehicle objNull;
GVAR(OldPlayerTurret) = [objNull] call FUNC(getTurretIndex);
@@ -444,14 +408,6 @@ if (!isNil QGVAR(PreInit_playerChanged_PFHID)) then {
["visibleMapChanged", [ACE_player, _data]] call FUNC(localEvent);
};
- // "inventoryDisplayChanged" event
- _data = !(isNull findDisplay 602);
- if !(_data isEqualTo GVAR(OldInventoryDisplayIsOpen)) then {
- // Raise ACE event locally
- GVAR(OldInventoryDisplayIsOpen) = _data;
- ["inventoryDisplayChanged", [ACE_player, _data]] call FUNC(localEvent);
- };
-
// "activeCameraChanged" event
_data = call FUNC(isfeatureCameraActive);
if !(_data isEqualTo GVAR(OldIsCamera)) then {
diff --git a/addons/common/XEH_preInit.sqf b/addons/common/XEH_preInit.sqf
index 1314548fb0..20b3692b9f 100644
--- a/addons/common/XEH_preInit.sqf
+++ b/addons/common/XEH_preInit.sqf
@@ -3,296 +3,22 @@
ADDON = false;
-PREP(addCanInteractWithCondition);
-PREP(addLineToDebugDraw);
-PREP(addSetting);
-PREP(addToInventory);
-PREP(assignedItemFix);
-PREP(assignObjectsInList);
-PREP(ambientBrightness);
-PREP(ASLToPosition);
-PREP(binarizeNumber);
-PREP(blurScreen);
-PREP(cachedCall);
-PREP(canGetInPosition);
-PREP(canInteractWith);
-PREP(canUseWeapon);
-PREP(changeProjectileDirection);
-PREP(checkFiles);
-PREP(checkPBOs);
-PREP(claim);
-PREP(codeToString);
-PREP(createOrthonormalReference);
-PREP(currentChannel);
-PREP(debug);
-PREP(debugModule);
-PREP(defineVariable);
-PREP(deviceKeyFindValidIndex);
-PREP(deviceKeyRegisterNew);
-PREP(disableAI);
-PREP(disableUserInput);
-PREP(displayIcon);
-PREP(displayText);
-PREP(displayTextPicture);
-PREP(displayTextStructured);
-PREP(doAnimation);
-PREP(dropBackpack);
-PREP(endRadioTransmission);
-PREP(eraseCache);
-PREP(errorMessage);
-PREP(execNextFrame);
-PREP(execPersistentFnc);
-PREP(execRemoteFnc);
-PREP(executePersistent);
-PREP(filter);
-PREP(findUnloadPosition);
-PREP(firedEH);
-PREP(fixCollision);
-PREP(fixFloating);
-PREP(fixLoweredRifleAnimation);
-PREP(fixPosition);
-PREP(getAllDefinedSetVariables);
-PREP(getAllGear);
-PREP(getDeathAnim);
-PREP(getCaptivityStatus);
-PREP(getDefaultAnim);
-PREP(getDefinedVariable);
-PREP(getDefinedVariableDefault);
-PREP(getDefinedVariableInfo);
-PREP(getFirstObjectIntersection);
-PREP(getFirstTerrainIntersection);
-PREP(getForceWalkStatus);
-PREP(getGunner);
-PREP(getInPosition);
-PREP(getMapGridData);
-PREP(getMapGridFromPos);
-PREP(getMapPosFromGrid);
-PREP(getMarkerType);
-PREP(getMGRSdata);
-PREP(getName);
-PREP(getNumberFromMissionSQM);
-PREP(getNumberMagazinesIn);
-PREP(getPitchBankYaw);
-PREP(getSettingData);
-PREP(getStaminaBarControl);
-PREP(getStringFromMissionSQM);
-PREP(getTargetAzimuthAndInclination);
-PREP(getTargetDistance);
-PREP(getTargetObject);
-PREP(getTurnedOnLights);
-PREP(getTurretDirection);
-PREP(getUavControlPosition);
-PREP(getVehicleCargo);
-PREP(getVehicleCodriver);
-PREP(getVersion);
-PREP(getWeaponAzimuthAndInclination);
-PREP(getWeaponIndex);
-PREP(getWeaponState);
-PREP(getWindDirection);
-PREP(getZoom);
-PREP(goKneeling);
-PREP(hadamardProduct);
-PREP(handleModifierKey);
-PREP(handleModifierKeyUp);
-PREP(handleModifierKeyInit);
-PREP(handleScrollWheel);
-PREP(handleScrollWheelInit);
-PREP(hasItem);
-PREP(hasMagazine);
-PREP(headBugFix);
-PREP(hideUnit);
-PREP(insertionSort);
-PREP(interpolateFromArray);
-PREP(inTransitionAnim);
-PREP(isAutoWind);
-PREP(isAwake);
-PREP(isEngineer);
-PREP(isEOD);
-PREP(isFeatureCameraActive);
-PREP(isInBuilding);
-PREP(isModLoaded);
-PREP(isPlayer);
-PREP(isUnderwater);
-PREP(lightIntensityFromObject);
-PREP(loadPerson);
-PREP(loadPersonLocal);
-PREP(loadSettingsFromProfile);
-PREP(loadSettingsOnServer);
-PREP(loadSettingsLocalizedText);
-PREP(map);
-PREP(moduleCheckPBOs);
-PREP(moduleLSDVehicles);
-PREP(muteUnit);
-PREP(muteUnitHandleInitPost);
-PREP(muteUnitHandleRespawn);
-PREP(numberToDigits);
-PREP(numberToDigitsString);
-PREP(numberToString);
-PREP(onAnswerRequest);
-PREP(owned);
-PREP(parseList);
-PREP(player);
-PREP(playerSide);
-PREP(positionToASL);
-PREP(progressBar);
-PREP(readSettingFromModule);
-PREP(readSettingsFromParamsArray);
-PREP(receiveRequest);
-PREP(removeCanInteractWithCondition);
-PREP(removeSpecificMagazine);
-PREP(requestCallback);
-PREP(resetAllDefaults);
-PREP(restoreVariablesJIP);
-PREP(runAfterSettingsInit);
-PREP(sanitizeString);
-PREP(selectWeaponMode);
-PREP(sendRequest);
-PREP(serverLog);
-PREP(setAllGear);
-PREP(setApproximateVariablePublic);
-PREP(setCaptivityStatus);
-PREP(setDefinedVariable);
-PREP(setDisableUserInputStatus);
-PREP(setForceWalkStatus);
-PREP(setHearingCapability);
-PREP(setName);
-PREP(setParameter);
-PREP(setPitchBankYaw);
-PREP(setProne);
-PREP(setSetting);
-PREP(setSettingFromConfig);
-PREP(setVariableJIP);
-PREP(setVariablePublic);
-PREP(setVolume);
-PREP(showHud);
-PREP(statusEffect_addType);
-PREP(statusEffect_get);
-PREP(statusEffect_localEH);
-PREP(statusEffect_resetVariables);
-PREP(statusEffect_respawnEH);
-PREP(statusEffect_sendEffects);
-PREP(statusEffect_set);
-PREP(stringCompare);
-PREP(stringToColoredText);
-PREP(stringRemoveWhiteSpace);
-PREP(switchToGroupSide);
-PREP(throttledPublicVariable);
-PREP(toBin);
-PREP(toBitmask);
-PREP(toHex);
-PREP(toNumber);
-PREP(unhideUnit);
-PREP(uniqueElements);
-PREP(unloadPerson);
-PREP(unloadPersonLocal);
-PREP(unmuteUnit);
-PREP(useItem);
-PREP(useMagazine);
-PREP(waitAndExecute);
-PREP(waitUntilAndExecute);
-PREP(waveHeightAt);
-
-PREP(translateToWeaponSpace);
-PREP(translateToModelSpace);
-
-// Model and drawing helpers
-PREP(worldToScreenBounds);
-
-// config items
-PREP(getConfigType);
-PREP(getItemType);
-PREP(getWeaponType);
-PREP(getWeaponModes);
-PREP(getWeaponMuzzles);
-
-// config objects
-PREP(getConfigTypeObject);
-PREP(getConfigGunner);
-PREP(getConfigCommander);
-PREP(getSelectionsWithoutHitPoints);
-PREP(getReflectorsWithSelections);
-PREP(getLightProperties);
-PREP(getLightPropertiesWeapon);
-PREP(getVehicleCrew);
-PREP(getVehicleUAVCrew);
-
-// turrets
-PREP(getTurrets);
-PREP(getTurretIndex);
-PREP(getTurretConfigPath);
-PREP(getTurretGunner);
-PREP(getTurretCommander);
-PREP(getTurretCopilot);
-PREP(getDoorTurrets);
-PREP(getTurretsFFV);
-PREP(getTurretsOther);
-PREP(hasHatch);
-
-// missing inventory commands
-PREP(binocularMagazine);
-PREP(removeBinocularMagazine);
-
-// ACE_Debug
-PREP(exportConfig);
-PREP(getChildren);
-PREP(getDisplayConfigName);
-PREP(monitor);
-PREP(showUser);
-
-PREP(dumpPerformanceCounters);
-PREP(dumpArray);
-
-// ACE_CuratorFix
-PREP(addCuratorUnloadEventhandler);
-PREP(fixCrateContent);
+#include "XEH_PREP.hpp"
//ACE events global variables
GVAR(eventsLocation) = createLocation ["ACE_HashLocation", [-10000,-10000,-10000], 0, 0];
GVAR(eventsLocation) setText QGVAR(eventsLocation);
-PREP(globalEvent);
-PREP(_handleNetEvent);
-PREP(addEventHandler);
-PREP(objectEvent);
-PREP(targetEvent);
-PREP(serverEvent);
-PREP(localEvent);
-PREP(removeEventHandler);
-PREP(removeAlLEventHandlers);
+// backwards comp
+DFUNC(canUseWeapon) = {
+ ACE_DEPRECATED("ace_common_fnc_canUseWeapon","3.7.0","CBA_fnc_canUseWeapon");
+ _this call CBA_fnc_canUseWeapon;
+};
-// Synchronized Events
-PREP(syncedEventPFH);
-PREP(addSyncedEventHandler);
-PREP(removeSyncedEventHandler);
-PREP(requestSyncedEvent);
-PREP(syncedEvent);
-
-PREP(_handleSyncedEvent);
-PREP(_handleRequestSyncedEvent);
-PREP(_handleRequestAllSyncedEvents);
-
-// other eventhandlers
-PREP(addActionEventHandler);
-PREP(addActionMenuEventHandler);
-PREP(addScrollWheelEventHandler);
-PREP(addMapMarkerCreatedEventHandler);
-
-PREP(removeActionEventHandler);
-PREP(removeActionMenuEventHandler);
-PREP(removeScrollWheelEventHandler);
-PREP(removeMapMarkerCreatedEventHandler);
-
-// hashes
-PREP(hashCreate);
-PREP(hashSet);
-PREP(hashGet);
-PREP(hashHasKey);
-PREP(hashRem);
-PREP(hashListCreateList);
-PREP(hashListCreateHash);
-PREP(hashListSelect);
-PREP(hashListSet);
-PREP(hashListPush);
+DFUNC(selectWeaponMode) = {
+ ACE_DEPRECATED("ace_common_fnc_selectWeaponMode","3.7.0","CBA_fnc_selectWeapon");
+ _this call CBA_fnc_selectWeapon;
+};
GVAR(syncedEvents) = HASH_CREATE;
GVAR(showHudHash) = [] call FUNC(hashCreate);
@@ -356,7 +82,6 @@ ACE_gameTime = time;
ACE_pausedTime = 0;
ACE_virtualPausedTime = 0;
-PREP(timePFH);
[FUNC(timePFH), 0, []] call CBA_fnc_addPerFrameHandler;
// Init toHex
diff --git a/addons/common/XEH_preStart.sqf b/addons/common/XEH_preStart.sqf
new file mode 100644
index 0000000000..022888575e
--- /dev/null
+++ b/addons/common/XEH_preStart.sqf
@@ -0,0 +1,3 @@
+#include "script_component.hpp"
+
+#include "XEH_PREP.hpp"
diff --git a/addons/common/config.cpp b/addons/common/config.cpp
index 8050943803..cbe5c5df6a 100644
--- a/addons/common/config.cpp
+++ b/addons/common/config.cpp
@@ -8,7 +8,7 @@ class CfgPatches {
requiredAddons[] = {"ace_main","ace_modules"};
author[] = {"KoffeinFlummi"};
authorUrl = "https://github.com/KoffeinFlummi/";
- VERSION_CONFIG;
+ VERSION_CONFIG_COMMON;
};
};
@@ -86,14 +86,6 @@ class CfgUIGrids {
};
};
-/*
-// check dll
-class RscStandardDisplay;
-class RscDisplayMain: RscStandardDisplay {
- onLoad = QUOTE([ARR_4(""onLoad"",_this,""RscDisplayMain"",'GUI')] call (uinamespace getVariable 'BIS_fnc_initDisplay'); [ARR_5('header','tail',{0},{},_this select 0)] call COMPILE_FILE(functions\fnc_errorMessage));
-};
-*/
-
class ACE_Extensions {
extensions[] = {};
};
diff --git a/addons/common/functions/fnc_canUseWeapon.sqf b/addons/common/functions/fnc_canUseWeapon.sqf
deleted file mode 100644
index a92d0a2b97..0000000000
--- a/addons/common/functions/fnc_canUseWeapon.sqf
+++ /dev/null
@@ -1,23 +0,0 @@
-/*
- * Author: commy2
- * Check if the unit can use a Weapon.
- * Returns true if the unit is on foot or in a FFV position.
- *
- * Arguments:
- * 0: The Unit