From 432607cf465cb8f7eed9642bb979507ef7ccd808 Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Wed, 26 Jul 2023 13:56:07 -0500 Subject: [PATCH 1/6] XEH - Move compats to individual addons --- addons/ee/addon.toml | 2 + addons/ee/compat_contact/config.cpp | 69 ++++++++++++++ addons/ee/compat_csla/config.cpp | 61 ++++++++++++ addons/ee/compat_sog/config.cpp | 56 +++++++++++ addons/ee/compat_ws/config.cpp | 84 ++++++++++++++++ addons/ee/config.cpp | 25 ----- addons/ee/script_component.hpp | 10 ++ addons/xeh/CfgVehicles.hpp | 142 ---------------------------- tools/make.py | 18 +++- 9 files changed, 297 insertions(+), 170 deletions(-) create mode 100644 addons/ee/addon.toml create mode 100644 addons/ee/compat_contact/config.cpp create mode 100644 addons/ee/compat_csla/config.cpp create mode 100644 addons/ee/compat_sog/config.cpp create mode 100644 addons/ee/compat_ws/config.cpp diff --git a/addons/ee/addon.toml b/addons/ee/addon.toml new file mode 100644 index 0000000000..7cfef775ee --- /dev/null +++ b/addons/ee/addon.toml @@ -0,0 +1,2 @@ +[preprocess] +enabled = false diff --git a/addons/ee/compat_contact/config.cpp b/addons/ee/compat_contact/config.cpp new file mode 100644 index 0000000000..3855a34cdb --- /dev/null +++ b/addons/ee/compat_contact/config.cpp @@ -0,0 +1,69 @@ +#include "\x\cba\addons\ee\script_component.hpp" +#undef COMPONENT +#define COMPONENT ee_compat_contact + +#if __has_include("\a3\Data_F_Contact\config.bin") +#else +#define PATCH_SKIP "Contact DLC" +#endif + +#ifdef PATCH_SKIP +CBA_EE_PATCH_NOT_LOADED(ADDON,PATCH_SKIP) +#else +class CfgPatches { + class ADDON { + units[] = {}; + weapons[] = {}; + requiredVersion = REQUIRED_VERSION; + requiredAddons[] = { "cba_xeh", "A3_Data_F_Contact" }; + author = "$STR_CBA_Author"; + VERSION_CONFIG; + // this prevents any patched class from requiring XEH + addonRootClass = "A3_Characters_F"; + }; +}; +class XEH_CLASS_BASE; + +class CfgVehicles { + class B_W_Soldier_F; + class B_W_Story_Protagonist_01_F: B_W_Soldier_F { + XEH_ENABLED; + }; + class B_W_Story_Major_01_F: B_W_Soldier_F { + XEH_ENABLED; + }; + class B_W_Story_Instructor_01_F: B_W_Soldier_F { + XEH_ENABLED; + }; + class B_W_Story_Soldier_01_F: B_W_Soldier_F { + XEH_ENABLED; + }; + class B_W_Story_Leader_01_F: B_W_Soldier_F { + XEH_ENABLED; + }; + + class Logic; + class VirtualAISquad: Logic { + XEH_ENABLED; + }; + + class Thing; + class Particle_Base_F: Thing { + XEH_ENABLED; + }; + + class Alien_Extractor_01_base_F; + class Alien_Extractor_01_generic_base_F: Alien_Extractor_01_base_F { + XEH_ENABLED; + }; + + class ThingX; + class Alien_MatterBall_01_base_F: ThingX { + XEH_ENABLED; + }; + class Alien_MatterBall_01_falling_F: Alien_MatterBall_01_base_F { + XEH_ENABLED; + }; +}; + +#endif diff --git a/addons/ee/compat_csla/config.cpp b/addons/ee/compat_csla/config.cpp new file mode 100644 index 0000000000..29c80b712a --- /dev/null +++ b/addons/ee/compat_csla/config.cpp @@ -0,0 +1,61 @@ +#include "\x\cba\addons\ee\script_component.hpp" +#undef COMPONENT +#define COMPONENT ee_compat_csla + +#if __has_include("\csla_cfg\config.bin") +#else +#define PATCH_SKIP "CSLA - Iron Curtain" +#endif + +#ifdef PATCH_SKIP +CBA_EE_PATCH_NOT_LOADED(ADDON,PATCH_SKIP) +#else +class CfgPatches { + class ADDON { + units[] = {}; + weapons[] = {}; + requiredVersion = REQUIRED_VERSION; + requiredAddons[] = { "cba_xeh", "CSLA", "US85" }; + author = "$STR_CBA_Author"; + VERSION_CONFIG; + // this prevents any patched class from requiring XEH + addonRootClass = "A3_Characters_F"; + }; +}; +class XEH_CLASS_BASE; + +class CfgVehicles { + class StaticATWeapon; + class CSLA_9K113_Stat: StaticATWeapon { + XEH_ENABLED; + }; + + class CSLA_M52_Stat: Mortar_01_base_F { + XEH_ENABLED; + }; + + class CSLA_CIV_AN2_wreck: PlaneWreck { + XEH_ENABLED; + }; + + class CSLA_Plane_base_F: Plane_Base_F {}; + class CSLA_CIV_Plane_base_F: CSLA_Plane_base_F {}; + class CSLA_CIV_Plane_base: CSLA_CIV_Plane_base_F { + XEH_ENABLED; + }; + + class StaticMGWeapon; + class CSLA_UK59L_Stat: StaticMGWeapon { + XEH_ENABLED; + }; + + class CSLA_UK59T_Stat: StaticMGWeapon { + XEH_ENABLED; + }; + + class US85_M252_Stat: Mortar_01_base_F { + XEH_ENABLED; + }; +}; + +#endif diff --git a/addons/ee/compat_sog/config.cpp b/addons/ee/compat_sog/config.cpp new file mode 100644 index 0000000000..46f5d2d573 --- /dev/null +++ b/addons/ee/compat_sog/config.cpp @@ -0,0 +1,56 @@ +#include "\x\cba\addons\ee\script_component.hpp" +#undef COMPONENT +#define COMPONENT ee_compat_sog + +#if __has_include("\vn\weapons_f_vietnam\config.bin") +#else +#define PATCH_SKIP "SOG-Vietnam" +#endif + +#ifdef PATCH_SKIP +CBA_EE_PATCH_NOT_LOADED(ADDON,PATCH_SKIP) +#else +class CfgPatches { + class ADDON { + units[] = {}; + weapons[] = {}; + requiredVersion = REQUIRED_VERSION; + requiredAddons[] = { "cba_xeh", "loadorder_f_vietnam" }; + author = "$STR_CBA_Author"; + VERSION_CONFIG; + // this prevents any patched class from requiring XEH + addonRootClass = "A3_Characters_F"; + }; +}; +class XEH_CLASS_BASE; + +class CfgVehicles { + class vn_object_b_base_02; + class Land_vn_candle_01: vn_object_b_base_02 { + XEH_ENABLED; + }; + + class Snake_random_F; + class vn_krait: Snake_random_F { + XEH_ENABLED; + }; + + class ParachuteBase; + class vn_parachute_base: ParachuteBase { + XEH_ENABLED; + }; + + class vn_parachute_02_base: ParachuteBase {}; + class vn_b_parachute_02: vn_parachute_02_base {}; + class vn_b_parachute_02_blu82: vn_b_parachute_02 {}; + class vn_b_parachute_02_blu82_airdrop: vn_b_parachute_02_blu82 { + XEH_ENABLED; + }; + + class PlaneWreck; + class vn_o_static_rsna75_wreck: PlaneWreck { + XEH_ENABLED; + }; +}; + +#endif diff --git a/addons/ee/compat_ws/config.cpp b/addons/ee/compat_ws/config.cpp new file mode 100644 index 0000000000..2cc48549c4 --- /dev/null +++ b/addons/ee/compat_ws/config.cpp @@ -0,0 +1,84 @@ +#include "\x\cba\addons\ee\script_component.hpp" +#undef COMPONENT +#define COMPONENT ee_compat_ws + +#if __has_include("\lxWS\data_f_lxWS\config.bin") +#else +#define PATCH_SKIP "Western Sahara" +#endif + +#ifdef PATCH_SKIP +CBA_EE_PATCH_NOT_LOADED(ADDON,PATCH_SKIP) +#else +class CfgPatches { + class ADDON { + units[] = {}; + weapons[] = {}; + requiredVersion = REQUIRED_VERSION; + requiredAddons[] = { "cba_xeh", "data_f_lxWS" }; + author = "$STR_CBA_Author"; + VERSION_CONFIG; + // this prevents any patched class from requiring XEH + addonRootClass = "A3_Characters_F"; + }; +}; +class XEH_CLASS_BASE; + +class CfgVehicles { + class Land_PowerPoleWooden_lxWS: PowerLines_Small_base_F { + XEH_ENABLED; + }; + class Land_PowerPoleWooden_L_lxWS: PowerLines_Small_base_F { + XEH_ENABLED; + }; + class Land_PowerPoleWooden_L_off_lxWS: PowerLines_Small_base_F { + XEH_ENABLED; + }; + + class Site_Camels_lxWS: Module_F { + XEH_ENABLED; + }; + + class C_Journalist_lxWS: C_journalist_F { + XEH_ENABLED; + }; + + class C_Man_casual_1_F_afro; + class C_Tak_01_A_lxWS: C_Man_casual_1_F_afro { + XEH_ENABLED; + }; + + class B_Soldier_TL_F; + class B_ION_Story_Givens_lxWS: B_Soldier_TL_F { + XEH_ENABLED; + }; + + class B_Soldier_F; + class I_PMC_Soldier_01_lxWS: B_Soldier_F { + }; + class I_PMC_Story_Gustavo_lxWS: I_PMC_Soldier_01_lxWS { + XEH_ENABLED; + }; + + class I_SFIA_officer_lxWS: I_officer_F { + }; + class I_SFIA_Said_lxWS: I_SFIA_officer_lxWS { + XEH_ENABLED; + }; + + class Truck_02_base_F; + class Truck_02_cargo_base_lxWS: Truck_02_base_F { + XEH_ENABLED; + }; + class Truck_02_box_base_lxWS: Truck_02_base_F { + XEH_ENABLED; + }; + class Truck_02_Ammo_base_lxWS: Truck_02_base_F { + XEH_ENABLED; + }; + class Truck_02_aa_base_lxWS: Truck_02_base_F { + XEH_ENABLED; + }; +}; + +#endif diff --git a/addons/ee/config.cpp b/addons/ee/config.cpp index e8c52941e3..9a5d0afb9c 100644 --- a/addons/ee/config.cpp +++ b/addons/ee/config.cpp @@ -6,28 +6,3 @@ class CfgPatches { units[] = {}; }; }; -class XEH_CLASS_BASE; - -class CfgVehicles { - class B_W_Soldier_F; - class B_W_Story_Protagonist_01_F: B_W_Soldier_F { - XEH_ENABLED; - scope = "1 + parseNumber isClass (configFile >> 'CfgPatches' >> 'A3_Data_F_Contact')"; // Inherits from a public base class. Downgrade to protected if Contact component is not loaded. - }; - class B_W_Story_Major_01_F: B_W_Soldier_F { - XEH_ENABLED; - scope = "1 + parseNumber isClass (configFile >> 'CfgPatches' >> 'A3_Data_F_Contact')"; - }; - class B_W_Story_Instructor_01_F: B_W_Soldier_F { - XEH_ENABLED; - scope = "1 + parseNumber isClass (configFile >> 'CfgPatches' >> 'A3_Data_F_Contact')"; - }; - class B_W_Story_Soldier_01_F: B_W_Soldier_F { - XEH_ENABLED; - scope = "1 + parseNumber isClass (configFile >> 'CfgPatches' >> 'A3_Data_F_Contact')"; - }; - class B_W_Story_Leader_01_F: B_W_Soldier_F { - XEH_ENABLED; - scope = "1 + parseNumber isClass (configFile >> 'CfgPatches' >> 'A3_Data_F_Contact')"; - }; -}; diff --git a/addons/ee/script_component.hpp b/addons/ee/script_component.hpp index 873a532436..607b347874 100644 --- a/addons/ee/script_component.hpp +++ b/addons/ee/script_component.hpp @@ -1 +1,11 @@ #include "\x\cba\addons\xeh\script_component.hpp" + +// macro add a dummy cfgPatch +#define CBA_EE_PATCH_NOT_LOADED(NAME,CAUSE) \ +class CfgPatches { \ + class DOUBLES(NAME,notLoaded) { \ + units[] = {}; \ + weapons[] = {}; \ + cba_not_loaded = CAUSE; \ + }; \ +}; diff --git a/addons/xeh/CfgVehicles.hpp b/addons/xeh/CfgVehicles.hpp index eca2c913a4..efe84d6270 100644 --- a/addons/xeh/CfgVehicles.hpp +++ b/addons/xeh/CfgVehicles.hpp @@ -368,28 +368,6 @@ class CfgVehicles { XEH_ENABLED; }; - // Contact - class VirtualAISquad: Logic { - XEH_ENABLED; - }; - - class Particle_Base_F: Thing { - XEH_ENABLED; - }; - - // Class does not exist without optional Contact component. Recreate inheritance tree up to existing base class. - class Alien_Extractor_01_base_F: Items_base_F {}; - class Alien_Extractor_01_generic_base_F: Alien_Extractor_01_base_F { - XEH_ENABLED; - }; - - class Alien_MatterBall_01_base_F: ThingX { - XEH_ENABLED; - }; - class Alien_MatterBall_01_falling_F: Alien_MatterBall_01_base_F { - XEH_ENABLED; - }; - class O_R_Soldier_Base_F; class O_R_Story_Capitan_01_F: O_R_Soldier_Base_F { XEH_ENABLED; @@ -397,7 +375,6 @@ class CfgVehicles { class O_R_Story_TL_01_F: O_R_Soldier_Base_F { XEH_ENABLED; }; - class C_Story_Scientist_01_F: Civilian_F { XEH_ENABLED; }; @@ -427,123 +404,4 @@ class CfgVehicles { class GalleryDioramaUnit_01_base_F: Items_base_F { XEH_ENABLED; }; - - // SOG PF - class vn_object_b_base_02: Items_base_F {}; - class Land_vn_candle_01: vn_object_b_base_02 { - XEH_ENABLED; - }; - - class vn_krait: Snake_random_F { - XEH_ENABLED; - }; - - class vn_parachute_base: ParachuteBase { - XEH_ENABLED; - }; - - class vn_parachute_02_base: ParachuteBase {}; - class vn_b_parachute_02: vn_parachute_02_base {}; - class vn_b_parachute_02_blu82: vn_b_parachute_02 {}; - class vn_b_parachute_02_blu82_airdrop: vn_b_parachute_02_blu82 { - XEH_ENABLED; - }; - - class vn_o_static_rsna75_wreck: PlaneWreck { - XEH_ENABLED; - }; - - // CSLA - class StaticATWeapon; - class CSLA_9K113_Stat: StaticATWeapon { - XEH_ENABLED; - }; - - class CSLA_M52_Stat: Mortar_01_base_F { - XEH_ENABLED; - }; - - class CSLA_CIV_AN2_wreck: PlaneWreck { - XEH_ENABLED; - }; - - class CSLA_Plane_base_F: Plane_Base_F {}; - class CSLA_CIV_Plane_base_F: CSLA_Plane_base_F {}; - class CSLA_CIV_Plane_base: CSLA_CIV_Plane_base_F { - XEH_ENABLED; - }; - - class StaticMGWeapon; - class CSLA_UK59L_Stat: StaticMGWeapon { - XEH_ENABLED; - }; - - class CSLA_UK59T_Stat: StaticMGWeapon { - XEH_ENABLED; - }; - - class US85_M252_Stat: Mortar_01_base_F { - XEH_ENABLED; - }; - - // Western Sahara - class Land_PowerPoleWooden_lxWS: PowerLines_Small_base_F { - XEH_ENABLED; - }; - class Land_PowerPoleWooden_L_lxWS: PowerLines_Small_base_F { - XEH_ENABLED; - }; - class Land_PowerPoleWooden_L_off_lxWS: PowerLines_Small_base_F { - XEH_ENABLED; - }; - - class Site_Camels_lxWS: Module_F { - XEH_ENABLED; - }; - - class C_Journalist_lxWS: C_journalist_F { - scope = "1 + parseNumber isClass (configFile >> 'CfgPatches' >> 'data_f_lxWS')"; - XEH_ENABLED; - }; - - class C_Man_casual_1_F_afro; - class C_Tak_01_A_lxWS: C_Man_casual_1_F_afro { - scope = "1 + parseNumber isClass (configFile >> 'CfgPatches' >> 'data_f_lxWS')"; - XEH_ENABLED; - }; - - class B_Soldier_TL_F; - class B_ION_Story_Givens_lxWS: B_Soldier_TL_F { - scope = "1 + parseNumber isClass (configFile >> 'CfgPatches' >> 'data_f_lxWS')"; - XEH_ENABLED; - }; - - class B_Soldier_F; - class I_PMC_Soldier_01_lxWS: B_Soldier_F { - scope = "1 + parseNumber isClass (configFile >> 'CfgPatches' >> 'data_f_lxWS')"; - }; - class I_PMC_Story_Gustavo_lxWS: I_PMC_Soldier_01_lxWS { - XEH_ENABLED; - }; - - class I_SFIA_officer_lxWS: I_officer_F { - scope = "1 + parseNumber isClass (configFile >> 'CfgPatches' >> 'data_f_lxWS')"; - }; - class I_SFIA_Said_lxWS: I_SFIA_officer_lxWS { - XEH_ENABLED; - }; - - class Truck_02_base_F; - class Truck_02_cargo_base_lxWS: Truck_02_base_F { - XEH_ENABLED; - }; - class Truck_02_box_base_lxWS: Truck_02_base_F { - XEH_ENABLED; - }; - class Truck_02_Ammo_base_lxWS: Truck_02_base_F { - XEH_ENABLED; - }; - class Truck_02_aa_base_lxWS: Truck_02_base_F { - XEH_ENABLED; - }; }; diff --git a/tools/make.py b/tools/make.py index 301edfb3d1..ba6837f0ce 100644 --- a/tools/make.py +++ b/tools/make.py @@ -1293,12 +1293,24 @@ def main(argv): version_stamp_pboprefix(module,commit_id) - if os.path.isfile(nobinFilePath): + skipPreprocessing = False + addonTomlPath = os.path.join(work_drive, prefix, module, "addon.toml") + if os.path.isfile(addonTomlPath): + with open(addonTomlPath, "r") as f: + tomlFile = f.read() + if "preprocess = false" in tomlFile: + print_error("'preprocess = false' not supported") + raise + skipPreprocessing = "[preprocess]\nenabled = false" in tomlFile + + if os.path.isfile(os.path.join(work_drive, prefix, module, "$NOBIN$")): print_green("$NOBIN$ Found. Proceeding with non-binarizing!") cmd = [makepboTool, "-P","-A","-X=*.backup", os.path.join(work_drive, prefix, module),os.path.join(module_root, release_dir, project,"addons")] - + elif skipPreprocessing: + print_green("addon.toml set [preprocess.enabled = false]. Proceeding with non-binerized config build!") + cmd = [pboproject, "-B", "-P", os.path.join(work_drive, prefix, module), "+Engine=Arma3", "-S", "+Noisy", "+Clean", "-Warnings", "+Mod="+os.path.join(module_root, release_dir, project), "-Key"] else: - cmd = [pboproject, "-P", os.path.join(work_drive, prefix, module), "+Engine=Arma3", "-S", "+Noisy", "+Clean", "-Warnings", "+Mod="+os.path.join(module_root, release_dir, project), "-Key"] + cmd = [pboproject, "+B", "-P", os.path.join(work_drive, prefix, module), "+Engine=Arma3", "-S", "+Noisy", "+Clean", "-Warnings", "+Mod="+os.path.join(module_root, release_dir, project), "-Key"] color("grey") if quiet: From 0407fe5f7bba6f1831187023e46ec60021386f3c Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Sun, 20 Aug 2023 12:05:48 -0500 Subject: [PATCH 2/6] Update pboproject.yml --- .github/workflows/pboproject.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/pboproject.yml b/.github/workflows/pboproject.yml index b09abe5fad..fd4aa22b28 100644 --- a/.github/workflows/pboproject.yml +++ b/.github/workflows/pboproject.yml @@ -15,7 +15,7 @@ jobs: with: toolsUrl: ${{ secrets.ARMA3_TOOLS_URL }} - name: Install Mikero Tools - uses: arma-actions/mikero-tools@2021-11-06 + uses: arma-actions/mikero-tools@2023-01-04 - name: Download game data run: | Invoke-WebRequest "$env:ARMA3_DATA_URL" -OutFile arma3.zip From 1c1141c1e51f247a56e0ac55f7726be7db952499 Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Sun, 20 Aug 2023 12:24:09 -0500 Subject: [PATCH 3/6] test and prep for skipWhenMissingDependencies --- addons/ee/compat_contact/config.cpp | 1 + addons/ee/compat_csla/config.cpp | 4 ++++ addons/ee/compat_sog/config.cpp | 1 + addons/ee/compat_ws/config.cpp | 5 +++++ 4 files changed, 11 insertions(+) diff --git a/addons/ee/compat_contact/config.cpp b/addons/ee/compat_contact/config.cpp index 3855a34cdb..07ff34a759 100644 --- a/addons/ee/compat_contact/config.cpp +++ b/addons/ee/compat_contact/config.cpp @@ -16,6 +16,7 @@ class CfgPatches { weapons[] = {}; requiredVersion = REQUIRED_VERSION; requiredAddons[] = { "cba_xeh", "A3_Data_F_Contact" }; + skipWhenMissingDependencies = 1; author = "$STR_CBA_Author"; VERSION_CONFIG; // this prevents any patched class from requiring XEH diff --git a/addons/ee/compat_csla/config.cpp b/addons/ee/compat_csla/config.cpp index 29c80b712a..6739eff580 100644 --- a/addons/ee/compat_csla/config.cpp +++ b/addons/ee/compat_csla/config.cpp @@ -16,6 +16,7 @@ class CfgPatches { weapons[] = {}; requiredVersion = REQUIRED_VERSION; requiredAddons[] = { "cba_xeh", "CSLA", "US85" }; + skipWhenMissingDependencies = 1; author = "$STR_CBA_Author"; VERSION_CONFIG; // this prevents any patched class from requiring XEH @@ -30,14 +31,17 @@ class CfgVehicles { XEH_ENABLED; }; + class Mortar_01_base_F; class CSLA_M52_Stat: Mortar_01_base_F { XEH_ENABLED; }; + class PlaneWreck; class CSLA_CIV_AN2_wreck: PlaneWreck { XEH_ENABLED; }; + class Plane_Base_F; class CSLA_Plane_base_F: Plane_Base_F {}; class CSLA_CIV_Plane_base_F: CSLA_Plane_base_F {}; class CSLA_CIV_Plane_base: CSLA_CIV_Plane_base_F { diff --git a/addons/ee/compat_sog/config.cpp b/addons/ee/compat_sog/config.cpp index 46f5d2d573..2e1aac3157 100644 --- a/addons/ee/compat_sog/config.cpp +++ b/addons/ee/compat_sog/config.cpp @@ -16,6 +16,7 @@ class CfgPatches { weapons[] = {}; requiredVersion = REQUIRED_VERSION; requiredAddons[] = { "cba_xeh", "loadorder_f_vietnam" }; + skipWhenMissingDependencies = 1; author = "$STR_CBA_Author"; VERSION_CONFIG; // this prevents any patched class from requiring XEH diff --git a/addons/ee/compat_ws/config.cpp b/addons/ee/compat_ws/config.cpp index 2cc48549c4..f028059a5d 100644 --- a/addons/ee/compat_ws/config.cpp +++ b/addons/ee/compat_ws/config.cpp @@ -16,6 +16,7 @@ class CfgPatches { weapons[] = {}; requiredVersion = REQUIRED_VERSION; requiredAddons[] = { "cba_xeh", "data_f_lxWS" }; + skipWhenMissingDependencies = 1; author = "$STR_CBA_Author"; VERSION_CONFIG; // this prevents any patched class from requiring XEH @@ -25,6 +26,7 @@ class CfgPatches { class XEH_CLASS_BASE; class CfgVehicles { + class PowerLines_Small_base_F; class Land_PowerPoleWooden_lxWS: PowerLines_Small_base_F { XEH_ENABLED; }; @@ -35,10 +37,12 @@ class CfgVehicles { XEH_ENABLED; }; + class Module_F; class Site_Camels_lxWS: Module_F { XEH_ENABLED; }; + class C_journalist_F; class C_Journalist_lxWS: C_journalist_F { XEH_ENABLED; }; @@ -60,6 +64,7 @@ class CfgVehicles { XEH_ENABLED; }; + class I_officer_F; class I_SFIA_officer_lxWS: I_officer_F { }; class I_SFIA_Said_lxWS: I_SFIA_officer_lxWS { From 92bf76879708fe19d1da205f74dfe833fe946ebf Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Tue, 29 Aug 2023 15:35:32 -0500 Subject: [PATCH 4/6] Update make.py --- tools/make.py | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/tools/make.py b/tools/make.py index ba6837f0ce..e373247a04 100644 --- a/tools/make.py +++ b/tools/make.py @@ -40,6 +40,7 @@ import os import os.path +import pathlib import shutil import platform import glob @@ -1533,6 +1534,16 @@ def main(argv): if len(failedBuilds) > 0: for failedBuild in failedBuilds: print("- {} build failed!".format(failedBuild)) + failedBuild_path = pathlib.Path( + "P:/temp").joinpath(f"{failedBuild}.packing.log") + if (failedBuild_path.exists()): + print(f" Log {failedBuild_path} tail:") + with open(failedBuild_path) as failedBuild_file: + lines = failedBuild_file.readlines() + for index, line in enumerate(lines[-3:]): + print(f" {len(lines) + index -2}: {line}", end='') + else: + print(f" Log {failedBuild_path} does not exist") if len(missingFiles) > 0: for missingFile in missingFiles: print("- {} not found!".format(missingFile)) From 0a28b08f90f430a73439001f40326240d93af6b0 Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Wed, 30 Aug 2023 10:58:15 -0500 Subject: [PATCH 5/6] cleanup EE folder and move everything to XEH --- addons/ee/$PBOPREFIX$ | 1 - addons/ee/script_component.hpp | 11 ----------- addons/{ee => xeh}/addon.toml | 0 addons/{ee => xeh}/compat_contact/config.cpp | 6 +++--- addons/{ee => xeh}/compat_csla/config.cpp | 6 +++--- addons/{ee => xeh}/compat_sog/config.cpp | 6 +++--- addons/{ee => xeh}/compat_ws/config.cpp | 6 +++--- addons/{ => xeh}/ee/config.cpp | 2 -- addons/xeh/script_component.hpp | 10 ++++++++++ 9 files changed, 22 insertions(+), 26 deletions(-) delete mode 100644 addons/ee/$PBOPREFIX$ delete mode 100644 addons/ee/script_component.hpp rename addons/{ee => xeh}/addon.toml (100%) rename addons/{ee => xeh}/compat_contact/config.cpp (92%) rename addons/{ee => xeh}/compat_csla/config.cpp (91%) rename addons/{ee => xeh}/compat_sog/config.cpp (90%) rename addons/{ee => xeh}/compat_ws/config.cpp (94%) rename addons/{ => xeh}/ee/config.cpp (76%) diff --git a/addons/ee/$PBOPREFIX$ b/addons/ee/$PBOPREFIX$ deleted file mode 100644 index 58937b0bf5..0000000000 --- a/addons/ee/$PBOPREFIX$ +++ /dev/null @@ -1 +0,0 @@ -x\cba\addons\ee diff --git a/addons/ee/script_component.hpp b/addons/ee/script_component.hpp deleted file mode 100644 index 607b347874..0000000000 --- a/addons/ee/script_component.hpp +++ /dev/null @@ -1,11 +0,0 @@ -#include "\x\cba\addons\xeh\script_component.hpp" - -// macro add a dummy cfgPatch -#define CBA_EE_PATCH_NOT_LOADED(NAME,CAUSE) \ -class CfgPatches { \ - class DOUBLES(NAME,notLoaded) { \ - units[] = {}; \ - weapons[] = {}; \ - cba_not_loaded = CAUSE; \ - }; \ -}; diff --git a/addons/ee/addon.toml b/addons/xeh/addon.toml similarity index 100% rename from addons/ee/addon.toml rename to addons/xeh/addon.toml diff --git a/addons/ee/compat_contact/config.cpp b/addons/xeh/compat_contact/config.cpp similarity index 92% rename from addons/ee/compat_contact/config.cpp rename to addons/xeh/compat_contact/config.cpp index 07ff34a759..d1e9fef768 100644 --- a/addons/ee/compat_contact/config.cpp +++ b/addons/xeh/compat_contact/config.cpp @@ -1,6 +1,6 @@ -#include "\x\cba\addons\ee\script_component.hpp" +#include "\x\cba\addons\xeh\script_component.hpp" #undef COMPONENT -#define COMPONENT ee_compat_contact +#define COMPONENT xeh_compat_contact #if __has_include("\a3\Data_F_Contact\config.bin") #else @@ -8,7 +8,7 @@ #endif #ifdef PATCH_SKIP -CBA_EE_PATCH_NOT_LOADED(ADDON,PATCH_SKIP) +CBA_XEH_PATCH_NOT_LOADED(ADDON,PATCH_SKIP) #else class CfgPatches { class ADDON { diff --git a/addons/ee/compat_csla/config.cpp b/addons/xeh/compat_csla/config.cpp similarity index 91% rename from addons/ee/compat_csla/config.cpp rename to addons/xeh/compat_csla/config.cpp index 6739eff580..79fda896e7 100644 --- a/addons/ee/compat_csla/config.cpp +++ b/addons/xeh/compat_csla/config.cpp @@ -1,6 +1,6 @@ -#include "\x\cba\addons\ee\script_component.hpp" +#include "\x\cba\addons\xeh\script_component.hpp" #undef COMPONENT -#define COMPONENT ee_compat_csla +#define COMPONENT xeh_compat_csla #if __has_include("\csla_cfg\config.bin") #else @@ -8,7 +8,7 @@ #endif #ifdef PATCH_SKIP -CBA_EE_PATCH_NOT_LOADED(ADDON,PATCH_SKIP) +CBA_XEH_PATCH_NOT_LOADED(ADDON,PATCH_SKIP) #else class CfgPatches { class ADDON { diff --git a/addons/ee/compat_sog/config.cpp b/addons/xeh/compat_sog/config.cpp similarity index 90% rename from addons/ee/compat_sog/config.cpp rename to addons/xeh/compat_sog/config.cpp index 2e1aac3157..40d6522ff0 100644 --- a/addons/ee/compat_sog/config.cpp +++ b/addons/xeh/compat_sog/config.cpp @@ -1,6 +1,6 @@ -#include "\x\cba\addons\ee\script_component.hpp" +#include "\x\cba\addons\xeh\script_component.hpp" #undef COMPONENT -#define COMPONENT ee_compat_sog +#define COMPONENT xeh_compat_sog #if __has_include("\vn\weapons_f_vietnam\config.bin") #else @@ -8,7 +8,7 @@ #endif #ifdef PATCH_SKIP -CBA_EE_PATCH_NOT_LOADED(ADDON,PATCH_SKIP) +CBA_XEH_PATCH_NOT_LOADED(ADDON,PATCH_SKIP) #else class CfgPatches { class ADDON { diff --git a/addons/ee/compat_ws/config.cpp b/addons/xeh/compat_ws/config.cpp similarity index 94% rename from addons/ee/compat_ws/config.cpp rename to addons/xeh/compat_ws/config.cpp index f028059a5d..3e299f82e2 100644 --- a/addons/ee/compat_ws/config.cpp +++ b/addons/xeh/compat_ws/config.cpp @@ -1,6 +1,6 @@ -#include "\x\cba\addons\ee\script_component.hpp" +#include "\x\cba\addons\xeh\script_component.hpp" #undef COMPONENT -#define COMPONENT ee_compat_ws +#define COMPONENT xeh_compat_ws #if __has_include("\lxWS\data_f_lxWS\config.bin") #else @@ -8,7 +8,7 @@ #endif #ifdef PATCH_SKIP -CBA_EE_PATCH_NOT_LOADED(ADDON,PATCH_SKIP) +CBA_XEH_PATCH_NOT_LOADED(ADDON,PATCH_SKIP) #else class CfgPatches { class ADDON { diff --git a/addons/ee/config.cpp b/addons/xeh/ee/config.cpp similarity index 76% rename from addons/ee/config.cpp rename to addons/xeh/ee/config.cpp index 9a5d0afb9c..1dc18df178 100644 --- a/addons/ee/config.cpp +++ b/addons/xeh/ee/config.cpp @@ -1,5 +1,3 @@ -#include "script_component.hpp" - class CfgPatches { class cba_ee { requiredAddons[] = {"cba_xeh"}; diff --git a/addons/xeh/script_component.hpp b/addons/xeh/script_component.hpp index fb99a60563..06040bf03f 100644 --- a/addons/xeh/script_component.hpp +++ b/addons/xeh/script_component.hpp @@ -38,6 +38,16 @@ #include "script_xeh.hpp" +// macro add a dummy cfgPatch - this macro may be removed after 2.14 cleanup! +#define CBA_XEH_PATCH_NOT_LOADED(NAME,CAUSE) \ +class CfgPatches { \ + class DOUBLES(NAME,notLoaded) { \ + units[] = {}; \ + weapons[] = {}; \ + cba_not_loaded = CAUSE; \ + }; \ +}; + #undef XEH_ENABLED #define XEH_ENABLED class EventHandlers {class XEH_CLASS: XEH_CLASS_BASE {};}; SLX_XEH_DISABLED = 0 From 4e3987073e41ee42238a2c3f981d4ad7b68e0745 Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Wed, 30 Aug 2023 11:00:50 -0500 Subject: [PATCH 6/6] XEH cleanup for 2.14 --- addons/main/script_mod.hpp | 2 +- addons/xeh/addon.toml | 2 -- addons/xeh/compat_contact/config.cpp | 10 ---------- addons/xeh/compat_csla/config.cpp | 10 ---------- addons/xeh/compat_sog/config.cpp | 10 ---------- addons/xeh/compat_ws/config.cpp | 10 ---------- addons/xeh/script_component.hpp | 10 ---------- 7 files changed, 1 insertion(+), 53 deletions(-) delete mode 100644 addons/xeh/addon.toml diff --git a/addons/main/script_mod.hpp b/addons/main/script_mod.hpp index f762ad855c..2ae052a287 100644 --- a/addons/main/script_mod.hpp +++ b/addons/main/script_mod.hpp @@ -10,7 +10,7 @@ #define VERSION_AR MAJOR,MINOR,PATCHLVL,BUILD // MINIMAL required version for the Mod. Components can specify others.. -#define REQUIRED_VERSION 2.06 +#define REQUIRED_VERSION 2.14 /* // Defined DEBUG_MODE_NORMAL in a few CBA_fncs to prevent looped logging :) diff --git a/addons/xeh/addon.toml b/addons/xeh/addon.toml deleted file mode 100644 index 7cfef775ee..0000000000 --- a/addons/xeh/addon.toml +++ /dev/null @@ -1,2 +0,0 @@ -[preprocess] -enabled = false diff --git a/addons/xeh/compat_contact/config.cpp b/addons/xeh/compat_contact/config.cpp index d1e9fef768..38efa29a90 100644 --- a/addons/xeh/compat_contact/config.cpp +++ b/addons/xeh/compat_contact/config.cpp @@ -2,14 +2,6 @@ #undef COMPONENT #define COMPONENT xeh_compat_contact -#if __has_include("\a3\Data_F_Contact\config.bin") -#else -#define PATCH_SKIP "Contact DLC" -#endif - -#ifdef PATCH_SKIP -CBA_XEH_PATCH_NOT_LOADED(ADDON,PATCH_SKIP) -#else class CfgPatches { class ADDON { units[] = {}; @@ -66,5 +58,3 @@ class CfgVehicles { XEH_ENABLED; }; }; - -#endif diff --git a/addons/xeh/compat_csla/config.cpp b/addons/xeh/compat_csla/config.cpp index 79fda896e7..360ee3ef62 100644 --- a/addons/xeh/compat_csla/config.cpp +++ b/addons/xeh/compat_csla/config.cpp @@ -2,14 +2,6 @@ #undef COMPONENT #define COMPONENT xeh_compat_csla -#if __has_include("\csla_cfg\config.bin") -#else -#define PATCH_SKIP "CSLA - Iron Curtain" -#endif - -#ifdef PATCH_SKIP -CBA_XEH_PATCH_NOT_LOADED(ADDON,PATCH_SKIP) -#else class CfgPatches { class ADDON { units[] = {}; @@ -61,5 +53,3 @@ class CfgVehicles { XEH_ENABLED; }; }; - -#endif diff --git a/addons/xeh/compat_sog/config.cpp b/addons/xeh/compat_sog/config.cpp index 40d6522ff0..f866ef46ce 100644 --- a/addons/xeh/compat_sog/config.cpp +++ b/addons/xeh/compat_sog/config.cpp @@ -2,14 +2,6 @@ #undef COMPONENT #define COMPONENT xeh_compat_sog -#if __has_include("\vn\weapons_f_vietnam\config.bin") -#else -#define PATCH_SKIP "SOG-Vietnam" -#endif - -#ifdef PATCH_SKIP -CBA_XEH_PATCH_NOT_LOADED(ADDON,PATCH_SKIP) -#else class CfgPatches { class ADDON { units[] = {}; @@ -53,5 +45,3 @@ class CfgVehicles { XEH_ENABLED; }; }; - -#endif diff --git a/addons/xeh/compat_ws/config.cpp b/addons/xeh/compat_ws/config.cpp index 3e299f82e2..7ce5e24893 100644 --- a/addons/xeh/compat_ws/config.cpp +++ b/addons/xeh/compat_ws/config.cpp @@ -2,14 +2,6 @@ #undef COMPONENT #define COMPONENT xeh_compat_ws -#if __has_include("\lxWS\data_f_lxWS\config.bin") -#else -#define PATCH_SKIP "Western Sahara" -#endif - -#ifdef PATCH_SKIP -CBA_XEH_PATCH_NOT_LOADED(ADDON,PATCH_SKIP) -#else class CfgPatches { class ADDON { units[] = {}; @@ -85,5 +77,3 @@ class CfgVehicles { XEH_ENABLED; }; }; - -#endif diff --git a/addons/xeh/script_component.hpp b/addons/xeh/script_component.hpp index 06040bf03f..fb99a60563 100644 --- a/addons/xeh/script_component.hpp +++ b/addons/xeh/script_component.hpp @@ -38,16 +38,6 @@ #include "script_xeh.hpp" -// macro add a dummy cfgPatch - this macro may be removed after 2.14 cleanup! -#define CBA_XEH_PATCH_NOT_LOADED(NAME,CAUSE) \ -class CfgPatches { \ - class DOUBLES(NAME,notLoaded) { \ - units[] = {}; \ - weapons[] = {}; \ - cba_not_loaded = CAUSE; \ - }; \ -}; - #undef XEH_ENABLED #define XEH_ENABLED class EventHandlers {class XEH_CLASS: XEH_CLASS_BASE {};}; SLX_XEH_DISABLED = 0