From d2f5c2de02839b73779075c6649c79767de332aa Mon Sep 17 00:00:00 2001 From: BrettMayson Date: Mon, 25 Sep 2023 14:37:59 -0600 Subject: [PATCH] Spearhead 1944 Compatibility (#9292) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * compat(spe): initial * --changed csw/turrets * disable spe disassemble * csw: all mortars done * more cleanup * add missing hearing protection * final cleanup * goofed and removed too much * ok all done * formatting * remove adt * -+ updated frameworks - Ballistics Framework Finished (Infantry Weapons) - Wirecutter & Trench Framework Finished (Vests/Backpacks) - Explosives Framework Finished (Added backward support for IFA3 Detonator/Firecord) - Crew Served Weapons Framework Finished (Fixed Assemble/Disassemble) * formatting * Require HEMTT v1.7.2 * cleanup tabs / formating * Apply suggestions from code review Co-authored-by: Filip Maciejewski Co-authored-by: PabstMirror Co-authored-by: ZluskeN * split to subcomponents, fix ubcs * swap has_include for skipWhenMissingDependencies * fix explosives * add pdumies for ww2 * Apply suggestions from code review Co-authored-by: Jouni Järvinen * cleanup sten duplicate configs * move hearing to macro * fix macro repaclement * Use `SUBADDON` * Move `addonRootClass` to bottom of CfgPatches * Relative includes * move config macro includes to config.cpp * comment off csw changes for now * Update .hemtt/project.toml --------- Co-authored-by: Coldfront15 Co-authored-by: Brett Mayson Co-authored-by: jonpas Co-authored-by: PabstMirror Co-authored-by: Filip Maciejewski Co-authored-by: ZluskeN Co-authored-by: Jouni Järvinen --- .github/workflows/pboproject.yml | 1 + .hemtt/project.toml | 10 +- addons/compat_gm/CfgWeapons.hpp | 54 ++-- addons/compat_gm/config.cpp | 3 + addons/compat_rhs_afrf3/CfgWeapons.hpp | 17 +- addons/compat_rhs_afrf3/config.cpp | 1 + addons/compat_rhs_usf3/CfgWeapons.hpp | 104 ++++---- addons/compat_rhs_usf3/config.cpp | 1 + addons/compat_sog/CfgWeapons/helmets.hpp | 5 - addons/compat_sog/config.cpp | 3 + addons/compat_sog/script_component.hpp | 2 - addons/compat_spe/$PBOPREFIX$ | 1 + addons/compat_spe/ACE_Medical_Injuries.hpp | 15 ++ addons/compat_spe/CfgAmmo.hpp | 6 + addons/compat_spe/CfgAmmo/bombs.hpp | 46 ++++ addons/compat_spe/CfgAmmo/explosives.hpp | 231 +++++++++++++++++ addons/compat_spe/CfgAmmo/grenades.hpp | 117 +++++++++ addons/compat_spe/CfgAmmo/melee.hpp | 12 + addons/compat_spe/CfgEventHandlers.hpp | 11 + addons/compat_spe/CfgGlasses.hpp | 39 +++ addons/compat_spe/CfgMagazines.hpp | 3 + addons/compat_spe/CfgMagazines/csw.hpp | 44 ++++ addons/compat_spe/CfgVehicles.hpp | 7 + addons/compat_spe/CfgVehicles/backpacks.hpp | 40 +++ addons/compat_spe/CfgVehicles/planes.hpp | 18 ++ addons/compat_spe/CfgVehicles/spe_boxes.hpp | 35 +++ addons/compat_spe/CfgVehicles/tracked.hpp | 55 ++++ addons/compat_spe/CfgVehicles/wheeled.hpp | 71 ++++++ addons/compat_spe/CfgWeapons.hpp | 5 + addons/compat_spe/CfgWeapons/helmets.hpp | 142 +++++++++++ addons/compat_spe/CfgWeapons/launchers.hpp | 17 ++ addons/compat_spe/CfgWeapons/weapons.hpp | 195 ++++++++++++++ addons/compat_spe/XEH_PREP.hpp | 1 + addons/compat_spe/XEH_preStart.sqf | 3 + addons/compat_spe/XEH_preinit.sqf | 9 + .../compat_spe_csw/ACE_CSW_Groups.hpp | 50 ++++ .../compat_spe/compat_spe_csw/CfgVehicles.hpp | 240 ++++++++++++++++++ .../compat_spe/compat_spe_csw/CfgWeapons.hpp | 84 ++++++ addons/compat_spe/compat_spe_csw/config.cpp | 29 +++ .../compat_spe_csw/script_component.hpp | 3 + .../compat_spe_explosives/CfgMagazines.hpp | 210 +++++++++++++++ .../compat_spe_explosives/CfgVehicles.hpp | 173 +++++++++++++ .../compat_spe_explosives/config.cpp | 27 ++ .../script_component.hpp | 6 + .../compat_spe_refuel/CfgVehicles.hpp | 14 + .../compat_spe/compat_spe_refuel/config.cpp | 26 ++ .../compat_spe_refuel/script_component.hpp | 3 + addons/compat_spe/config.cpp | 37 +++ .../functions/fnc_woundsHandlerIncendiary.sqf | 40 +++ addons/compat_spe/script_component.hpp | 5 + addons/hearing/CfgWeapons.hpp | 45 ++-- addons/hearing/script_component.hpp | 1 + .../script_macros_hearingProtection.hpp | 4 + .../setting-up-the-development-environment.md | 2 +- .../Weapons/Mines_m/SPE_Bangalore | 0 .../Weapons/Mines_m/SPE_GER_Improvised_Mine | 0 .../SPE_Assets_m/Weapons/Mines_m/SPE_Ladung | 0 .../Weapons/Mines_m/SPE_Ladung_Big | 0 .../SPE_Assets_m/Weapons/Mines_m/SPE_M1A1_AT | 0 .../SPE_Assets_m/Weapons/Mines_m/SPE_M3_AP | 0 .../Weapons/Mines_m/SPE_M3_AP_Pressure | 0 .../Weapons/Mines_m/SPE_Shumine42 | 0 .../SPE_Assets_m/Weapons/Mines_m/SPE_Smi35 | 0 .../SPE_Assets_m/Weapons/Mines_m/SPE_Smi35_1 | 0 .../SPE_Assets_m/Weapons/Mines_m/SPE_Smi35_2 | 0 .../WW2/SPE_Assets_m/Weapons/Mines_m/SPE_Stmi | 0 .../Weapons/Mines_m/SPE_TNT_4pound | 0 .../Mines_m/SPE_TNT_4pound - Copy (11) | 0 .../Mines_m/SPE_TNT_4pound - Copy (16) | 0 .../Mines_m/SPE_TNT_4pound - Copy (17) | 0 .../Weapons/Mines_m/SPE_TNT_Half_Pound | 0 .../SPE_Assets_m/Weapons/Mines_m/SPE_Tmi42 | 0 .../SPE_M1_Mortar_Stand_Deployed.p3d | 0 .../Launchers/Gear_GrW278_1_Stand_X_ca.paa | 0 .../Launchers/Gear_M1_81_Stand_X_ca.paa | 0 .../Launchers/Gear_MLE_27_31_Stand_X_ca.paa | 0 .../Brandt_81mm_Mortar_French_co.paa | 0 .../m1_mortar/Brandt_81mm_Mortar_Gelb_co.paa | 0 .../m1_mortar/Brandt_81mm_Sight_French_co.paa | 0 .../m1_mortar/Brandt_81mm_Sight_Gelb_co.paa | 0 80 files changed, 2196 insertions(+), 127 deletions(-) create mode 100644 addons/compat_spe/$PBOPREFIX$ create mode 100644 addons/compat_spe/ACE_Medical_Injuries.hpp create mode 100644 addons/compat_spe/CfgAmmo.hpp create mode 100644 addons/compat_spe/CfgAmmo/bombs.hpp create mode 100644 addons/compat_spe/CfgAmmo/explosives.hpp create mode 100644 addons/compat_spe/CfgAmmo/grenades.hpp create mode 100644 addons/compat_spe/CfgAmmo/melee.hpp create mode 100644 addons/compat_spe/CfgEventHandlers.hpp create mode 100644 addons/compat_spe/CfgGlasses.hpp create mode 100644 addons/compat_spe/CfgMagazines.hpp create mode 100644 addons/compat_spe/CfgMagazines/csw.hpp create mode 100644 addons/compat_spe/CfgVehicles.hpp create mode 100644 addons/compat_spe/CfgVehicles/backpacks.hpp create mode 100644 addons/compat_spe/CfgVehicles/planes.hpp create mode 100644 addons/compat_spe/CfgVehicles/spe_boxes.hpp create mode 100644 addons/compat_spe/CfgVehicles/tracked.hpp create mode 100644 addons/compat_spe/CfgVehicles/wheeled.hpp create mode 100644 addons/compat_spe/CfgWeapons.hpp create mode 100644 addons/compat_spe/CfgWeapons/helmets.hpp create mode 100644 addons/compat_spe/CfgWeapons/launchers.hpp create mode 100644 addons/compat_spe/CfgWeapons/weapons.hpp create mode 100644 addons/compat_spe/XEH_PREP.hpp create mode 100644 addons/compat_spe/XEH_preStart.sqf create mode 100644 addons/compat_spe/XEH_preinit.sqf create mode 100644 addons/compat_spe/compat_spe_csw/ACE_CSW_Groups.hpp create mode 100644 addons/compat_spe/compat_spe_csw/CfgVehicles.hpp create mode 100644 addons/compat_spe/compat_spe_csw/CfgWeapons.hpp create mode 100644 addons/compat_spe/compat_spe_csw/config.cpp create mode 100644 addons/compat_spe/compat_spe_csw/script_component.hpp create mode 100644 addons/compat_spe/compat_spe_explosives/CfgMagazines.hpp create mode 100644 addons/compat_spe/compat_spe_explosives/CfgVehicles.hpp create mode 100644 addons/compat_spe/compat_spe_explosives/config.cpp create mode 100644 addons/compat_spe/compat_spe_explosives/script_component.hpp create mode 100644 addons/compat_spe/compat_spe_refuel/CfgVehicles.hpp create mode 100644 addons/compat_spe/compat_spe_refuel/config.cpp create mode 100644 addons/compat_spe/compat_spe_refuel/script_component.hpp create mode 100644 addons/compat_spe/config.cpp create mode 100644 addons/compat_spe/functions/fnc_woundsHandlerIncendiary.sqf create mode 100644 addons/compat_spe/script_component.hpp create mode 100644 addons/hearing/script_macros_hearingProtection.hpp create mode 100644 tools/pDummies/WW2/SPE_Assets_m/Weapons/Mines_m/SPE_Bangalore create mode 100644 tools/pDummies/WW2/SPE_Assets_m/Weapons/Mines_m/SPE_GER_Improvised_Mine create mode 100644 tools/pDummies/WW2/SPE_Assets_m/Weapons/Mines_m/SPE_Ladung create mode 100644 tools/pDummies/WW2/SPE_Assets_m/Weapons/Mines_m/SPE_Ladung_Big create mode 100644 tools/pDummies/WW2/SPE_Assets_m/Weapons/Mines_m/SPE_M1A1_AT create mode 100644 tools/pDummies/WW2/SPE_Assets_m/Weapons/Mines_m/SPE_M3_AP create mode 100644 tools/pDummies/WW2/SPE_Assets_m/Weapons/Mines_m/SPE_M3_AP_Pressure create mode 100644 tools/pDummies/WW2/SPE_Assets_m/Weapons/Mines_m/SPE_Shumine42 create mode 100644 tools/pDummies/WW2/SPE_Assets_m/Weapons/Mines_m/SPE_Smi35 create mode 100644 tools/pDummies/WW2/SPE_Assets_m/Weapons/Mines_m/SPE_Smi35_1 create mode 100644 tools/pDummies/WW2/SPE_Assets_m/Weapons/Mines_m/SPE_Smi35_2 create mode 100644 tools/pDummies/WW2/SPE_Assets_m/Weapons/Mines_m/SPE_Stmi create mode 100644 tools/pDummies/WW2/SPE_Assets_m/Weapons/Mines_m/SPE_TNT_4pound create mode 100644 tools/pDummies/WW2/SPE_Assets_m/Weapons/Mines_m/SPE_TNT_4pound - Copy (11) create mode 100644 tools/pDummies/WW2/SPE_Assets_m/Weapons/Mines_m/SPE_TNT_4pound - Copy (16) create mode 100644 tools/pDummies/WW2/SPE_Assets_m/Weapons/Mines_m/SPE_TNT_4pound - Copy (17) create mode 100644 tools/pDummies/WW2/SPE_Assets_m/Weapons/Mines_m/SPE_TNT_Half_Pound create mode 100644 tools/pDummies/WW2/SPE_Assets_m/Weapons/Mines_m/SPE_Tmi42 create mode 100644 tools/pDummies/WW2/SPE_Assets_m/Weapons/Mortars_m/SPE_M1_Mortar_Stand_Deployed.p3d create mode 100644 tools/pDummies/WW2/SPE_Assets_t/Weapons/Equipment_t/Weapons/Launchers/Gear_GrW278_1_Stand_X_ca.paa create mode 100644 tools/pDummies/WW2/SPE_Assets_t/Weapons/Equipment_t/Weapons/Launchers/Gear_M1_81_Stand_X_ca.paa create mode 100644 tools/pDummies/WW2/SPE_Assets_t/Weapons/Equipment_t/Weapons/Launchers/Gear_MLE_27_31_Stand_X_ca.paa create mode 100644 tools/pDummies/WW2/SPE_Assets_t/Weapons/mortars_t/m1_mortar/Brandt_81mm_Mortar_French_co.paa create mode 100644 tools/pDummies/WW2/SPE_Assets_t/Weapons/mortars_t/m1_mortar/Brandt_81mm_Mortar_Gelb_co.paa create mode 100644 tools/pDummies/WW2/SPE_Assets_t/Weapons/mortars_t/m1_mortar/Brandt_81mm_Sight_French_co.paa create mode 100644 tools/pDummies/WW2/SPE_Assets_t/Weapons/mortars_t/m1_mortar/Brandt_81mm_Sight_Gelb_co.paa diff --git a/.github/workflows/pboproject.yml b/.github/workflows/pboproject.yml index 5701966e445..9df3fd99523 100644 --- a/.github/workflows/pboproject.yml +++ b/.github/workflows/pboproject.yml @@ -66,6 +66,7 @@ jobs: pboproject -P xcopy /e /h /q z\ace\tools\pDummies\gm gm\ xcopy /e /h /q z\ace\tools\pDummies\vn vn\ + xcopy /e /h /q z\ace\tools\pDummies\WW2 WW2\ - name: Build run: py P:\z\ace\tools\make.py ci env: diff --git a/.hemtt/project.toml b/.hemtt/project.toml index 1714b793f92..bc721dfe843 100644 --- a/.hemtt/project.toml +++ b/.hemtt/project.toml @@ -34,7 +34,15 @@ preset = "Hemtt" [hemtt.launch] workshop = [ - "450814997", # CBA_A3's Workshop ID + "450814997", # CBA_A3 +] + +[hemtt.launch.spe] +workshop = [ + "450814997", # CBA_A3 +] +dlc = [ + "spe" ] [hemtt.launch.vn] diff --git a/addons/compat_gm/CfgWeapons.hpp b/addons/compat_gm/CfgWeapons.hpp index 1c2adf8e520..7c77827b2f4 100644 --- a/addons/compat_gm/CfgWeapons.hpp +++ b/addons/compat_gm/CfgWeapons.hpp @@ -56,49 +56,43 @@ class CfgWeapons { }; // HELMETS - #define HEARING_PROTECTION_OPEN EGVAR(hearing,protection) = 0; EGVAR(hearing,lowerVolume) = 0; - #define HEARING_PROTECTION_VICCREW EGVAR(hearing,protection) = 0.85; EGVAR(hearing,lowerVolume) = 0.6; - #define HEARING_PROTECTION_EARMUFF EGVAR(hearing,protection) = 0.75; EGVAR(hearing,lowerVolume) = 0.5; - #define HEARING_PROTECTION_PELTOR EGVAR(hearing,protection) = 0.75; EGVAR(hearing,lowerVolume) = 0; - - class gm_ge_headgear_headset_crew_base; class gm_ge_headgear_headset_crew_oli: gm_ge_headgear_headset_crew_base { - HEARING_PROTECTION_PELTOR + HEARING_PROTECTION_PELTOR; }; class gm_ge_headgear_sph4_base; class gm_ge_headgear_sph4_oli: gm_ge_headgear_sph4_base { - HEARING_PROTECTION_PELTOR + HEARING_PROTECTION_PELTOR; }; class gm_pl_headgear_wz63_base; class gm_pl_army_headgear_wz63_oli: gm_pl_headgear_wz63_base { - HEARING_PROTECTION_PELTOR + HEARING_PROTECTION_PELTOR; }; class gm_pl_army_headgear_wz63_net_oli: gm_pl_headgear_wz63_base { - HEARING_PROTECTION_PELTOR + HEARING_PROTECTION_PELTOR; }; class gm_ge_headgear_crewhat_80_base; class gm_ge_headgear_crewhat_80_blk: gm_ge_headgear_crewhat_80_base { - HEARING_PROTECTION_PELTOR + HEARING_PROTECTION_PELTOR; }; class gm_gc_headgear_crewhat_80_base; class gm_gc_army_headgear_crewhat_80_blk: gm_gc_headgear_crewhat_80_base { - HEARING_PROTECTION_PELTOR + HEARING_PROTECTION_PELTOR; }; class gm_gc_headgear_zsh3_base; class gm_gc_headgear_zsh3_wht: gm_gc_headgear_zsh3_base { - HEARING_PROTECTION_PELTOR + HEARING_PROTECTION_PELTOR; }; class gm_gc_headgear_zsh3_blu: gm_gc_headgear_zsh3_base { - HEARING_PROTECTION_PELTOR + HEARING_PROTECTION_PELTOR; }; class gm_gc_headgear_zsh3_orn: gm_gc_headgear_zsh3_base { - HEARING_PROTECTION_PELTOR + HEARING_PROTECTION_PELTOR; }; class gm_ge_headgear_beret_crew_bdx; @@ -106,48 +100,48 @@ class CfgWeapons { class gm_ge_headgear_beret_crew_grn; class gm_ge_headgear_beret_crew_red; class gm_ge_headgear_beret_crew_red_antiair: gm_ge_headgear_beret_crew_red { - HEARING_PROTECTION_PELTOR + HEARING_PROTECTION_PELTOR; }; class gm_ge_headgear_beret_crew_blk_antitank: gm_ge_headgear_beret_crew_blk { - HEARING_PROTECTION_PELTOR + HEARING_PROTECTION_PELTOR; }; class gm_ge_headgear_beret_crew_blk_armor: gm_ge_headgear_beret_crew_blk { - HEARING_PROTECTION_PELTOR + HEARING_PROTECTION_PELTOR; }; class gm_ge_headgear_beret_crew_blk_armorrecon: gm_ge_headgear_beret_crew_blk { - HEARING_PROTECTION_PELTOR + HEARING_PROTECTION_PELTOR; }; class gm_ge_headgear_beret_crew_red_artillery: gm_ge_headgear_beret_crew_red { - HEARING_PROTECTION_PELTOR + HEARING_PROTECTION_PELTOR; }; class gm_ge_headgear_beret_crew_red_engineer: gm_ge_headgear_beret_crew_red { - HEARING_PROTECTION_PELTOR + HEARING_PROTECTION_PELTOR; }; class gm_ge_headgear_beret_crew_red_maintenance: gm_ge_headgear_beret_crew_red { - HEARING_PROTECTION_PELTOR + HEARING_PROTECTION_PELTOR; }; class gm_ge_headgear_beret_crew_grn_mechinf: gm_ge_headgear_beret_crew_grn { - HEARING_PROTECTION_PELTOR + HEARING_PROTECTION_PELTOR; }; class gm_ge_headgear_beret_crew_red_militarypolice: gm_ge_headgear_beret_crew_red { - HEARING_PROTECTION_PELTOR + HEARING_PROTECTION_PELTOR; }; class gm_ge_headgear_beret_crew_red_nbc: gm_ge_headgear_beret_crew_red { - HEARING_PROTECTION_PELTOR + HEARING_PROTECTION_PELTOR; }; class gm_ge_headgear_beret_crew_red_opcom: gm_ge_headgear_beret_crew_red { - HEARING_PROTECTION_PELTOR + HEARING_PROTECTION_PELTOR; }; class gm_ge_headgear_beret_crew_bdx_paratrooper: gm_ge_headgear_beret_crew_bdx { - HEARING_PROTECTION_PELTOR + HEARING_PROTECTION_PELTOR; }; class gm_ge_headgear_beret_crew_blk_recon: gm_ge_headgear_beret_crew_blk { - HEARING_PROTECTION_PELTOR + HEARING_PROTECTION_PELTOR; }; class gm_ge_headgear_beret_crew_red_supply: gm_ge_headgear_beret_crew_red { - HEARING_PROTECTION_PELTOR + HEARING_PROTECTION_PELTOR; }; class gm_ge_headgear_beret_crew_red_signals: gm_ge_headgear_beret_crew_red { - HEARING_PROTECTION_PELTOR + HEARING_PROTECTION_PELTOR; }; }; diff --git a/addons/compat_gm/config.cpp b/addons/compat_gm/config.cpp index 63f43635d59..3f00812dc1a 100644 --- a/addons/compat_gm/config.cpp +++ b/addons/compat_gm/config.cpp @@ -1,4 +1,7 @@ #include "script_component.hpp" +#include "\z\ace\addons\csw\script_config_macros_csw.hpp" +#include "\z\ace\addons\hearing\script_macros_hearingProtection.hpp" + class CfgPatches { class ADDON { diff --git a/addons/compat_rhs_afrf3/CfgWeapons.hpp b/addons/compat_rhs_afrf3/CfgWeapons.hpp index 17aa535a792..a6def44c402 100644 --- a/addons/compat_rhs_afrf3/CfgWeapons.hpp +++ b/addons/compat_rhs_afrf3/CfgWeapons.hpp @@ -108,21 +108,18 @@ class CfgWeapons { EGVAR(overpressure,offset) = 1.65; }; - #define HEARING_PROTECTION_VICCREW EGVAR(hearing,protection) = 0.85; EGVAR(hearing,lowerVolume) = 0.6; - #define HEARING_PROTECTION_EARMUFF EGVAR(hearing,protection) = 0.75; EGVAR(hearing,lowerVolume) = 0.5; - #define HEARING_PROTECTION_PELTOR EGVAR(hearing,protection) = 0.75; EGVAR(hearing,lowerVolume) = 0; class H_HelmetB; class rhs_tsh4: H_HelmetB { - HEARING_PROTECTION_VICCREW + HEARING_PROTECTION_VICCREW; }; class rhs_6b47_bare; class rhs_6b48: rhs_6b47_bare { - HEARING_PROTECTION_VICCREW + HEARING_PROTECTION_VICCREW; }; class rhs_zsh7a: H_HelmetB { - HEARING_PROTECTION_VICCREW + HEARING_PROTECTION_VICCREW; }; class rhs_zsh7a_alt: rhs_zsh7a { ACE_Protection = 1; @@ -137,19 +134,19 @@ class CfgWeapons { }; class rhs_gssh18: H_HelmetB { - HEARING_PROTECTION_EARMUFF + HEARING_PROTECTION_EARMUFF; }; class rhs_6b47; class rhs_6b47_6m2: rhs_6b47 { - HEARING_PROTECTION_PELTOR + HEARING_PROTECTION_PELTOR; }; class rhs_6b47_6m2_1: rhs_6b47 { - HEARING_PROTECTION_PELTOR + HEARING_PROTECTION_PELTOR; }; class rhs_6m2: H_HelmetB { - HEARING_PROTECTION_PELTOR + HEARING_PROTECTION_PELTOR; }; class rhs_weap_d81; diff --git a/addons/compat_rhs_afrf3/config.cpp b/addons/compat_rhs_afrf3/config.cpp index 3497a8e956b..44fcd30fcbe 100644 --- a/addons/compat_rhs_afrf3/config.cpp +++ b/addons/compat_rhs_afrf3/config.cpp @@ -1,4 +1,5 @@ #include "script_component.hpp" +#include "\z\ace\addons\hearing\script_macros_hearingProtection.hpp" class CfgPatches { class ADDON { diff --git a/addons/compat_rhs_usf3/CfgWeapons.hpp b/addons/compat_rhs_usf3/CfgWeapons.hpp index 53234acf1b3..46ac7e56ba3 100644 --- a/addons/compat_rhs_usf3/CfgWeapons.hpp +++ b/addons/compat_rhs_usf3/CfgWeapons.hpp @@ -206,173 +206,169 @@ class CfgWeapons { EGVAR(overpressure,offset) = 0.9; }; - #define HEARING_PROTECTION_OPEN EGVAR(hearing,protection) = 0; EGVAR(hearing,lowerVolume) = 0; - #define HEARING_PROTECTION_VICCREW EGVAR(hearing,protection) = 0.85; EGVAR(hearing,lowerVolume) = 0.6; - #define HEARING_PROTECTION_EARMUFF EGVAR(hearing,protection) = 0.75; EGVAR(hearing,lowerVolume) = 0.5; - #define HEARING_PROTECTION_PELTOR EGVAR(hearing,protection) = 0.75; EGVAR(hearing,lowerVolume) = 0; // Fast Helmets class rhsusf_opscore_01; class rhsusf_opscore_ut_pelt_nsw: rhsusf_opscore_01 { - HEARING_PROTECTION_PELTOR + HEARING_PROTECTION_PELTOR; }; class rhsusf_opscore_aor1_pelt: rhsusf_opscore_01 { - HEARING_PROTECTION_PELTOR + HEARING_PROTECTION_PELTOR; }; class rhsusf_opscore_aor1_pelt_nsw: rhsusf_opscore_01 { - HEARING_PROTECTION_PELTOR + HEARING_PROTECTION_PELTOR; }; class rhsusf_opscore_bk_pelt: rhsusf_opscore_01 { - HEARING_PROTECTION_PELTOR + HEARING_PROTECTION_PELTOR; }; class rhsusf_opscore_fg_pelt: rhsusf_opscore_01 { - HEARING_PROTECTION_PELTOR + HEARING_PROTECTION_PELTOR; }; class rhsusf_opscore_fg_pelt_nsw: rhsusf_opscore_01 { - HEARING_PROTECTION_PELTOR + HEARING_PROTECTION_PELTOR; }; class rhsusf_opscore_fg_pelt_cam: rhsusf_opscore_01 { - HEARING_PROTECTION_PELTOR + HEARING_PROTECTION_PELTOR; }; class rhsusf_opscore_paint_pelt: rhsusf_opscore_01 { - HEARING_PROTECTION_PELTOR + HEARING_PROTECTION_PELTOR; }; class rhsusf_opscore_paint_pelt_nsw: rhsusf_opscore_01 { - HEARING_PROTECTION_PELTOR + HEARING_PROTECTION_PELTOR; }; class rhsusf_opscore_paint_pelt_nsw_cam: rhsusf_opscore_01 { - HEARING_PROTECTION_PELTOR + HEARING_PROTECTION_PELTOR; }; class rhsusf_opscore_aor2_pelt: rhsusf_opscore_01 { - HEARING_PROTECTION_PELTOR + HEARING_PROTECTION_PELTOR; }; class rhsusf_opscore_aor2_pelt_nsw: rhsusf_opscore_01 { - HEARING_PROTECTION_PELTOR + HEARING_PROTECTION_PELTOR; }; class rhsusf_opscore_ut_pelt: rhsusf_opscore_01 { - HEARING_PROTECTION_PELTOR + HEARING_PROTECTION_PELTOR; }; class rhsusf_opscore_ut_pelt_cam: rhsusf_opscore_01 { - HEARING_PROTECTION_PELTOR + HEARING_PROTECTION_PELTOR; }; class rhsusf_opscore_ut_pelt_nsw_cam: rhsusf_opscore_01 { - HEARING_PROTECTION_PELTOR + HEARING_PROTECTION_PELTOR; }; class rhsusf_opscore_mc_pelt: rhsusf_opscore_01 { - HEARING_PROTECTION_PELTOR + HEARING_PROTECTION_PELTOR; }; class rhsusf_opscore_mc_pelt_nsw: rhsusf_opscore_01 { - HEARING_PROTECTION_PELTOR + HEARING_PROTECTION_PELTOR; }; class rhsusf_opscore_cover; class rhsusf_opscore_mc_cover_pelt_nsw: rhsusf_opscore_cover { - HEARING_PROTECTION_PELTOR + HEARING_PROTECTION_PELTOR; }; class rhsusf_opscore_mc_cover_pelt: rhsusf_opscore_cover { - HEARING_PROTECTION_PELTOR + HEARING_PROTECTION_PELTOR; }; class rhsusf_opscore_mc_cover_pelt_cam: rhsusf_opscore_cover { - HEARING_PROTECTION_PELTOR + HEARING_PROTECTION_PELTOR; }; class rhsusf_opscore_rg_cover_pelt: rhsusf_opscore_cover { - HEARING_PROTECTION_PELTOR + HEARING_PROTECTION_PELTOR; }; class rhsusf_opscore_coy_cover_pelt: rhsusf_opscore_cover { - HEARING_PROTECTION_PELTOR + HEARING_PROTECTION_PELTOR; }; class rhsusf_opscore_mar_01; class rhsusf_opscore_mar_ut_pelt: rhsusf_opscore_mar_01 { - HEARING_PROTECTION_PELTOR + HEARING_PROTECTION_PELTOR; }; class rhsusf_opscore_mar_fg_pelt: rhsusf_opscore_mar_01 { - HEARING_PROTECTION_PELTOR + HEARING_PROTECTION_PELTOR; }; // ACH Helmets class rhsusf_ach_helmet_ocp; class rhsusf_ach_bare_des_headset: rhsusf_ach_helmet_ocp { - HEARING_PROTECTION_PELTOR + HEARING_PROTECTION_PELTOR; }; class rhsusf_ach_bare_des_headset_ess: rhsusf_ach_helmet_ocp { - HEARING_PROTECTION_PELTOR + HEARING_PROTECTION_PELTOR; }; class rhsusf_ach_bare_headset: rhsusf_ach_helmet_ocp { - HEARING_PROTECTION_PELTOR + HEARING_PROTECTION_PELTOR; }; class rhsusf_ach_bare_headset_ess: rhsusf_ach_helmet_ocp { - HEARING_PROTECTION_PELTOR + HEARING_PROTECTION_PELTOR; }; class rhsusf_ach_bare_semi_headset: rhsusf_ach_helmet_ocp { - HEARING_PROTECTION_PELTOR + HEARING_PROTECTION_PELTOR; }; class rhsusf_ach_bare_semi_headset_ess: rhsusf_ach_helmet_ocp { - HEARING_PROTECTION_PELTOR + HEARING_PROTECTION_PELTOR; }; class rhsusf_ach_bare_tan_headset: rhsusf_ach_helmet_ocp { - HEARING_PROTECTION_PELTOR + HEARING_PROTECTION_PELTOR; }; class rhsusf_ach_bare_tan_headset_ess: rhsusf_ach_helmet_ocp { - HEARING_PROTECTION_PELTOR + HEARING_PROTECTION_PELTOR; }; class rhsusf_ach_bare_wood_headset: rhsusf_ach_helmet_ocp { - HEARING_PROTECTION_PELTOR + HEARING_PROTECTION_PELTOR; }; class rhsusf_ach_bare_wood_headset_ess: rhsusf_ach_helmet_ocp { - HEARING_PROTECTION_PELTOR + HEARING_PROTECTION_PELTOR; }; class rhsusf_ach_helmet_headset_ocp: rhsusf_ach_helmet_ocp { - HEARING_PROTECTION_PELTOR + HEARING_PROTECTION_PELTOR; }; class rhsusf_ach_helmet_headset_ess_ocp: rhsusf_ach_helmet_ocp { - HEARING_PROTECTION_PELTOR + HEARING_PROTECTION_PELTOR; }; // ACVC Helmets class rhsusf_cvc_helmet: rhsusf_opscore_01 { - HEARING_PROTECTION_VICCREW + HEARING_PROTECTION_VICCREW; }; // MICH Helmets class rhsusf_mich_bare; class rhsusf_mich_bare_alt: rhsusf_mich_bare { - HEARING_PROTECTION_PELTOR + HEARING_PROTECTION_PELTOR; }; class rhsusf_mich_bare_norotos; class rhsusf_mich_bare_norotos_alt: rhsusf_mich_bare_norotos { - HEARING_PROTECTION_PELTOR + HEARING_PROTECTION_PELTOR; }; class rhsusf_mich_bare_norotos_arc; class rhsusf_mich_bare_norotos_arc_alt: rhsusf_mich_bare_norotos_arc { - HEARING_PROTECTION_PELTOR + HEARING_PROTECTION_PELTOR; }; class rhsusf_mich_bare_semi; class rhsusf_mich_bare_alt_semi: rhsusf_mich_bare_semi { - HEARING_PROTECTION_PELTOR + HEARING_PROTECTION_PELTOR; }; class rhsusf_mich_bare_norotos_semi; class rhsusf_mich_bare_norotos_alt_semi: rhsusf_mich_bare_norotos_semi { - HEARING_PROTECTION_PELTOR + HEARING_PROTECTION_PELTOR; }; class rhsusf_mich_bare_norotos_arc_semi: rhsusf_mich_bare_norotos_alt_semi { - HEARING_PROTECTION_OPEN + HEARING_PROTECTION_OPEN; }; class rhsusf_mich_bare_norotos_arc_alt_semi: rhsusf_mich_bare_norotos_arc_semi { - HEARING_PROTECTION_PELTOR + HEARING_PROTECTION_PELTOR; }; class rhsusf_mich_bare_tan; class rhsusf_mich_bare_alt_tan: rhsusf_mich_bare_tan { - HEARING_PROTECTION_PELTOR + HEARING_PROTECTION_PELTOR; }; class rhsusf_mich_bare_norotos_tan; class rhsusf_mich_bare_norotos_alt_tan: rhsusf_mich_bare_norotos_tan { - HEARING_PROTECTION_PELTOR + HEARING_PROTECTION_PELTOR; }; class rhsusf_mich_bare_norotos_arc_tan; class rhsusf_mich_bare_norotos_arc_alt_tan: rhsusf_mich_bare_norotos_arc_tan { - HEARING_PROTECTION_PELTOR + HEARING_PROTECTION_PELTOR; }; class rhsusf_hgu56p: rhsusf_opscore_01 { - HEARING_PROTECTION_VICCREW + HEARING_PROTECTION_VICCREW; }; class rhsusf_hgu56p_visor: rhsusf_hgu56p { ACE_Protection = 1; @@ -425,12 +421,12 @@ class CfgWeapons { ACE_Protection = 0; }; class rhsusf_ihadss: rhsusf_opscore_01 { - HEARING_PROTECTION_VICCREW + HEARING_PROTECTION_VICCREW; }; class H_HelmetB; class RHS_jetpilot_usaf: H_HelmetB { ACE_Protection = 1; - HEARING_PROTECTION_VICCREW + HEARING_PROTECTION_VICCREW; }; }; diff --git a/addons/compat_rhs_usf3/config.cpp b/addons/compat_rhs_usf3/config.cpp index 8eb2ef821a4..1e67b1e0075 100644 --- a/addons/compat_rhs_usf3/config.cpp +++ b/addons/compat_rhs_usf3/config.cpp @@ -1,4 +1,5 @@ #include "script_component.hpp" +#include "\z\ace\addons\hearing\script_macros_hearingProtection.hpp" class CfgPatches { class ADDON { diff --git a/addons/compat_sog/CfgWeapons/helmets.hpp b/addons/compat_sog/CfgWeapons/helmets.hpp index 8edc6e2ac7d..b5fe500fb00 100644 --- a/addons/compat_sog/CfgWeapons/helmets.hpp +++ b/addons/compat_sog/CfgWeapons/helmets.hpp @@ -1,8 +1,3 @@ -#define HEARING_PROTECTION_OPEN EGVAR(hearing,protection) = 0; EGVAR(hearing,lowerVolume) = 0 -#define HEARING_PROTECTION_VICCREW EGVAR(hearing,protection) = 0.85; EGVAR(hearing,lowerVolume) = 0.6 -#define HEARING_PROTECTION_EARMUFF EGVAR(hearing,protection) = 0.75; EGVAR(hearing,lowerVolume) = 0.5 -#define HEARING_PROTECTION_PELTOR EGVAR(hearing,protection) = 0.75; EGVAR(hearing,lowerVolume) = 0 - class vn_b_headgear_base; class vn_b_helmet_aph6_01_01: vn_b_headgear_base { HEARING_PROTECTION_VICCREW; diff --git a/addons/compat_sog/config.cpp b/addons/compat_sog/config.cpp index 8a6ed301482..62b235773b9 100644 --- a/addons/compat_sog/config.cpp +++ b/addons/compat_sog/config.cpp @@ -1,4 +1,7 @@ #include "script_component.hpp" +// ToDo: move refuel to subconfig +#include "\z\ace\addons\refuel\defines.hpp" +#include "\z\ace\addons\hearing\script_macros_hearingProtection.hpp" class CfgPatches { class ADDON { diff --git a/addons/compat_sog/script_component.hpp b/addons/compat_sog/script_component.hpp index 616cc49dc77..bc006559b37 100644 --- a/addons/compat_sog/script_component.hpp +++ b/addons/compat_sog/script_component.hpp @@ -8,7 +8,5 @@ #include "\z\ace\addons\main\script_macros.hpp" -#include "\z\ace\addons\refuel\defines.hpp" - #define EXPLOSIVES_PLACE(CLASS) EGVAR(explosives,DOUBLES(Place,CLASS)) #define QEXPLOSIVES_PLACE(CLASS) QUOTE(EXPLOSIVES_PLACE(CLASS)) diff --git a/addons/compat_spe/$PBOPREFIX$ b/addons/compat_spe/$PBOPREFIX$ new file mode 100644 index 00000000000..2334b339da3 --- /dev/null +++ b/addons/compat_spe/$PBOPREFIX$ @@ -0,0 +1 @@ +z\ace\addons\compat_spe diff --git a/addons/compat_spe/ACE_Medical_Injuries.hpp b/addons/compat_spe/ACE_Medical_Injuries.hpp new file mode 100644 index 00000000000..62acb1401fe --- /dev/null +++ b/addons/compat_spe/ACE_Medical_Injuries.hpp @@ -0,0 +1,15 @@ +class ACE_Medical_Injuries { + class damageTypes { + class woundHandlers; + + class explosive { + class woundHandlers: woundHandlers {}; + }; + class GVAR(explosive_incendiary): explosive { + class woundHandlers: woundHandlers { + // TODO use function name after bug with the woundHandlers config caching is fixed + ADDON = QUOTE({call FUNC(woundsHandlerIncendiary)}); + }; + }; + }; +}; diff --git a/addons/compat_spe/CfgAmmo.hpp b/addons/compat_spe/CfgAmmo.hpp new file mode 100644 index 00000000000..0917727974b --- /dev/null +++ b/addons/compat_spe/CfgAmmo.hpp @@ -0,0 +1,6 @@ +class CfgAmmo { + #include "CfgAmmo\bombs.hpp" + #include "CfgAmmo\explosives.hpp" + #include "CfgAmmo\grenades.hpp" + #include "CfgAmmo\melee.hpp" +}; diff --git a/addons/compat_spe/CfgAmmo/bombs.hpp b/addons/compat_spe/CfgAmmo/bombs.hpp new file mode 100644 index 00000000000..489930289c1 --- /dev/null +++ b/addons/compat_spe/CfgAmmo/bombs.hpp @@ -0,0 +1,46 @@ +class SPE_Bomb_base; +class SPE_NC250_Bomb: SPE_Bomb_base { + EGVAR(frag,enabled) = 1; + EGVAR(frag,force) = 1; + EGVAR(frag,metal) = 166000; + EGVAR(frag,charge) = 130000; + EGVAR(frag,gurney_c) = 2750; + EGVAR(frag,gurney_k) = "1/2"; + EGVAR(frag,classes)[] = {"ACE_frag_medium","ACE_frag_large","ACE_frag_huge"}; +}; +class SPE_NC50_Bomb: SPE_Bomb_base { + EGVAR(frag,enabled) = 1; + EGVAR(frag,force) = 1; + EGVAR(frag,metal) = 25000; + EGVAR(frag,charge) = 24400; + EGVAR(frag,gurney_c) = 2750; + EGVAR(frag,gurney_k) = "1/2"; + EGVAR(frag,classes)[] = {"ACE_frag_medium","ACE_frag_large"}; +}; +class SPE_SC500_Bomb: SPE_Bomb_base { + EGVAR(frag,enabled) = 1; + EGVAR(frag,force) = 1; + EGVAR(frag,metal) = 200000; + EGVAR(frag,charge) = 275000; + EGVAR(frag,gurney_c) = 2750; + EGVAR(frag,gurney_k) = "1/2"; + EGVAR(frag,classes)[] = {"ACE_frag_medium","ACE_frag_large","ACE_frag_huge"}; +}; +class SPE_US_500lb_Bomb: SPE_Bomb_base { + EGVAR(frag,enabled) = 1; + EGVAR(frag,force) = 1; + EGVAR(frag,metal) = 100000; + EGVAR(frag,charge) = 124000; + EGVAR(frag,gurney_c) = 2700; + EGVAR(frag,gurney_k) = "1/2"; + EGVAR(frag,classes)[] = {"ACE_frag_medium","ACE_frag_large","ACE_frag_huge"}; +}; +class SPE_US_1000lb_Bomb: SPE_Bomb_base { + EGVAR(frag,enabled) = 1; + EGVAR(frag,force) = 1; + EGVAR(frag,metal) = 200000; + EGVAR(frag,charge) = 158000; + EGVAR(frag,gurney_c) = 2700; + EGVAR(frag,gurney_k) = "1/2"; + EGVAR(frag,classes)[] = {"ACE_frag_medium","ACE_frag_large","ACE_frag_huge"}; +}; diff --git a/addons/compat_spe/CfgAmmo/explosives.hpp b/addons/compat_spe/CfgAmmo/explosives.hpp new file mode 100644 index 00000000000..14b49104468 --- /dev/null +++ b/addons/compat_spe/CfgAmmo/explosives.hpp @@ -0,0 +1,231 @@ +class ShellBase; +class SubmunitionBase; +class MineCore; +class PipeBombBase; +class SPE_MAIN_pipebomb: PipeBombBase {}; +class SPE_ShellHE_base: ShellBase {}; +class SPE_ShellHEAT_base: ShellBase {}; +class RocketBase; +class SPE_MAIN_mine: MineCore {}; +class SPE_Rocket_base: RocketBase {}; +class SPE_PzFaust_30m: SPE_Rocket_base { + EGVAR(frag,enabled) = 1; + EGVAR(frag,force) = 1; + EGVAR(frag,metal) = 150; + EGVAR(frag,charge) = 400; + EGVAR(frag,gurney_c) = 2440; + EGVAR(frag,gurney_k) = "1/2"; + EGVAR(frag,classes)[] = {"ACE_frag_small"}; +}; +class SPE_60mm_M6: SPE_Rocket_base { + EGVAR(frag,enabled) = 1; + EGVAR(frag,force) = 1; + EGVAR(frag,metal) = 250; + EGVAR(frag,charge) = 400; + EGVAR(frag,gurney_c) = 2750; + EGVAR(frag,gurney_k) = "1/2"; + EGVAR(frag,classes)[] = {"ACE_frag_small"}; +}; +class SPE_Sh_M43A1_81_HE: SubmunitionBase { + EGVAR(frag,enabled) = 1; + EGVAR(frag,force) = 1; + EGVAR(frag,metal) = 1200; + EGVAR(frag,charge) = 600; + EGVAR(frag,gurney_c) = 2750; + EGVAR(frag,gurney_k) = "1/2"; + EGVAR(frag,classes)[] = {"ACE_frag_medium","ACE_frag_small"}; +}; +class SPE_M48_HE: SPE_ShellHE_base { + EGVAR(frag,enabled) = 1; + EGVAR(frag,force) = 1; + EGVAR(frag,metal) = 1250; + EGVAR(frag,charge) = 670; + EGVAR(frag,gurney_c) = 2750; + EGVAR(frag,gurney_k) = "1/2"; + EGVAR(frag,classes)[] = {"ACE_frag_medium","ACE_frag_small"}; +}; +class SPE_M101_M1_HE: SPE_ShellHE_base { + EGVAR(frag,enabled) = 1; + EGVAR(frag,force) = 1; + EGVAR(frag,metal) = 2500; + EGVAR(frag,charge) = 1980; + EGVAR(frag,gurney_c) = 2750; + EGVAR(frag,gurney_k) = "1/2"; + EGVAR(frag,classes)[] = {"ACE_frag_medium","ACE_frag_large"}; +}; +class SPE_S_105L28_Gr38: SPE_ShellHE_base { + EGVAR(frag,enabled) = 1; + EGVAR(frag,force) = 1; + EGVAR(frag,metal) = 2500; + EGVAR(frag,charge) = 1500; + EGVAR(frag,gurney_c) = 2750; + EGVAR(frag,gurney_k) = "1/2"; + EGVAR(frag,classes)[] = {"ACE_frag_medium","ACE_frag_large"}; +}; +class SPE_S_105L28_Gr39HlC: SPE_ShellHEAT_base { + EGVAR(frag,enabled) = 1; + EGVAR(frag,force) = 1; + EGVAR(frag,metal) = 2500; + EGVAR(frag,charge) = 1500; + EGVAR(frag,gurney_c) = 2750; + EGVAR(frag,gurney_k) = "1/2"; + EGVAR(frag,classes)[] = {"ACE_frag_medium","ACE_frag_large"}; +}; +class SPE_R_280mm_WkSpr: SubmunitionBase { + EGVAR(frag,enabled) = 1; + EGVAR(frag,force) = 1; + EGVAR(frag,metal) = 37000; + EGVAR(frag,charge) = 50000; + EGVAR(frag,gurney_c) = 2750; + EGVAR(frag,gurney_k) = "1/2"; + EGVAR(frag,classes)[] = {"ACE_frag_medium","ACE_frag_large","ACE_frag_huge"}; +}; +class SPE_US_Bangalore_ammo: SPE_MAIN_pipebomb { + EGVAR(frag,enabled) = 1; + EGVAR(frag,force) = 1; + EGVAR(frag,metal) = 1700; + EGVAR(frag,charge) = 4100; + EGVAR(frag,gurney_c) = 2440; + EGVAR(frag,gurney_k) = "3/5"; + EGVAR(frag,classes)[] = {"ACE_frag_medium","ACE_frag_small"}; + EGVAR(explosives,defuseObjectPosition)[] = {0, 0, 0.02}; +}; +class SPE_Ladung_Big_ammo: SPE_MAIN_pipebomb { + EGVAR(frag,enabled) = 1; + EGVAR(frag,force) = 1; + EGVAR(frag,metal) = 500; + EGVAR(frag,charge) = 1500; + EGVAR(frag,gurney_c) = 2440; + EGVAR(frag,gurney_k) = "3/5"; + EGVAR(frag,classes)[] = {"ACE_frag_medium","ACE_frag_small"}; + EGVAR(explosives,defuseObjectPosition)[] = {0, 0, 0.02}; +}; +class SPE_Ladung_Small_ammo: SPE_MAIN_pipebomb { + EGVAR(frag,enabled) = 1; + EGVAR(frag,force) = 1; + EGVAR(frag,metal) = 250; + EGVAR(frag,charge) = 750; + EGVAR(frag,gurney_c) = 2440; + EGVAR(frag,gurney_k) = "3/5"; + EGVAR(frag,classes)[] = {"ACE_frag_medium","ACE_frag_small"}; + EGVAR(explosives,defuseObjectPosition)[] = {0, 0, 0.02}; +}; +class SPE_US_M1A1_ATMINE_ammo: SPE_MAIN_mine { + EGVAR(frag,enabled) = 1; + EGVAR(frag,force) = 1; + EGVAR(frag,metal) = 2100; + EGVAR(frag,charge) = 2700; + EGVAR(frag,gurney_c) = 2440; + EGVAR(frag,gurney_k) = "3/5"; + EGVAR(frag,classes)[] = {"ACE_frag_medium","ACE_frag_small"}; + EGVAR(explosives,defuseObjectPosition)[] = {0, 0, 0.02}; +}; +class SPE_US_TNT_half_pound_ammo: SPE_MAIN_pipebomb { + EGVAR(frag,enabled) = 1; + EGVAR(frag,force) = 1; + EGVAR(frag,metal) = 100; + EGVAR(frag,charge) = 226; + EGVAR(frag,gurney_c) = 2440; + EGVAR(frag,gurney_k) = "3/5"; + EGVAR(frag,classes)[] = {"ACE_frag_small"}; + EGVAR(explosives,defuseObjectPosition)[] = {0, 0, 0.02}; +}; +class SPE_US_TNT_4pound_ammo: SPE_MAIN_pipebomb { + EGVAR(frag,enabled) = 1; + EGVAR(frag,force) = 1; + EGVAR(frag,metal) = 372; + EGVAR(frag,charge) = 1814; + EGVAR(frag,gurney_c) = 2440; + EGVAR(frag,gurney_k) = "3/5"; + EGVAR(frag,classes)[] = {"ACE_frag_medium","ACE_frag_small"}; + EGVAR(explosives,defuseObjectPosition)[] = {0, 0, 0.02}; +}; +class SPE_US_M3_PRessure_ammo: SPE_MAIN_mine { + EGVAR(frag,enabled) = 1; + EGVAR(frag,force) = 1; + EGVAR(frag,metal) = 2267; + EGVAR(frag,charge) = 454; + EGVAR(frag,gurney_c) = 2440; + EGVAR(frag,gurney_k) = "3/5"; + EGVAR(frag,classes)[] = {"ACE_frag_medium","ACE_frag_small"}; + EGVAR(explosives,defuseObjectPosition)[] = {0, 0, 0.02}; +}; +class SPE_US_M3_ammo: SPE_MAIN_mine { + EGVAR(frag,enabled) = 1; + EGVAR(frag,force) = 1; + EGVAR(frag,metal) = 2267; + EGVAR(frag,charge) = 454; + EGVAR(frag,gurney_c) = 2440; + EGVAR(frag,gurney_k) = "3/5"; + EGVAR(frag,classes)[] = {"ACE_frag_medium","ACE_frag_small"}; + EGVAR(explosives,defuseObjectPosition)[] = {0, 0, 0.02}; +}; +class SPE_shumine42_ammo: SPE_MAIN_mine { + EGVAR(frag,enabled) = 1; + EGVAR(frag,force) = 1; + EGVAR(frag,metal) = 300; + EGVAR(frag,charge) = 200; + EGVAR(frag,gurney_c) = 2440; + EGVAR(frag,gurney_k) = "3/5"; + EGVAR(frag,classes)[] = {"ACE_frag_medium","ACE_frag_small"}; + EGVAR(explosives,defuseObjectPosition)[] = {0, 0, 0.02}; +}; +class SPE_Shg24x7_Improvised_Mine_ammo: SPE_MAIN_mine { + EGVAR(frag,enabled) = 1; + EGVAR(frag,force) = 1; + EGVAR(frag,metal) = 525; + EGVAR(frag,charge) = 1330; + EGVAR(frag,gurney_c) = 2440; + EGVAR(frag,gurney_k) = "3/5"; + EGVAR(frag,classes)[] = {"ACE_frag_small_HD"}; +}; +class SPE_SMI35_Pressure_ammo: SPE_MAIN_mine { + EGVAR(frag,enabled) = 1; + EGVAR(frag,force) = 1; + EGVAR(frag,metal) = 2720; + EGVAR(frag,charge) = 182; + EGVAR(frag,gurney_c) = 2440; + EGVAR(frag,gurney_k) = "3/5"; + EGVAR(frag,classes)[] = {"ACE_frag_medium","ACE_frag_small"}; + EGVAR(explosives,defuseObjectPosition)[] = {0, 0, 0.02}; +}; +class SPE_SMI35_1_ammo: SPE_MAIN_mine { + EGVAR(frag,enabled) = 1; + EGVAR(frag,force) = 1; + EGVAR(frag,metal) = 2720; + EGVAR(frag,charge) = 182; + EGVAR(frag,gurney_c) = 2440; + EGVAR(frag,gurney_k) = "3/5"; + EGVAR(frag,classes)[] = {"ACE_frag_medium","ACE_frag_small"}; + EGVAR(explosives,defuseObjectPosition)[] = {0, 0, 0.02}; +}; +class SPE_SMI35_ammo: SPE_MAIN_mine { + EGVAR(frag,enabled) = 1; + EGVAR(frag,force) = 1; + EGVAR(frag,metal) = 2720; + EGVAR(frag,charge) = 182; + EGVAR(frag,gurney_c) = 2440; + EGVAR(frag,gurney_k) = "3/5"; + EGVAR(frag,classes)[] = {"ACE_frag_medium","ACE_frag_small"}; + EGVAR(explosives,defuseObjectPosition)[] = {0, 0, 0.02}; +}; +class SPE_STMI_ammo: SPE_MAIN_mine { + EGVAR(frag,enabled) = 1; + EGVAR(frag,force) = 1; + EGVAR(frag,metal) = 1520; + EGVAR(frag,charge) = 152; + EGVAR(frag,gurney_c) = 2440; + EGVAR(frag,gurney_k) = "3/5"; + EGVAR(frag,classes)[] = {"ACE_frag_medium","ACE_frag_small"}; + EGVAR(explosives,defuseObjectPosition)[] = {0, 0, 0.02}; +}; +class SPE_TMI42_ammo: SPE_MAIN_mine { + EGVAR(frag,enabled) = 1; + EGVAR(frag,force) = 1; + EGVAR(frag,metal) = 2520; + EGVAR(frag,charge) = 5400; + EGVAR(frag,gurney_c) = 2440; + EGVAR(frag,gurney_k) = "3/5"; + EGVAR(frag,classes)[] = {"ACE_frag_medium","ACE_frag_small"}; + EGVAR(explosives,defuseObjectPosition)[] = {0, 0, 0.02}; +}; diff --git a/addons/compat_spe/CfgAmmo/grenades.hpp b/addons/compat_spe/CfgAmmo/grenades.hpp new file mode 100644 index 00000000000..12043d50116 --- /dev/null +++ b/addons/compat_spe/CfgAmmo/grenades.hpp @@ -0,0 +1,117 @@ +class GrenadeBase; +class SPE_GrenadeHand_base; +class SPE_Grenade_base: GrenadeBase {}; + +class SPE_US_M15: SPE_GrenadeHand_base { + ACE_damageType = QGVAR(explosive_incendiary); + EGVAR(frag,enabled) = 1; +}; +class SPE_Shg24: SPE_GrenadeHand_base { + EGVAR(frag,enabled) = 1; + EGVAR(frag,force) = 1; + EGVAR(frag,metal) = 75; + EGVAR(frag,charge) = 170; + EGVAR(frag,gurney_c) = 2440; + EGVAR(frag,gurney_k) = "1/2"; + EGVAR(frag,classes)[] = {"ACE_frag_tiny_HD"}; +}; +class SPE_Shg24_Frag: SPE_GrenadeHand_base { + EGVAR(frag,enabled) = 1; + EGVAR(frag,force) = 1; + EGVAR(frag,metal) = 250; + EGVAR(frag,charge) = 190; + EGVAR(frag,gurney_c) = 2440; + EGVAR(frag,gurney_k) = "1/2"; + EGVAR(frag,classes)[] = {"ACE_frag_small_HD"}; +}; +class SPE_Shg24x7: SPE_GrenadeHand_base { + EGVAR(frag,enabled) = 1; + EGVAR(frag,force) = 1; + EGVAR(frag,metal) = 525; + EGVAR(frag,charge) = 1330; + EGVAR(frag,gurney_c) = 2440; + EGVAR(frag,gurney_k) = "3/5"; + EGVAR(frag,classes)[] = {"ACE_frag_small_HD"}; +}; +class SPE_M39: SPE_GrenadeHand_base { + EGVAR(frag,enabled) = 1; + EGVAR(frag,force) = 1; + EGVAR(frag,metal) = 200; + EGVAR(frag,charge) = 112; + EGVAR(frag,gurney_c) = 2440; + EGVAR(frag,gurney_k) = "3/5"; + EGVAR(frag,classes)[] = {"ACE_frag_tiny_HD"}; +}; +class SPE_US_Mk_2: SPE_GrenadeHand_base { + EGVAR(frag,enabled) = 1; + EGVAR(frag,force) = 1; + EGVAR(frag,metal) = 400; + EGVAR(frag,charge) = 56; + EGVAR(frag,gurney_c) = 2440; + EGVAR(frag,gurney_k) = "3/5"; + EGVAR(frag,classes)[] = {"ACE_frag_small_HD"}; +}; +class SPE_US_Mk_2_Yellow: SPE_US_Mk_2 {}; +class SPE_US_Mk_3: SPE_GrenadeHand_base { + EGVAR(frag,enabled) = 1; + EGVAR(frag,force) = 1; + EGVAR(frag,metal) = 90; + EGVAR(frag,charge) = 200; + EGVAR(frag,gurney_c) = 2440; + EGVAR(frag,gurney_k) = "1/2"; + EGVAR(frag,classes)[] = {"ACE_frag_tiny_HD"}; +}; +class SPE_G_M9A1: SPE_Grenade_base { + EGVAR(frag,enabled) = 1; + EGVAR(frag,force) = 1; + EGVAR(frag,metal) = 200; + EGVAR(frag,charge) = 113; + EGVAR(frag,gurney_c) = 2750; + EGVAR(frag,gurney_k) = "1/2"; + EGVAR(frag,classes)[] = {"ACE_frag_tiny_HD"}; +}; +class SPE_G_MK2: SPE_Grenade_base { + EGVAR(frag,enabled) = 1; + EGVAR(frag,force) = 1; + EGVAR(frag,metal) = 400; + EGVAR(frag,charge) = 56; + EGVAR(frag,gurney_c) = 2440; + EGVAR(frag,gurney_k) = "3/5"; + EGVAR(frag,classes)[] = {"ACE_frag_small_HD"}; +}; +class SPE_G_PZGR_30: SPE_Grenade_base { + EGVAR(frag,enabled) = 1; + EGVAR(frag,force) = 1; + EGVAR(frag,metal) = 120; + EGVAR(frag,charge) = 50; + EGVAR(frag,gurney_c) = 2440; + EGVAR(frag,gurney_k) = "1/2"; + EGVAR(frag,classes)[] = {"ACE_frag_tiny_HD"}; +}; +class SPE_G_PZGR_40: SPE_Grenade_base { + EGVAR(frag,enabled) = 1; + EGVAR(frag,force) = 1; + EGVAR(frag,metal) = 180; + EGVAR(frag,charge) = 75; + EGVAR(frag,gurney_c) = 2440; + EGVAR(frag,gurney_k) = "1/2"; + EGVAR(frag,classes)[] = {"ACE_frag_tiny_HD"}; +}; +class SPE_G_SPRGR_30_Detonation: SPE_Grenade_base { + EGVAR(frag,enabled) = 1; + EGVAR(frag,force) = 1; + EGVAR(frag,metal) = 150; + EGVAR(frag,charge) = 200; + EGVAR(frag,gurney_c) = 2440; + EGVAR(frag,gurney_k) = "1/2"; + EGVAR(frag,classes)[] = {"ACE_frag_small_HD"}; +}; + +class SmokeShell; +class SPE_SmokeShell_base: SmokeShell {}; +class SPE_US_AN_M14: SPE_SmokeShell_base { + EGVAR(grenades,incendiary) = 1; +}; +class SPE_US_Mk_1: SPE_SmokeShell_base { + EGVAR(frag,enabled) = 0; +}; diff --git a/addons/compat_spe/CfgAmmo/melee.hpp b/addons/compat_spe/CfgAmmo/melee.hpp new file mode 100644 index 00000000000..d9a07beb8ba --- /dev/null +++ b/addons/compat_spe/CfgAmmo/melee.hpp @@ -0,0 +1,12 @@ +class BulletBase; +class BulletCore; +class BulletBase_NonAceAB: BulletCore {}; +class SPE_Bullet_base: BulletBase {}; + +class SPE_B_Bayonet: SPE_Bullet_base { + ACE_damageType = "stab"; +}; + +class SPE_Base_Flamethrower_Ammo: BulletBase_NonAceAB { + ACE_damageType = QGVAR(explosive_incendiary); +}; diff --git a/addons/compat_spe/CfgEventHandlers.hpp b/addons/compat_spe/CfgEventHandlers.hpp new file mode 100644 index 00000000000..865276cfba9 --- /dev/null +++ b/addons/compat_spe/CfgEventHandlers.hpp @@ -0,0 +1,11 @@ +class Extended_PreStart_EventHandlers { + class ADDON { + init = QUOTE(call COMPILE_SCRIPT(XEH_preStart)); + }; +}; + +class Extended_PreInit_EventHandlers { + class ADDON { + init = QUOTE(call COMPILE_SCRIPT(XEH_preInit)); + }; +}; diff --git a/addons/compat_spe/CfgGlasses.hpp b/addons/compat_spe/CfgGlasses.hpp new file mode 100644 index 00000000000..12f47c40994 --- /dev/null +++ b/addons/compat_spe/CfgGlasses.hpp @@ -0,0 +1,39 @@ +#define COMBAT_GOGGLES ACE_Overlay = QPATHTOEF(goggles,textures\HUD\CombatGoggles.paa); \ + ACE_OverlayCracked = QPATHTOEF(goggles,textures\HUD\CombatGogglesCracked.paa); \ + ACE_Resistance = 2; \ + ACE_Protection = 1; + +class CfgGlasses { + class SPE_GER_Glasses; + class G_SPE_Dust_Goggles_2: SPE_GER_Glasses { + ACE_TintAmount = 16; + COMBAT_GOGGLES + }; + class G_SPE_Dust_Goggles: SPE_GER_Glasses { + ACE_TintAmount = 8; + COMBAT_GOGGLES + }; + class SPE_US_Glasses; + class G_SPE_SWDG_Goggles: SPE_US_Glasses { + COMBAT_GOGGLES + }; + class G_SPE_Polar_Goggles: SPE_US_Glasses { + COMBAT_GOGGLES + }; + class G_SPE_Sunglasses_GER_Brown: SPE_GER_Glasses { + ACE_TintAmount = 16; + ACE_Resistance = 1; + }; + class G_SPE_Sunglasses_GER_Red: SPE_GER_Glasses { + ACE_TintAmount = 16; + ACE_Resistance = 1; + }; + class G_SPE_Sunglasses_US_Red: SPE_US_Glasses { + ACE_TintAmount = 16; + ACE_Resistance = 1; + }; + class G_SPE_Sunglasses_US_Yellow: SPE_US_Glasses { + ACE_TintAmount = 16; + ACE_Resistance = 1; + }; +}; diff --git a/addons/compat_spe/CfgMagazines.hpp b/addons/compat_spe/CfgMagazines.hpp new file mode 100644 index 00000000000..e3ac58ca41f --- /dev/null +++ b/addons/compat_spe/CfgMagazines.hpp @@ -0,0 +1,3 @@ +class CfgMagazines { + #include "CfgMagazines\csw.hpp" +}; diff --git a/addons/compat_spe/CfgMagazines/csw.hpp b/addons/compat_spe/CfgMagazines/csw.hpp new file mode 100644 index 00000000000..404156bd8f8 --- /dev/null +++ b/addons/compat_spe/CfgMagazines/csw.hpp @@ -0,0 +1,44 @@ +class CA_Magazine; + +// M1919A4/A6 +class SPE_50Rnd_762x63: CA_Magazine { + ACE_isBelt = 0; +}; + +class SPE_100Rnd_762x63: SPE_50Rnd_762x63 { + ACE_isBelt = 1; +}; + +class SPE_100Rnd_762x63_M1: SPE_100Rnd_762x63 { + ACE_isBelt = 1; +}; + +class SPE_100Rnd_762x63_M2_AP: SPE_100Rnd_762x63 { + ACE_isBelt = 1; +}; + +//MG34/42 + +class SPE_50Rnd_792x57: CA_Magazine { + ACE_isBelt = 0; +}; + +class SPE_50Rnd_792x57_sS: SPE_50Rnd_792x57 { + ACE_isBelt = 0; +}; + +class SPE_50Rnd_792x57_SMK: SPE_50Rnd_792x57_sS { + ACE_isBelt = 0; +}; + +class SPE_100Rnd_792x57: SPE_50Rnd_792x57 { + ACE_isBelt = 1; +}; + +class SPE_100Rnd_792x57_sS: SPE_50Rnd_792x57_sS { + ACE_isBelt = 1; +}; + +class SPE_100Rnd_792x57_SMK: SPE_50Rnd_792x57_SMK { + ACE_isBelt = 1; +}; diff --git a/addons/compat_spe/CfgVehicles.hpp b/addons/compat_spe/CfgVehicles.hpp new file mode 100644 index 00000000000..9ed470ec581 --- /dev/null +++ b/addons/compat_spe/CfgVehicles.hpp @@ -0,0 +1,7 @@ +class CfgVehicles { + #include "CfgVehicles\backpacks.hpp" + #include "CfgVehicles\planes.hpp" + #include "CfgVehicles\spe_boxes.hpp" + #include "CfgVehicles\tracked.hpp" + #include "CfgVehicles\wheeled.hpp" +}; diff --git a/addons/compat_spe/CfgVehicles/backpacks.hpp b/addons/compat_spe/CfgVehicles/backpacks.hpp new file mode 100644 index 00000000000..d7ac57ffdd2 --- /dev/null +++ b/addons/compat_spe/CfgVehicles/backpacks.hpp @@ -0,0 +1,40 @@ +class B_SPE_US_Backpack; + +class B_SPE_US_Backpack_roll: B_SPE_US_Backpack { + EGVAR(trenches,entrenchingTool) = 1; +}; +class B_SPE_US_Respawn_Tent: B_SPE_US_Backpack_roll { + EGVAR(trenches,entrenchingTool) = 1; +}; +class B_SPE_US_HMGAssistantBag: B_SPE_US_Backpack { + EGVAR(trenches,entrenchingTool) = 1; +}; +class B_SPE_US_Backpack_Bandoleer: B_SPE_US_Backpack { + EGVAR(trenches,entrenchingTool) = 1; +}; +class B_SPE_US_Backpack_dday: B_SPE_US_Backpack { + EGVAR(trenches,entrenchingTool) = 1; +}; +class B_SPE_US_Backpack_M43: B_SPE_US_Backpack { + EGVAR(trenches,entrenchingTool) = 1; +}; +class B_SPE_US_Backpack_M43_GP: B_SPE_US_Backpack { + EGVAR(trenches,entrenchingTool) = 1; +}; +class B_SPE_US_Backpack_RocketBag: B_SPE_US_Backpack { + EGVAR(trenches,entrenchingTool) = 1; +}; +class B_SPE_US_Backpack_RocketBag_Empty: B_SPE_US_Backpack_RocketBag { + EGVAR(trenches,entrenchingTool) = 1; +}; + +class B_SPE_US_packboard; +class B_SPE_US_packboard_ammo: B_SPE_US_packboard { + EGVAR(trenches,entrenchingTool) = 1; +}; +class B_SPE_US_packboard_eng: B_SPE_US_packboard { + EGVAR(trenches,entrenchingTool) = 1; +}; +class B_SPE_US_packboard_mortar: B_SPE_US_packboard { + EGVAR(trenches,entrenchingTool) = 1; +}; diff --git a/addons/compat_spe/CfgVehicles/planes.hpp b/addons/compat_spe/CfgVehicles/planes.hpp new file mode 100644 index 00000000000..8c0c6ed753c --- /dev/null +++ b/addons/compat_spe/CfgVehicles/planes.hpp @@ -0,0 +1,18 @@ +class Plane_Base_F; +class SPE_Plane_base: Plane_Base_F { + EGVAR(refuel,canReceive) = 1; + EGVAR(cargo,hasCargo) = 1; + EGVAR(cargo,space) = 4; +}; + +// ALLIED FORCES +class SPE_US_Plane_base: SPE_Plane_base {}; +class SPE_P47: SPE_US_Plane_base { + EGVAR(refuel,fuelCapacity) = 1155; +}; + +// AXIS FORCES +class SPE_GER_Plane_base: SPE_Plane_base {}; +class SPE_FW190F8: SPE_GER_Plane_base { + EGVAR(refuel,fuelCapacity) = 639; +}; diff --git a/addons/compat_spe/CfgVehicles/spe_boxes.hpp b/addons/compat_spe/CfgVehicles/spe_boxes.hpp new file mode 100644 index 00000000000..2d6afc9b4a1 --- /dev/null +++ b/addons/compat_spe/CfgVehicles/spe_boxes.hpp @@ -0,0 +1,35 @@ + +// dragging carrying items +class ReammoBox_F; +class SPE_ReammoBox_base: ReammoBox_F { + EGVAR(cargo,size) = 1; + EGVAR(cargo,canLoad) = 1; + + EGVAR(dragging,canCarry) = 1; + EGVAR(dragging,carryPosition)[] = {0,1,1}; + EGVAR(dragging,carryDirection) = 0; + + EGVAR(dragging,canDrag) = 1; + EGVAR(dragging,dragPosition)[] = {0,1.2,0}; + EGVAR(dragging,dragDirection) = 0; +}; + +class SPE_Fuel_Barrel_base; +class SPE_Fuel_Barrel_US_01: SPE_Fuel_Barrel_base { + EGVAR(cargo,size) = 2; + EGVAR(cargo,canLoad) = 1; + + EGVAR(dragging,canCarry) = 1; + EGVAR(dragging,carryPosition)[] = {0,1,1}; + EGVAR(dragging,carryDirection) = 0; + + EGVAR(dragging,canDrag) = 1; + EGVAR(dragging,dragPosition)[] = {0,1.2,0}; + EGVAR(dragging,dragDirection) = 0; + + EGVAR(refuel,fuelCargo) = 208; + EGVAR(refuel,hooks)[] = {{0.2,0,0.22}}; +}; +class SPE_Fuel_Barrel_German_01: SPE_Fuel_Barrel_base { + EGVAR(refuel,hooks)[] = {{0.32,0,-0.3}}; +}; diff --git a/addons/compat_spe/CfgVehicles/tracked.hpp b/addons/compat_spe/CfgVehicles/tracked.hpp new file mode 100644 index 00000000000..8b0245aa823 --- /dev/null +++ b/addons/compat_spe/CfgVehicles/tracked.hpp @@ -0,0 +1,55 @@ +class Tank_F; +class SPE_Tank_base: Tank_F { + EGVAR(cargo,hasCargo) = 1; + EGVAR(cargo,space) = 4; + EGVAR(refuel,canReceive) = 1; + EGVAR(vehicle_damage,hullDetonationProb) = 0.01; + EGVAR(vehicle_damage,turretDetonationProb) = 0.01; + EGVAR(vehicle_damage,engineDetonationProb) = 0.01; + EGVAR(vehicle_damage,hullFireProb) = 0.2; + EGVAR(vehicle_damage,turretFireProb) = 0.1; + EGVAR(vehicle_damage,engineFireProb) = 0.2; + EGVAR(vehicle_damage,detonationDuringFireProb) = 0.2; + EGVAR(vehicle_damage,canHaveFireRing) = 1; +}; + +// ALLIED FORCES +class SPE_M4A1_Sherman_HullMG_base; + +class SPE_M4A1_75: SPE_M4A1_Sherman_HullMG_base { + EGVAR(refuel,fuelCapacity) = 660; +}; + +class SPE_M4A1_76: SPE_M4A1_Sherman_HullMG_base { + EGVAR(refuel,fuelCapacity) = 520; +}; + +class SPE_M4A1_T34_Calliope: SPE_M4A1_Sherman_HullMG_base { + EGVAR(refuel,fuelCapacity) = 520; +}; + +class SPE_M10_base: SPE_Tank_base { + EGVAR(refuel,fuelCapacity) = 620; +}; + +class SPE_M18_Hellcat_Base: SPE_Tank_base { + EGVAR(refuel,fuelCapacity) = 620; +}; + +// AXIS FORCES + +class SPE_Nashorn_base: SPE_Tank_base { + EGVAR(refuel,fuelCapacity) = 470; +}; + +class SPE_PzKpfwVI_H1_base: SPE_Tank_base { + EGVAR(refuel,fuelCapacity) = 540; +}; + +class SPE_PzKpfwIV_G_base: SPE_Tank_base { + EGVAR(refuel,fuelCapacity) = 600; +}; + +class SPE_PzKpfwIII_Base: SPE_Tank_base { + EGVAR(refuel,fuelCapacity) = 320; +}; diff --git a/addons/compat_spe/CfgVehicles/wheeled.hpp b/addons/compat_spe/CfgVehicles/wheeled.hpp new file mode 100644 index 00000000000..6ed68dfbdfb --- /dev/null +++ b/addons/compat_spe/CfgVehicles/wheeled.hpp @@ -0,0 +1,71 @@ +class Truck_F; +class SPE_Truck_base: Truck_F { + EGVAR(cargo,hasCargo) = 1; + EGVAR(cargo,space) = 4; + EGVAR(refuel,canReceive) = 1; + EGVAR(refuel,fuelCapacity) = 88; + EGVAR(vehicle_damage,hullDetonationProb) = 0.2; + EGVAR(vehicle_damage,turretDetonationProb) = 0.03; + EGVAR(vehicle_damage,engineDetonationProb) = 0.03; + EGVAR(vehicle_damage,hullFireProb) = 0.6; + EGVAR(vehicle_damage,turretFireProb) = 0.1; + EGVAR(vehicle_damage,engineFireProb) = 0.2; + EGVAR(vehicle_damage,detonationDuringFireProb) = 0.2; + EGVAR(vehicle_damage,canHaveFireRing) = 1; +}; +class SPE_WheeledTracked_APC_base: SPE_Truck_base { + EGVAR(refuel,fuelCapacity) = 140; + EGVAR(vehicle_damage,hullDetonationProb) = 0.03; + EGVAR(vehicle_damage,turretDetonationProb) = 0.03; + EGVAR(vehicle_damage,engineDetonationProb) = 0.03; + EGVAR(vehicle_damage,hullFireProb) = 0.3; + EGVAR(vehicle_damage,turretFireProb) = 0.1; + EGVAR(vehicle_damage,engineFireProb) = 0.2; + EGVAR(vehicle_damage,detonationDuringFireProb) = 0.2; + EGVAR(vehicle_damage,canHaveFireRing) = 1; +}; + +class SPE_Halftrack_base: SPE_WheeledTracked_APC_base { + EGVAR(refuel,fuelCapacity) = 230; + EGVAR(vehicle_damage,hullDetonationProb) = 0.03; + EGVAR(vehicle_damage,turretDetonationProb) = 0.03; + EGVAR(vehicle_damage,engineDetonationProb) = 0.03; + EGVAR(vehicle_damage,hullFireProb) = 0.3; + EGVAR(vehicle_damage,turretFireProb) = 0.1; + EGVAR(vehicle_damage,engineFireProb) = 0.2; + EGVAR(vehicle_damage,detonationDuringFireProb) = 0.2; + EGVAR(vehicle_damage,canHaveFireRing) = 1; +}; + + +// WHEELED - AXIS +class SPE_OpelBlitz_base: SPE_Truck_base { + EGVAR(refuel,fuelCapacity) = 88; +}; + +class SPE_OpelBlitz_Ambulance: SPE_OpelBlitz_base { + EGVAR(medical,medicClass) = 1; +}; + +class SPE_OpelBlitz_Repair: SPE_OpelBlitz_base { + EGVAR(repair,canRepair) = 1; + EGVAR(rearm,defaultSupply) = 1200; +}; + +class SPE_OpelBlitz_Ammo: SPE_OpelBlitz_base { + EGVAR(rearm,defaultSupply) = 1200; +}; + +// WHEELED - ALLIED FORCES + +class SPE_US_M3_Halftrack_Ambulance: SPE_Halftrack_base { + EGVAR(medical,medicClass) = 1; +}; + +class SPE_US_M3_Halftrack_Repair: SPE_Halftrack_base { + EGVAR(repair,canRepair) = 1; +}; + +class SPE_US_M3_Halftrack_Ammo: SPE_Halftrack_base { + EGVAR(rearm,defaultSupply) = 1200; +}; diff --git a/addons/compat_spe/CfgWeapons.hpp b/addons/compat_spe/CfgWeapons.hpp new file mode 100644 index 00000000000..f6b1532bdad --- /dev/null +++ b/addons/compat_spe/CfgWeapons.hpp @@ -0,0 +1,5 @@ +class CfgWeapons { + #include "CfgWeapons\helmets.hpp" + #include "CfgWeapons\launchers.hpp" + #include "CfgWeapons\weapons.hpp" +}; diff --git a/addons/compat_spe/CfgWeapons/helmets.hpp b/addons/compat_spe/CfgWeapons/helmets.hpp new file mode 100644 index 00000000000..54cbfd15b86 --- /dev/null +++ b/addons/compat_spe/CfgWeapons/helmets.hpp @@ -0,0 +1,142 @@ +class H_SPE_HelmetB; +class H_SPE_Hat: H_SPE_HelmetB {}; + +//ALLIED PILOT +class H_SPE_US_Helmet_Pilot: H_SPE_Hat { + HEARING_PROTECTION_EARMUFF; +}; +class H_SPE_US_Helmet_Pilot_Op: H_SPE_US_Helmet_Pilot { + HEARING_PROTECTION_EARMUFF; +}; +class H_SPE_US_Helmet_Pilot_Glasses_Up: H_SPE_US_Helmet_Pilot { + HEARING_PROTECTION_EARMUFF; +}; +class H_SPE_US_Helmet_Pilot_Glasses_Down: H_SPE_US_Helmet_Pilot { + HEARING_PROTECTION_EARMUFF; +}; +class H_SPE_US_Helmet_Pilot_Respirator: H_SPE_US_Helmet_Pilot { + HEARING_PROTECTION_EARMUFF; +}; +class H_SPE_US_Helmet_Pilot_Respirator_Glasses_Up: H_SPE_US_Helmet_Pilot_Respirator { + HEARING_PROTECTION_EARMUFF; +}; +class H_SPE_US_Helmet_Pilot_Respirator_Glasses_Down: H_SPE_US_Helmet_Pilot_Respirator { + HEARING_PROTECTION_EARMUFF; +}; +class H_SPE_US_Helmet_Pilot_SWDG_Respirator: H_SPE_US_Helmet_Pilot { + HEARING_PROTECTION_EARMUFF; +}; +class H_SPE_US_Helmet_Pilot_SWDG_low_Respirator: H_SPE_US_Helmet_Pilot { + HEARING_PROTECTION_EARMUFF; +}; +class H_SPE_US_Helmet_H15: H_SPE_US_Helmet_Pilot { + HEARING_PROTECTION_EARMUFF; +}; +class H_SPE_US_Helmet_H15_Op: H_SPE_US_Helmet_H15 { + HEARING_PROTECTION_EARMUFF; +}; +class H_SPE_US_Helmet_H15_SWDG: H_SPE_US_Helmet_H15 { + HEARING_PROTECTION_EARMUFF; +}; +class H_SPE_US_Helmet_H15_SWDG_low: H_SPE_US_Helmet_H15 { + HEARING_PROTECTION_EARMUFF; +}; +class H_SPE_US_Helmet_H15_O2: H_SPE_US_Helmet_H15 { + HEARING_PROTECTION_EARMUFF; +}; +class H_SPE_US_Helmet_H15_B7_O2: H_SPE_US_Helmet_H15_O2 { + HEARING_PROTECTION_EARMUFF; +}; +class H_SPE_US_Helmet_H15_B7_low_O2: H_SPE_US_Helmet_H15_O2 { + HEARING_PROTECTION_EARMUFF; +}; +class H_SPE_US_Helmet_H15_SWDG_O2: H_SPE_US_Helmet_H15_O2 { + HEARING_PROTECTION_EARMUFF; +}; +class H_SPE_US_Helmet_H15_SWDG_low_O2: H_SPE_US_Helmet_H15_O2 { + HEARING_PROTECTION_EARMUFF; +}; + +//ALLIED TANKER +class H_SPE_US_Helmet_Tank: H_SPE_HelmetB { + HEARING_PROTECTION_EARMUFF; +}; +class H_SPE_US_Helmet_Tank_NG: H_SPE_US_Helmet_Tank { + HEARING_PROTECTION_EARMUFF; +}; +class H_SPE_US_Helmet_Tank_Nun: H_SPE_US_Helmet_Tank { + HEARING_PROTECTION_OPEN; +}; +class H_SPE_US_Helmet_Tank_M1_OS: H_SPE_US_Helmet_Tank { + HEARING_PROTECTION_EARMUFF; +}; +class H_SPE_US_Helmet_Tank_M1_NS: H_SPE_US_Helmet_Tank_M1_OS { + HEARING_PROTECTION_EARMUFF; +}; +class H_SPE_US_Helmet_Tank_M1_Scrim: H_SPE_US_Helmet_Tank_M1_OS { + HEARING_PROTECTION_EARMUFF; +}; +class H_SPE_US_Helmet_Tank_polar: H_SPE_US_Helmet_Tank { + HEARING_PROTECTION_EARMUFF; +}; +class H_SPE_US_Helmet_Tank_polar_tapes: H_SPE_US_Helmet_Tank_polar { + HEARING_PROTECTION_EARMUFF; +}; +class H_SPE_US_Helmet_Tank_polar_low: H_SPE_US_Helmet_Tank_polar { + HEARING_PROTECTION_EARMUFF; +}; +class H_SPE_US_Helmet_Tank_tapes: H_SPE_US_Helmet_Tank { + HEARING_PROTECTION_EARMUFF; +}; + +//AXIS PILOT +class H_SPE_GER_LW_PilotHelmet_base: H_SPE_Hat { + HEARING_PROTECTION_EARMUFF; +}; +class H_SPE_GER_LW_PilotHelmet: H_SPE_GER_LW_PilotHelmet_base { + HEARING_PROTECTION_EARMUFF; +}; +class H_SPE_GER_LW_S_PilotHelmet: H_SPE_GER_LW_PilotHelmet_base { + HEARING_PROTECTION_EARMUFF; +}; +class H_SPE_GER_LW_PilotHelmet_Mask_base: H_SPE_Hat { + HEARING_PROTECTION_EARMUFF; +}; +class H_SPE_GER_LW_PilotHelmet_Mask: H_SPE_GER_LW_PilotHelmet_Mask_base { + HEARING_PROTECTION_EARMUFF; +}; +class H_SPE_GER_LW_PilotHelmet_S_Mask: H_SPE_GER_LW_PilotHelmet_Mask_base { + HEARING_PROTECTION_EARMUFF; +}; + +//AXIS TANKER +class H_SPE_GER_TankPrivateCap: H_SPE_Hat { + HEARING_PROTECTION_OPEN; +}; +class H_SPE_GER_TankOfficerCap: H_SPE_Hat { + HEARING_PROTECTION_OPEN; +}; +class H_SPE_GER_Fieldcap: H_SPE_Hat { + HEARING_PROTECTION_OPEN; +}; +class H_SPE_GER_Fieldcap2: H_SPE_GER_Fieldcap { + HEARING_PROTECTION_OPEN; +}; +class H_SPE_GER_TankPrivateCap2: H_SPE_GER_TankPrivateCap { + HEARING_PROTECTION_EARMUFF; +}; +class H_SPE_GER_TankOffzCap2: H_SPE_GER_TankPrivateCap { + HEARING_PROTECTION_EARMUFF; +}; +class H_SPE_GER_TankOfficerCap2: H_SPE_GER_TankOfficerCap { + HEARING_PROTECTION_EARMUFF; +}; +class H_SPE_GER_SPGPrivateCap: H_SPE_Hat { + HEARING_PROTECTION_EARMUFF; +}; +class H_SPE_GER_ST_Tanker_Cap2: H_SPE_GER_Fieldcap2 { + HEARING_PROTECTION_EARMUFF; +}; +class H_SPE_GER_ST_Tanker_Cap: H_SPE_GER_Fieldcap { + HEARING_PROTECTION_EARMUFF; +}; diff --git a/addons/compat_spe/CfgWeapons/launchers.hpp b/addons/compat_spe/CfgWeapons/launchers.hpp new file mode 100644 index 00000000000..95de9e0e333 --- /dev/null +++ b/addons/compat_spe/CfgWeapons/launchers.hpp @@ -0,0 +1,17 @@ +class Launcher_Base_F; + +// LAUNCHER +class SPE_LAUNCHER: Launcher_Base_F {}; +class SPE_M1A1_Bazooka: SPE_LAUNCHER { + EGVAR(reloadlaunchers,enabled) = 1; + EGVAR(overpressure,angle) = 60; + EGVAR(overpressure,damage) = 0.7; + EGVAR(overpressure,priority) = 1; + EGVAR(overpressure,range) = 10; +}; +class SPE_PzFaust_30m: SPE_LAUNCHER { + EGVAR(overpressure,angle) = 60; + EGVAR(overpressure,damage) = 0.7; + EGVAR(overpressure,priority) = 1; + EGVAR(overpressure,range) = 10; +}; diff --git a/addons/compat_spe/CfgWeapons/weapons.hpp b/addons/compat_spe/CfgWeapons/weapons.hpp new file mode 100644 index 00000000000..52e6ba1dd5b --- /dev/null +++ b/addons/compat_spe/CfgWeapons/weapons.hpp @@ -0,0 +1,195 @@ +// MACHINE GUNS +class SPE_LMG; +class SPE_MG42: SPE_LMG { + ACE_barrelTwist = 304.8; + ACE_barrelLength = 533; + EGVAR(overheating,mrbs) = 3000; + EGVAR(overheating,closedBolt) = 0; + EGVAR(overheating,slowdownFactor) = 1; + EGVAR(overheating,allowSwapBarrel) = 1; + EGVAR(overheating,dispersion) = 0.25; +}; +class SPE_MG34: SPE_LMG { + ACE_barrelTwist = 101.6; + ACE_barrelLength = 627; + EGVAR(overheating,mrbs) = 3000; + EGVAR(overheating,closedBolt) = 0; + EGVAR(overheating,slowdownFactor) = 1; + EGVAR(overheating,allowSwapBarrel) = 1; + EGVAR(overheating,dispersion) = 0.25; +}; +class SPE_M1919A4: SPE_LMG { + ACE_barrelTwist = 254; + ACE_barrelLength = 610; + EGVAR(overheating,mrbs) = 3000; + EGVAR(overheating,closedBolt) = 1; + EGVAR(overheating,slowdownFactor) = 1; + EGVAR(overheating,allowSwapBarrel) = 1; + EGVAR(overheating,dispersion) = 0.25; +}; +class SPE_M1919A6: SPE_M1919A4 { + ACE_barrelTwist = 254; + ACE_barrelLength = 610; + EGVAR(overheating,mrbs) = 3000; + EGVAR(overheating,closedBolt) = 1; + EGVAR(overheating,slowdownFactor) = 1; + EGVAR(overheating,allowSwapBarrel) = 1; + EGVAR(overheating,dispersion) = 0.25; +}; +class SPE_M1918A2_BAR: SPE_LMG { + ACE_barrelTwist = 254; // unknown set to 1:10 + ACE_barrelLength = 610; + EGVAR(overheating,mrbs) = 3000; + EGVAR(overheating,closedBolt) = 0; + EGVAR(overheating,slowdownFactor) = 1; + EGVAR(overheating,allowSwapBarrel) = 0; + EGVAR(overheating,dispersion) = 0.25; +}; +class SPE_FM_24_M29: SPE_LMG { + ACE_barrelTwist = 254; + ACE_barrelLength = 635; + EGVAR(overheating,mrbs) = 3000; + EGVAR(overheating,closedBolt) = 0; + EGVAR(overheating,slowdownFactor) = 1; + EGVAR(overheating,allowSwapBarrel) = 1; + EGVAR(overheating,dispersion) = 0.25; +}; + +// SELF LOADING RIFLES +class SPE_RIFLE; +class SPE_G43: SPE_RIFLE { + EGVAR(overheating,JamChance) = 0.0003; + ACE_barrelTwist = 254; // unknown set to 1:10 + ACE_barrelLength = 550; +}; +class SPE_K98: SPE_RIFLE { + EGVAR(overheating,JamChance) = 0.0003; + ACE_barrelTwist = 254; // unknown set to 1:10 + ACE_barrelLength = 550; +}; +class SPE_M1_Carbine: SPE_RIFLE { + EGVAR(overheating,JamChance) = 0.0003; + ACE_barrelTwist = 254; // unknown set to 1:10 + ACE_barrelLength = 460; +}; +class SPE_M1_Garand: SPE_RIFLE { + EGVAR(overheating,JamChance) = 0.0003; + ACE_barrelTwist = 254; + ACE_barrelLength = 609.6; +}; +class SPE_M1903A3_Springfield: SPE_RIFLE { + ACE_barrelTwist = 254; + ACE_barrelLength = 610; +}; + +// ASSAULT RIFLE +class SPE_STG44: SPE_RIFLE { + EGVAR(overheating,JamChance) = 0.0015; + ACE_barrelTwist = 254; // unknown set to 1:10 + ACE_barrelLength = 420; +}; + +// BOLT ACTION RIFLES +class SPE_SRIFLE; +class SPE_K98ZF39: SPE_SRIFLE { + ACE_barrelTwist = 240; + ACE_barrelLength = 600; + ACE_scopeZeroRange = 100; + ACE_ScopeAdjust_Vertical[] = {-4, 30}; + ACE_ScopeAdjust_Horizontal[] = {-6, 6}; + ACE_ScopeAdjust_VerticalIncrement = 0.1; + ACE_ScopeAdjust_HorizontalIncrement = 0.1; + discreteDistance[] = {100}; + discreteDistanceInitIndex = 0; + ACE_railHeightAboveBore = 1.8; // Distance between center of bore and rail in centimeters + ACE_scopeHeightAboveRail = 3.8; // Distance between center of scope and rail in centimeters +}; +class SPE_M1903A4_Springfield: SPE_SRIFLE { + ACE_barrelTwist = 254; + ACE_barrelLength = 610; + ACE_scopeZeroRange = 100; + ACE_ScopeAdjust_Vertical[] = {-4, 30}; + ACE_ScopeAdjust_Horizontal[] = {-6, 6}; + ACE_ScopeAdjust_VerticalIncrement = 0.1; + ACE_ScopeAdjust_HorizontalIncrement = 0.1; + discreteDistance[] = {100}; + discreteDistanceInitIndex = 0; + ACE_railHeightAboveBore = 1.8; + ACE_scopeHeightAboveRail = 3.8; +}; + +// SUB MACHINE GUNS +class SPE_SMG; +class SPE_MP40: SPE_SMG { + ACE_barrelTwist = 203.2; + ACE_barrelLength = 251; + EGVAR(overheating,closedBolt) = 0; +}; +class SPE_Sten_Mk2: SPE_SMG { + ACE_barrelTwist = 254; + ACE_barrelLength = 196; + EGVAR(overheating,closedBolt) = 0; +}; +class SPE_M1A1_Thompson: SPE_SMG { + ACE_barrelTwist = 392; + ACE_barrelLength = 270; + EGVAR(overheating,closedBolt) = 0; +}; +class SPE_M3_GreaseGun: SPE_SMG { + ACE_barrelTwist = 392; + ACE_barrelLength = 270; + EGVAR(overheating,closedBolt) = 0; +}; + +// VESTS +class V_SPE_Vest_Camo_Base; +class V_SPE_GER_VestG43: V_SPE_Vest_Camo_Base { + EGVAR(trenches,entrenchingTool) = 1; +}; +class V_SPE_DAK_VestG43: V_SPE_GER_VestG43 { + EGVAR(trenches,entrenchingTool) = 1; +}; +class V_SPE_GER_SaniVest2: V_SPE_Vest_Camo_Base { + EGVAR(trenches,entrenchingTool) = 1; +}; +class V_SPE_GER_VestMG: V_SPE_Vest_Camo_Base { + EGVAR(trenches,entrenchingTool) = 1; +}; +class V_SPE_GER_VestKar98: V_SPE_Vest_Camo_Base { + EGVAR(trenches,entrenchingTool) = 1; +}; +class V_SPE_GER_VestMP40: V_SPE_Vest_Camo_Base { + EGVAR(trenches,entrenchingTool) = 1; +}; +class V_SPE_GER_VestSTG: V_SPE_Vest_Camo_Base { + EGVAR(trenches,entrenchingTool) = 1; +}; +class V_SPE_US_Assault_Vest: V_SPE_Vest_Camo_Base { + EGVAR(trenches,entrenchingTool) = 1; +}; +class V_SPE_US_Vest_Garand_M43: V_SPE_Vest_Camo_Base { + EGVAR(trenches,entrenchingTool) = 1; +}; +class V_SPE_US_Vest_Carbine_m43: V_SPE_Vest_Camo_Base { + EGVAR(trenches,entrenchingTool) = 1; +}; +class V_SPE_US_Vest_Carbine_pick: V_SPE_Vest_Camo_Base { + EGVAR(trenches,entrenchingTool) = 1; + ACE_isWirecutter = 1; +}; +class V_SPE_US_Vest_Carbine_eng: V_SPE_Vest_Camo_Base { + EGVAR(trenches,entrenchingTool) = 1; + ACE_isWirecutter = 1; +}; +class V_SPE_US_Vest_Garand_eng: V_SPE_Vest_Camo_Base { + EGVAR(trenches,entrenchingTool) = 1; + ACE_isWirecutter = 1; +}; +class V_SPE_GER_PioneerVest: V_SPE_Vest_Camo_Base { + EGVAR(trenches,entrenchingTool) = 1; + ACE_isWirecutter = 1; +}; +class V_SPE_DAK_PioneerVest: V_SPE_GER_PioneerVest { + EGVAR(trenches,entrenchingTool) = 1; + ACE_isWirecutter = 1; +}; diff --git a/addons/compat_spe/XEH_PREP.hpp b/addons/compat_spe/XEH_PREP.hpp new file mode 100644 index 00000000000..3d54401fe3f --- /dev/null +++ b/addons/compat_spe/XEH_PREP.hpp @@ -0,0 +1 @@ +PREP(woundsHandlerIncendiary); diff --git a/addons/compat_spe/XEH_preStart.sqf b/addons/compat_spe/XEH_preStart.sqf new file mode 100644 index 00000000000..022888575ed --- /dev/null +++ b/addons/compat_spe/XEH_preStart.sqf @@ -0,0 +1,3 @@ +#include "script_component.hpp" + +#include "XEH_PREP.hpp" diff --git a/addons/compat_spe/XEH_preinit.sqf b/addons/compat_spe/XEH_preinit.sqf new file mode 100644 index 00000000000..b47cf6628db --- /dev/null +++ b/addons/compat_spe/XEH_preinit.sqf @@ -0,0 +1,9 @@ +#include "script_component.hpp" + +ADDON = false; + +PREP_RECOMPILE_START; +#include "XEH_PREP.hpp" +PREP_RECOMPILE_END; + +ADDON = true; diff --git a/addons/compat_spe/compat_spe_csw/ACE_CSW_Groups.hpp b/addons/compat_spe/compat_spe_csw/ACE_CSW_Groups.hpp new file mode 100644 index 00000000000..35758ed5333 --- /dev/null +++ b/addons/compat_spe/compat_spe_csw/ACE_CSW_Groups.hpp @@ -0,0 +1,50 @@ +class ACE_CSW_Groups { + + // --- Gun Turrets ------------------------------------------------------------- + + class SPE_100Rnd_762x63 { + SPE_100Rnd_762x63 = 1; + }; + + class SPE_100Rnd_762x63_M1 { + SPE_100Rnd_762x63_M1 = 1; + }; + + class SPE_100Rnd_762x63_M2_AP { + SPE_100Rnd_762x63_M2_AP = 1; + }; + + class SPE_100Rnd_792x57 { + SPE_100Rnd_792x57 = 1; + }; + + class SPE_100Rnd_792x57_sS { + SPE_100Rnd_792x57_sS = 1; + }; + + class SPE_100Rnd_792x57_SMK { + SPE_100Rnd_792x57_SMK = 1; + }; + + // --- Mortars ------------------------------------------------------------- + + class SPE_1Rnd_81mmHE_M1_M43A1 { + SPE_1Rnd_81mmHE_M1_M43A1 = 1; + }; + class SPE_1Rnd_81mmWP_M1_M57 { + SPE_1Rnd_81mmWP_M1_M57 = 1; + }; + class SPE_81mm_M1_M57_SmokeShell { + SPE_81mm_M1_M57_SmokeShell = 1; + }; + + class SPE_1Rnd_81mm_FA_Mle_1932_HE { + SPE_1Rnd_81mm_FA_Mle_1932_HE = 1; + }; + class SPE_81mm_FA_Mle_1932_Smoke { + SPE_81mm_FA_Mle_1932_Smoke = 1; + }; + class SPE_81mm_FA_Mle_1932_Illu { + SPE_81mm_FA_Mle_1932_Illu = 1; + }; +}; diff --git a/addons/compat_spe/compat_spe_csw/CfgVehicles.hpp b/addons/compat_spe/compat_spe_csw/CfgVehicles.hpp new file mode 100644 index 00000000000..e0a38aa341c --- /dev/null +++ b/addons/compat_spe/compat_spe_csw/CfgVehicles.hpp @@ -0,0 +1,240 @@ +class CfgVehicles { + class All { + class EventHandlers; + }; + class AllVehicles: All {}; + class Land: AllVehicles {}; + class LandVehicle: Land {}; + class StaticWeapon: LandVehicle { + class ACE_Actions { + class ACE_MainActions; + }; + class Turrets { + class MainTurret; + }; + class UserActions; + }; + + // --- Mortars ----------------------------------------------------------------- + class StaticMortar: StaticWeapon { + class Turrets: Turrets { + class MainTurret: MainTurret {}; + }; + }; + class SPE_StaticMortar_base: StaticMortar { + class Turrets: Turrets { + class MainTurret: MainTurret {}; + }; + class EventHandlers: EventHandlers { + class SPE_StaticWeaponsHandler { + init = ""; + }; + }; + }; + + class SPE_US_Mortar_base: SPE_StaticMortar_base {}; + class SPE_M1_81: SPE_US_Mortar_base { + class Turrets: Turrets { + class MainTurret: MainTurret { + magazines[] = {}; + }; + }; + class ACE_Actions: ACE_Actions { + class ACE_MainActions: ACE_MainActions { + position = ""; + selection = "zamerny"; + }; + }; + class UserActions { + delete Prepare_WP_Selected; + delete Prepare_WP; + delete Prepare_Smoke_Selected; + delete Prepare_Smoke; + delete Prepare_HE_Selected; + delete Prepare_HE; + delete Reload; + delete Unload; + }; + class ACE_CSW { + enabled = 1; + proxyWeapon = "SPE_M1_81_proxy"; + magazineLocation = "_target selectionPosition 'usti hlavne'"; + disassembleWeapon = "SPE_M1_81_Barrel"; + disassembleTurret = QGVAR(M1_81_baseplate); + ammoLoadTime = 3; + ammoUnloadTime = 3; + desiredAmmo = 1; + }; + }; + + class SPE_FR_Mortar_base: SPE_StaticMortar_base {}; + class SPE_MLE_27_31: SPE_FR_Mortar_base { + class Turrets: Turrets { + class MainTurret: MainTurret { + magazines[] = {}; + }; + }; + class ACE_Actions: ACE_Actions { + class ACE_MainActions: ACE_MainActions { + position = ""; + selection = "zamerny"; + }; + }; + class UserActions { + delete Prepare_Illu_Selected; + delete Prepare_Illu; + delete Prepare_Smoke_Selected; + delete Prepare_Smoke; + delete Prepare_HE_Selected; + delete Prepare_HE; + delete Reload; + delete Unload; + }; + class ACE_CSW { + enabled = 1; + proxyWeapon = "SPE_MLE_27_31_proxy"; + magazineLocation = "_target selectionPosition 'usti hlavne'"; + disassembleWeapon = "SPE_MLE_27_31_Barrel"; + disassembleTurret = QGVAR(MLE_27_31_baseplate); + ammoLoadTime = 3; + ammoUnloadTime = 3; + desiredAmmo = 1; + }; + }; + + class SPE_GrW278_1: SPE_MLE_27_31 { + class Turrets: Turrets { + class MainTurret: MainTurret { + magazines[] = {}; + }; + }; + class ACE_Actions: ACE_Actions { + class ACE_MainActions: ACE_MainActions { + position = ""; + selection = "zamerny"; + }; + }; + class UserActions { + delete Prepare_Illu_Selected; + delete Prepare_Illu; + delete Prepare_Smoke_Selected; + delete Prepare_Smoke; + delete Prepare_HE_Selected; + delete Prepare_HE; + delete Reload; + delete Unload; + }; + class ACE_CSW { + enabled = 1; + proxyWeapon = "SPE_GrW278_1_proxy"; + magazineLocation = "_target selectionPosition 'usti hlavne'"; + disassembleWeapon = "SPE_GrW278_1_Barrel"; + disassembleTurret = QGVAR(GrW278_baseplate); + ammoLoadTime = 3; + ammoUnloadTime = 3; + desiredAmmo = 1; + }; + }; + + + class EGVAR(csw,baseTripod); + + class GVAR(MLE_27_31_baseplate): EGVAR(csw,baseTripod) { + scope = 2; + displayName = "$STR_DN_SPE_MLE_27_31_STAND"; + model = "\WW2\SPE_Assets_m\Weapons\Mortars_m\SPE_M1_Mortar_Stand_Deployed.p3d"; + picture = "\WW2\SPE_Assets_t\Weapons\Equipment_t\Weapons\Launchers\Gear_MLE_27_31_Stand_X_ca.paa"; + hiddenSelections[] = {"camo_0","camo_1"}; + hiddenSelectionsTextures[] = {"ww2\spe_assets_t\weapons\mortars_t\m1_mortar\Brandt_81mm_Mortar_French_co.paa","WW2\SPE_Assets_t\Weapons\Mortars_t\M1_Mortar\Brandt_81mm_Sight_French_co.paa"}; + class ACE_CSW { + disassembleTo = "SPE_MLE_27_31_Stand"; + }; + }; + + class GVAR(GrW278_baseplate): EGVAR(csw,baseTripod) { + scope = 2; + displayName = "$STR_DN_SPE_GrW278_1_STAND"; + model = "\WW2\SPE_Assets_m\Weapons\Mortars_m\SPE_M1_Mortar_Stand_Deployed.p3d"; + picture = "\WW2\SPE_Assets_t\Weapons\Equipment_t\Weapons\Launchers\Gear_GrW278_1_Stand_X_ca.paa"; + hiddenSelections[] = {"camo_0"}; + hiddenSelectionsTextures[] = {"ww2\spe_assets_t\weapons\mortars_t\m1_mortar\Brandt_81mm_Mortar_Gelb_co.paa"}; + class ACE_CSW { + disassembleTo = "SPE_GrW278_1_Stand"; + }; + }; + + class GVAR(M1_81_baseplate): EGVAR(csw,baseTripod) { + scope = 2; + displayName = "$STR_DN_SPE_M1_81_STAND"; + model = "\WW2\SPE_Assets_m\Weapons\Mortars_m\SPE_M1_Mortar_Stand_Deployed.p3d"; + picture = "\WW2\SPE_Assets_t\Weapons\Equipment_t\Weapons\Launchers\Gear_M1_81_Stand_X_ca.paa"; + class ACE_CSW { + disassembleTo = "SPE_M1_81_Stand"; + }; + }; + + + class ACE_SPE_M1_81_Stand_Deployed: EGVAR(csw,baseTripod) { + author = "SPE"; + scope = 2; + displayName = "$STR_DN_SPE_M1_81_STAND"; + model = "\WW2\SPE_Assets_m\Weapons\Mortars_m\SPE_M1_Mortar_Stand_Deployed.p3d"; + picture = "\WW2\SPE_Assets_t\Weapons\Equipment_t\Weapons\Launchers\Gear_M1_81_Stand_X_ca.paa"; + class assembleInfo { + base = ""; + primary = 0; + displayName = ""; + assembleTo = ""; + class SPE_M1_81_Barrel { + deployTime = 0; + assembleTo = ""; + }; + }; + class ACE_CSW { + disassembleTo = "SPE_M1_81_Stand"; + }; + }; + class ACE_SPE_GrW278_1_Stand_Deployed: EGVAR(csw,baseTripod) { + author = "SPE"; + scope = 2; + displayName = "$STR_DN_SPE_GrW278_1_STAND"; + model = "\WW2\SPE_Assets_m\Weapons\Mortars_m\SPE_M1_Mortar_Stand_Deployed.p3d"; + picture = "\WW2\SPE_Assets_t\Weapons\Equipment_t\Weapons\Launchers\Gear_GrW278_1_Stand_X_ca.paa"; + hiddenSelectionsTextures[] = {"ww2\spe_assets_t\weapons\mortars_t\m1_mortar\Brandt_81mm_Mortar_Gelb_co.paa","WW2\SPE_Assets_t\Weapons\Mortars_t\M1_Mortar\Brandt_81mm_Sight_Gelb_co.paa"}; + class assembleInfo { + base = ""; + primary = 0; + displayName = ""; + assembleTo = ""; + class SPE_GrW278_1_Barrel { + deployTime = 0; + assembleTo = ""; + }; + }; + class ACE_CSW { + disassembleTo = "SPE_GrW278_1_Stand"; + }; + }; + class ACE_SPE_MLE_27_31_Stand_Deployed: EGVAR(csw,baseTripod) { + author = "SPE"; + scope = 2; + displayName = "$STR_DN_SPE_MLE_27_31_STAND"; + model = "\WW2\SPE_Assets_m\Weapons\Mortars_m\SPE_M1_Mortar_Stand_Deployed.p3d"; + picture = "\WW2\SPE_Assets_t\Weapons\Equipment_t\Weapons\Launchers\Gear_MLE_27_31_Stand_X_ca.paa"; + hiddenSelections[] = {"camo_0","camo_1"}; + hiddenSelectionsTextures[] = {"ww2\spe_assets_t\weapons\mortars_t\m1_mortar\Brandt_81mm_Mortar_French_co.paa","WW2\SPE_Assets_t\Weapons\Mortars_t\M1_Mortar\Brandt_81mm_Sight_French_co.paa"}; + class assembleInfo { + base = ""; + primary = 0; + displayName = ""; + assembleTo = ""; + class SPE_MLE_27_31_Barrel { + deployTime = 0; + assembleTo = ""; + }; + }; + class ACE_CSW { + disassembleTo = "SPE_MLE_27_31_Stand"; + }; + }; +}; diff --git a/addons/compat_spe/compat_spe_csw/CfgWeapons.hpp b/addons/compat_spe/compat_spe_csw/CfgWeapons.hpp new file mode 100644 index 00000000000..db090c77080 --- /dev/null +++ b/addons/compat_spe/compat_spe_csw/CfgWeapons.hpp @@ -0,0 +1,84 @@ +class CfgWeapons { + class Launcher; + class Launcher_Base_F: Launcher { + class WeaponSlotsInfo; + }; + + class SPE_Slung_Static_Weapon_Base: Launcher_Base_F {}; + + class SPE_M1_81; + class SPE_M1_81_proxy: SPE_M1_81 { + magazineReloadTime = 0.5; + }; + + class SPE_M1_81_Stand: SPE_Slung_Static_Weapon_Base { + class ACE_CSW { + type = "mount"; + deployTime = 4; + pickupTime = 4; + deploy = QGVAR(M1_81_baseplate); + }; + }; + class SPE_M1_81_Barrel: SPE_Slung_Static_Weapon_Base { + class ACE_CSW { + type = "weapon"; + deployTime = 4; + pickupTime = 4; + class assembleTo { + GVAR(M1_81_baseplate) = "SPE_M1_81"; + EGVAR(csw,mortarBaseplate) = "SPE_M1_81"; + }; + }; + }; + + class SPE_MLE_27_31; + class SPE_MLE_27_31_proxy: SPE_MLE_27_31 { + magazineReloadTime = 0.5; + }; + + class SPE_MLE_27_31_Stand: SPE_Slung_Static_Weapon_Base { + class ACE_CSW { + type = "mount"; + deployTime = 4; + pickupTime = 4; + deploy = QGVAR(MLE_27_31_baseplate); + }; + }; + class SPE_MLE_27_31_Barrel: SPE_Slung_Static_Weapon_Base { + class ACE_CSW { + type = "weapon"; + deployTime = 20; + pickupTime = 25; + class assembleTo { + GVAR(MLE_27_31_baseplate) = "SPE_MLE_27_31"; + EGVAR(csw,mortarBaseplate) = "SPE_MLE_27_31"; + }; + }; + }; + + class SPE_GrW278_1; + class SPE_GrW278_1_proxy: SPE_GrW278_1 { + magazineReloadTime = 0.5; + }; + + class SPE_GrW278_1_Stand: SPE_MLE_27_31_Stand { + class ACE_CSW { + type = "mount"; + deployTime = 4; + pickupTime = 4; + deploy = QGVAR(GrW278_baseplate); + }; + }; + + class SPE_GrW278_1_Barrel: SPE_MLE_27_31_Barrel { + class ACE_CSW { + type = "weapon"; + deployTime = 20; + pickupTime = 25; + class assembleTo { + GVAR(GrW278_baseplate) = "SPE_GrW278_1"; + EGVAR(csw,mortarBaseplate) = "SPE_GrW278_1"; + }; + }; + }; +}; diff --git a/addons/compat_spe/compat_spe_csw/config.cpp b/addons/compat_spe/compat_spe_csw/config.cpp new file mode 100644 index 00000000000..6ff669629bf --- /dev/null +++ b/addons/compat_spe/compat_spe_csw/config.cpp @@ -0,0 +1,29 @@ +#include "script_component.hpp" + +class CfgPatches { + class SUBADDON { + name = COMPONENT_NAME; + units[] = {}; + weapons[] = {}; + requiredVersion = REQUIRED_VERSION; + requiredAddons[] = { + "ww2_spe_assets_c_weapons_infantryweapons_c", + "ww2_spe_assets_c_vehicles_staticweapons_c", + "ww2_spe_assets_c_vehicles_weapons_c", + "ww2_spe_core_f_system_staticweapons_f", + "ww2_spe_core_c_core_c_eventhandlers", + "ace_csw" + }; + skipWhenMissingDependencies = 1; + author = ECSTRING(common,ACETeam); + url = ECSTRING(main,URL); + VERSION_CONFIG; + + addonRootClass = QUOTE(ADDON); + }; +}; + +#include "ACE_CSW_Groups.hpp" +// Todo: https://github.com/acemod/ACE3/pull/9292#discussion_r1327738181 +// #include "CfgVehicles.hpp" +// #include "CfgWeapons.hpp" diff --git a/addons/compat_spe/compat_spe_csw/script_component.hpp b/addons/compat_spe/compat_spe_csw/script_component.hpp new file mode 100644 index 00000000000..1f7ace46a9e --- /dev/null +++ b/addons/compat_spe/compat_spe_csw/script_component.hpp @@ -0,0 +1,3 @@ +#define SUBCOMPONENT csw +#define SUBCOMPONENT_BEAUTIFIED Crew-Served Weapons +#include "..\script_component.hpp" diff --git a/addons/compat_spe/compat_spe_explosives/CfgMagazines.hpp b/addons/compat_spe/compat_spe_explosives/CfgMagazines.hpp new file mode 100644 index 00000000000..7c1945fcb8f --- /dev/null +++ b/addons/compat_spe/compat_spe_explosives/CfgMagazines.hpp @@ -0,0 +1,210 @@ +class CfgMagazines { + class SPE_Mine_Magazine; + class SPE_US_TNT_4pound_mag: SPE_Mine_Magazine { + EGVAR(explosives,DelayTime) = 1; + EGVAR(explosives,Placeable) = 1; + EGVAR(explosives,SetupObject) = QEXPLOSIVES_PLACE(4LBTNT); + useAction = 0; + class ACE_Triggers { + SupportedTriggers[] = {"Timer", "Command", "MK16_Transmitter", "FireCord", "LIB_LadungPM"}; + class Timer { + FuseTime = 0.5; + }; + class Command { + FuseTime = 0.5; + }; + class MK16_Transmitter: Command {}; + class DeadmanSwitch: Command {}; + }; + }; + + class SPE_US_TNT_half_pound_mag: SPE_Mine_Magazine { + EGVAR(explosives,DelayTime) = 1; + EGVAR(explosives,Placeable) = 1; + EGVAR(explosives,SetupObject) = QEXPLOSIVES_PLACE(halfLBTNT); + useAction = 0; + class ACE_Triggers { + SupportedTriggers[] = {"Timer", "Command", "MK16_Transmitter", "FireCord", "LIB_LadungPM"}; + class Timer { + FuseTime = 0.5; + }; + class Command { + FuseTime = 0.5; + }; + class MK16_Transmitter: Command {}; + class DeadmanSwitch: Command {}; + }; + }; + + class SPE_US_Bangalore_mag: SPE_Mine_Magazine { + EGVAR(explosives,DelayTime) = 1; + EGVAR(explosives,Placeable) = 1; + EGVAR(explosives,SetupObject) = QEXPLOSIVES_PLACE(bangalore); + useAction = 0; + class ACE_Triggers { + SupportedTriggers[] = {"Timer", "Command", "MK16_Transmitter", "FireCord", "LIB_LadungPM"}; + class Timer { + FuseTime = 0.5; + }; + class Command { + FuseTime = 0.5; + }; + class MK16_Transmitter: Command {}; + class DeadmanSwitch: Command {}; + }; + }; + + class SPE_Ladung_Small_MINE_mag: SPE_Mine_Magazine { + EGVAR(explosives,DelayTime) = 1; + EGVAR(explosives,Placeable) = 1; + EGVAR(explosives,SetupObject) = QEXPLOSIVES_PLACE(smallLadung); + useAction = 0; + class ACE_Triggers { + SupportedTriggers[] = {"Timer", "Command", "MK16_Transmitter", "FireCord", "LIB_LadungPM"}; + class Timer { + FuseTime = 0.5; + }; + class Command { + FuseTime = 0.5; + }; + class MK16_Transmitter: Command {}; + class DeadmanSwitch: Command {}; + }; + }; + + class SPE_Ladung_Big_MINE_mag: SPE_Mine_Magazine { + EGVAR(explosives,DelayTime) = 1; + EGVAR(explosives,Placeable) = 1; + EGVAR(explosives,SetupObject) = QEXPLOSIVES_PLACE(bigLadung); + useAction = 0; + class ACE_Triggers { + SupportedTriggers[] = {"Timer", "Command", "MK16_Transmitter", "FireCord", "LIB_LadungPM"}; + class Timer { + FuseTime = 0.5; + }; + class Command { + FuseTime = 0.5; + }; + class MK16_Transmitter: Command {}; + class DeadmanSwitch: Command {}; + }; + }; + + class SPE_US_M1A1_ATMINE_mag: SPE_Mine_Magazine { + EGVAR(explosives,Placeable) = 1; + EGVAR(explosives,SetupObject) = QEXPLOSIVES_PLACE(M1A1at); + useAction = 0; + class ACE_Triggers { + SupportedTriggers[] = {"PressurePlate"}; + class PressurePlate { + digDistance = 0.062; + }; + }; + }; + class SPE_US_M3_MINE_mag: SPE_Mine_Magazine { + EGVAR(explosives,Placeable) = 1; + EGVAR(explosives,SetupObject) = QEXPLOSIVES_PLACE(M3ap); + useAction = 0; + class ACE_Triggers { + SupportedTriggers[] = {"Tripwire"}; + class Tripwire { + digDistance = 0.04; + }; + }; + }; + class SPE_US_M3_Pressure_MINE_mag: SPE_Mine_Magazine { + EGVAR(explosives,Placeable) = 1; + EGVAR(explosives,SetupObject) = QEXPLOSIVES_PLACE(M3Pressure); + useAction = 0; + class ACE_Triggers { + SupportedTriggers[] = {"PressurePlate"}; + class PressurePlate { + digDistance = 0.18; + }; + }; + }; + + class SPE_Shg24x7_Improvised_Mine_mag: SPE_Mine_Magazine { + EGVAR(explosives,Placeable) = 1; + EGVAR(explosives,SetupObject) = QEXPLOSIVES_PLACE(Shg24x7); + useAction = 0; + class ACE_Triggers { + SupportedTriggers[] = {"PressurePlate"}; + class PressurePlate { + digDistance = 0.13; + }; + }; + }; + + class SPE_TMI_42_MINE_mag: SPE_Mine_Magazine { + EGVAR(explosives,Placeable) = 1; + EGVAR(explosives,SetupObject) = QEXPLOSIVES_PLACE(TMI42); + useAction = 0; + class ACE_Triggers { + SupportedTriggers[] = {"PressurePlate"}; + class PressurePlate { + digDistance = 0.09; + }; + }; + }; + + class SPE_SMI_35_1_MINE_mag: SPE_Mine_Magazine { + EGVAR(explosives,Placeable) = 1; + EGVAR(explosives,SetupObject) = QEXPLOSIVES_PLACE(SMI35_1); + useAction = 0; + class ACE_Triggers { + SupportedTriggers[] = {"Tripwire"}; + class Tripwire { + digDistance = 0.1; + }; + }; + }; + + class SPE_SMI_35_MINE_mag: SPE_Mine_Magazine { + EGVAR(explosives,Placeable) = 1; + EGVAR(explosives,SetupObject) = QEXPLOSIVES_PLACE(SMI35); + useAction = 0; + class ACE_Triggers { + SupportedTriggers[] = {"Tripwire"}; + class Tripwire { + digDistance = 0.04; + }; + }; + }; + + class SPE_SMI_35_Pressure_MINE_mag: SPE_Mine_Magazine { + EGVAR(explosives,Placeable) = 1; + EGVAR(explosives,SetupObject) = QEXPLOSIVES_PLACE(SMI35Pressure); + useAction = 0; + class ACE_Triggers { + SupportedTriggers[] = {"PressurePlate"}; + class PressurePlate { + digDistance = 0.19; + }; + }; + }; + + class SPE_STMI_MINE_mag: SPE_Mine_Magazine { + EGVAR(explosives,Placeable) = 1; + EGVAR(explosives,SetupObject) = QEXPLOSIVES_PLACE(STMI); + useAction = 0; + class ACE_Triggers { + SupportedTriggers[] = {"Tripwire"}; + class Tripwire { + digDistance = 0.04; + }; + }; + }; + + class SPE_shumine_42_MINE_mag: SPE_Mine_Magazine { + EGVAR(explosives,Placeable) = 1; + EGVAR(explosives,SetupObject) = QEXPLOSIVES_PLACE(shumine42); + useAction = 0; + class ACE_Triggers { + SupportedTriggers[] = {"PressurePlate"}; + class PressurePlate { + digDistance = 0.03; + }; + }; + }; +}; diff --git a/addons/compat_spe/compat_spe_explosives/CfgVehicles.hpp b/addons/compat_spe/compat_spe_explosives/CfgVehicles.hpp new file mode 100644 index 00000000000..d4d5737bb23 --- /dev/null +++ b/addons/compat_spe/compat_spe_explosives/CfgVehicles.hpp @@ -0,0 +1,173 @@ +class CfgVehicles { + class Items_base_F; + class EGVAR(explosives,Place): Items_base_F { + class ACE_Actions { + class ACE_MainActions; + }; + }; + + // 4 Pound TNT Charge + class EXPLOSIVES_PLACE(4LBTNT): EGVAR(explosives,Place) { + displayName = "4 Pound TNT Charge"; + model = "\WW2\SPE_Assets_m\Weapons\Mines_m\SPE_TNT_4pound"; + class ACE_Actions: ACE_Actions { + class ACE_MainActions: ACE_MainActions { + position = "[-0.002, 0.022, 0.02]"; + }; + }; + }; + + // Half Pound TNT Charge + class EXPLOSIVES_PLACE(halfLBTNT): EGVAR(explosives,Place) { + displayName = "Half Pound TNT Charge"; + model = "\WW2\SPE_Assets_m\Weapons\Mines_m\SPE_TNT_Half_Pound"; + class ACE_Actions: ACE_Actions { + class ACE_MainActions: ACE_MainActions { + position = "[-0.002, 0.022, 0.02]"; + }; + }; + }; + + // M1A1 Bangalore Torpedo + class EXPLOSIVES_PLACE(bangalore): EGVAR(explosives,Place) { + displayName = "M1A1 Bangalore Torpedo"; + model = "\WW2\SPE_Assets_m\Weapons\Mines_m\SPE_Bangalore"; + class ACE_Actions: ACE_Actions { + class ACE_MainActions: ACE_MainActions { + position = "[-0.002, 0.022, 0.02]"; + }; + }; + }; + + // 1 Kg Charge + class EXPLOSIVES_PLACE(smallLadung): EGVAR(explosives,Place) { + displayName = "1 Kg Charge"; + model = "\WW2\SPE_Assets_m\Weapons\Mines_m\SPE_Ladung"; + class ACE_Actions: ACE_Actions { + class ACE_MainActions: ACE_MainActions { + position = "[-0.002, 0.022, 0.02]"; + }; + }; + }; + + // 3 Kg Charge + class EXPLOSIVES_PLACE(bigLadung): EGVAR(explosives,Place) { + displayName = "3 Kg Charge"; + model = "\WW2\SPE_Assets_m\Weapons\Mines_m\SPE_Ladung_Big"; + class ACE_Actions: ACE_Actions { + class ACE_MainActions: ACE_MainActions { + position = "[-0.002, 0.022, 0.02]"; + }; + }; + }; + + // M1A1 AT Mine + class EXPLOSIVES_PLACE(M1A1at): EGVAR(explosives,Place) { + displayName = "M1A1 AT Mine"; + model = "\WW2\SPE_Assets_m\Weapons\Mines_m\SPE_M1A1_AT"; + class ACE_Actions: ACE_Actions { + class ACE_MainActions: ACE_MainActions { + position = "[-0.002, 0.022, 0.02]"; + }; + }; + }; + + // M1A1 AT Mine + class EXPLOSIVES_PLACE(Shg24x7): EGVAR(explosives,Place) { + displayName = "M1A1 AT Mine"; + model = "\WW2\SPE_Assets_m\Weapons\Mines_m\SPE_GER_Improvised_Mine"; + class ACE_Actions: ACE_Actions { + class ACE_MainActions: ACE_MainActions { + position = "[-0.002, 0.022, 0.02]"; + }; + }; + }; + + // M1A1 AT Mine + class EXPLOSIVES_PLACE(TMI42): EGVAR(explosives,Place) { + displayName = "M1A1 AT Mine"; + model = "\WW2\SPE_Assets_m\Weapons\Mines_m\SPE_Tmi42"; + class ACE_Actions: ACE_Actions { + class ACE_MainActions: ACE_MainActions { + position = "[-0.002, 0.022, 0.02]"; + }; + }; + }; + + // M3 AP Tripwire Mine + class EXPLOSIVES_PLACE(M3ap): EGVAR(explosives,Place) { + displayName = "M3 AP Tripwire Mine"; + model = "\WW2\SPE_Assets_m\Weapons\Mines_m\SPE_M3_AP"; + class ACE_Actions: ACE_Actions { + class ACE_MainActions: ACE_MainActions { + position = "[-0.002, 0.022, 0.02]"; + }; + }; + }; + + // M3 AP Mine + class EXPLOSIVES_PLACE(M3Pressure): EGVAR(explosives,Place) { + displayName = "M3 AP Mine"; + model = "\WW2\SPE_Assets_m\Weapons\Mines_m\SPE_M3_AP_Pressure"; + class ACE_Actions: ACE_Actions { + class ACE_MainActions: ACE_MainActions { + position = "[-0.002, 0.022, 0.02]"; + }; + }; + }; + + // SMi-35 AP Mine + class EXPLOSIVES_PLACE(SMI35Pressure): EGVAR(explosives,Place) { + displayName = "SMi-35 AP Mine"; + model = "\WW2\SPE_Assets_m\Weapons\Mines_m\SPE_Smi35"; + class ACE_Actions: ACE_Actions { + class ACE_MainActions: ACE_MainActions { + position = "[-0.002, 0.022, 0.02]"; + }; + }; + }; + + // SMi-35 Tripwire Mine + class EXPLOSIVES_PLACE(SMI35): EGVAR(explosives,Place) { + displayName = "SMi-35 Tripwire Mine"; + model = "\WW2\SPE_Assets_m\Weapons\Mines_m\SPE_Smi35_1"; + class ACE_Actions: ACE_Actions { + class ACE_MainActions: ACE_MainActions { + position = "[-0.002, 0.022, 0.02]"; + }; + }; + }; + + // SMi-35 Tripwire (x2) Mine + class EXPLOSIVES_PLACE(SMI35_1): EGVAR(explosives,Place) { + displayName = "SMi-35 Tripwire (x2) Mine"; + model = "\WW2\SPE_Assets_m\Weapons\Mines_m\SPE_Smi35_2"; + class ACE_Actions: ACE_Actions { + class ACE_MainActions: ACE_MainActions { + position = "[-0.002, 0.022, 0.02]"; + }; + }; + }; + + // StMi Mine + class EXPLOSIVES_PLACE(STMI): EGVAR(explosives,Place) { + displayName = "StMi Mine"; + model = "\WW2\SPE_Assets_m\Weapons\Mines_m\SPE_Stmi"; + class ACE_Actions: ACE_Actions { + class ACE_MainActions: ACE_MainActions { + position = "[-0.002, 0.022, 0.02]"; + }; + }; + }; + + // Schuetzenmine 42 + class EXPLOSIVES_PLACE(shumine42): EGVAR(explosives,Place) { + displayName = "Schuetzenmine 42"; + model = "\WW2\SPE_Assets_m\Weapons\Mines_m\SPE_Shumine42"; + class ACE_Actions: ACE_Actions { + class ACE_MainActions: ACE_MainActions { + position = "[-0.002, 0.022, 0.02]"; + }; + }; + }; +}; diff --git a/addons/compat_spe/compat_spe_explosives/config.cpp b/addons/compat_spe/compat_spe_explosives/config.cpp new file mode 100644 index 00000000000..81e0bc78110 --- /dev/null +++ b/addons/compat_spe/compat_spe_explosives/config.cpp @@ -0,0 +1,27 @@ +#include "script_component.hpp" + +class CfgPatches { + class SUBADDON { + name = COMPONENT_NAME; + units[] = {}; + weapons[] = {}; + requiredVersion = REQUIRED_VERSION; + requiredAddons[] = { + "ww2_spe_assets_c_weapons_infantryweapons_c", + "ww2_spe_assets_c_vehicles_staticweapons_c", + "ww2_spe_assets_c_vehicles_weapons_c", + "ww2_spe_core_f_system_staticweapons_f", + "ww2_spe_core_c_core_c_eventhandlers", + "ace_explosives" + }; + skipWhenMissingDependencies = 1; + author = ECSTRING(common,ACETeam); + url = ECSTRING(main,URL); + VERSION_CONFIG; + + addonRootClass = QUOTE(ADDON); + }; +}; + +#include "CfgVehicles.hpp" +#include "CfgMagazines.hpp" diff --git a/addons/compat_spe/compat_spe_explosives/script_component.hpp b/addons/compat_spe/compat_spe_explosives/script_component.hpp new file mode 100644 index 00000000000..926f441c1fd --- /dev/null +++ b/addons/compat_spe/compat_spe_explosives/script_component.hpp @@ -0,0 +1,6 @@ +#define SUBCOMPONENT explosives +#define SUBCOMPONENT_BEAUTIFIED Explosives +#include "..\script_component.hpp" + +#define EXPLOSIVES_PLACE(CLASS) EGVAR(explosives,DOUBLES(Place,CLASS)) +#define QEXPLOSIVES_PLACE(CLASS) QUOTE(EXPLOSIVES_PLACE(CLASS)) diff --git a/addons/compat_spe/compat_spe_refuel/CfgVehicles.hpp b/addons/compat_spe/compat_spe_refuel/CfgVehicles.hpp new file mode 100644 index 00000000000..f47d6877f7b --- /dev/null +++ b/addons/compat_spe/compat_spe_refuel/CfgVehicles.hpp @@ -0,0 +1,14 @@ +class CfgVehicles { + class SPE_Halftrack_base; + class SPE_US_M3_Halftrack_Fuel: SPE_Halftrack_base { + transportFuel = 0; + EGVAR(refuel,hooks)[] = {{-0.23,-2.58,-0.59}}; + EGVAR(refuel,fuelCargo) = 2000; + }; + class SPE_OpelBlitz_base; + class SPE_OpelBlitz_Fuel: SPE_OpelBlitz_base { + transportFuel = 0; + EGVAR(refuel,hooks)[] = {{-0.23,-2.58,-0.59}}; + EGVAR(refuel,fuelCargo) = 2000; + }; +}; diff --git a/addons/compat_spe/compat_spe_refuel/config.cpp b/addons/compat_spe/compat_spe_refuel/config.cpp new file mode 100644 index 00000000000..077e06bdd02 --- /dev/null +++ b/addons/compat_spe/compat_spe_refuel/config.cpp @@ -0,0 +1,26 @@ +#include "script_component.hpp" + +class CfgPatches { + class SUBADDON { + name = COMPONENT_NAME; + units[] = {}; + weapons[] = {}; + requiredVersion = REQUIRED_VERSION; + requiredAddons[] = { + "ww2_spe_assets_c_weapons_infantryweapons_c", + "ww2_spe_assets_c_vehicles_staticweapons_c", + "ww2_spe_assets_c_vehicles_weapons_c", + "ww2_spe_core_f_system_staticweapons_f", + "ww2_spe_core_c_core_c_eventhandlers", + "ace_refuel" + }; + skipWhenMissingDependencies = 1; + author = ECSTRING(common,ACETeam); + url = ECSTRING(main,URL); + VERSION_CONFIG; + + addonRootClass = QUOTE(ADDON); + }; +}; + +#include "CfgVehicles.hpp" diff --git a/addons/compat_spe/compat_spe_refuel/script_component.hpp b/addons/compat_spe/compat_spe_refuel/script_component.hpp new file mode 100644 index 00000000000..b58db9432d3 --- /dev/null +++ b/addons/compat_spe/compat_spe_refuel/script_component.hpp @@ -0,0 +1,3 @@ +#define SUBCOMPONENT refuel +#define SUBCOMPONENT_BEAUTIFIED Refuel +#include "..\script_component.hpp" diff --git a/addons/compat_spe/config.cpp b/addons/compat_spe/config.cpp new file mode 100644 index 00000000000..5c1ba718d68 --- /dev/null +++ b/addons/compat_spe/config.cpp @@ -0,0 +1,37 @@ +#include "script_component.hpp" +#include "\z\ace\addons\hearing\script_macros_hearingProtection.hpp" + +class CfgPatches { + class ADDON { + name = COMPONENT_NAME; + units[] = {}; + weapons[] = {}; + requiredVersion = REQUIRED_VERSION; + requiredAddons[] = { + "ace_common", + "ww2_spe_assets_c_weapons_infantryweapons_c", + "ww2_spe_assets_c_vehicles_staticweapons_c", + "ww2_spe_assets_c_vehicles_weapons_c", + "ww2_spe_core_f_system_staticweapons_f", + "ww2_spe_core_c_core_c_eventhandlers" + }; + skipWhenMissingDependencies = 1; + author = ECSTRING(common,ACETeam); + authors[] = { + "sancron", + "nomisum", + "coldfront15/Henderson", + "BrettMayson" + }; + url = ECSTRING(main,URL); + VERSION_CONFIG; + }; +}; + +#include "ACE_Medical_Injuries.hpp" +#include "CfgAmmo.hpp" +#include "CfgEventHandlers.hpp" +#include "CfgGlasses.hpp" +#include "CfgMagazines.hpp" +#include "CfgVehicles.hpp" +#include "CfgWeapons.hpp" diff --git a/addons/compat_spe/functions/fnc_woundsHandlerIncendiary.sqf b/addons/compat_spe/functions/fnc_woundsHandlerIncendiary.sqf new file mode 100644 index 00000000000..aa282e9be84 --- /dev/null +++ b/addons/compat_spe/functions/fnc_woundsHandlerIncendiary.sqf @@ -0,0 +1,40 @@ +#include "..\script_component.hpp" +/* + * Author: veteran29 + * Custom wound handler for SOG: PF explosive incendiary ammunition. + * Determines if the unit should be ignited and passes the damage to other wound handlers. + * + * Arguments: + * 0: Unit That Was Hit + * 1: Damage done to each body part + * 2: Type of the damage done + * + * Return Value: + * Input + * + * Example: + * [player, [[0.5, "Body", 5]]] call ace_compat_spe_fnc_woundsHandlerIncendiary + * + * Public: No + */ + +#define BURN_THRESHOLD 1 + +params ["_unit", "_damages"]; +TRACE_2("woundsHandlerIncendiary",_unit,_damages); + +private _fireDamage = 0; +{ + _x params ["", "", "_damage"]; + _fireDamage = _fireDamage + _damage; +} forEach _damages; + +private _intensity = linearConversion [0, 20, _fireDamage, 0, 10, true]; +TRACE_2("",_intensity,_fireDamage); + +if (_intensity > BURN_THRESHOLD) then { + TRACE_2("Setting unit ablaze",_intensity,BURN_THRESHOLD); + ["ace_fire_burn", [_unit, _intensity]] call CBA_fnc_globalEvent; +}; + +_this // return diff --git a/addons/compat_spe/script_component.hpp b/addons/compat_spe/script_component.hpp new file mode 100644 index 00000000000..2a5a1725961 --- /dev/null +++ b/addons/compat_spe/script_component.hpp @@ -0,0 +1,5 @@ +#define COMPONENT compat_spe +#define COMPONENT_BEAUTIFIED Spearhead 1944 Compatibility + +#include "\z\ace\addons\main\script_mod.hpp" +#include "\z\ace\addons\main\script_macros.hpp" diff --git a/addons/hearing/CfgWeapons.hpp b/addons/hearing/CfgWeapons.hpp index e91721b5919..9e0053a2843 100644 --- a/addons/hearing/CfgWeapons.hpp +++ b/addons/hearing/CfgWeapons.hpp @@ -14,93 +14,90 @@ class CfgWeapons { }; }; - #define HEARING_PROTECTION_VICCREW EGVAR(hearing,protection) = 0.85; EGVAR(hearing,lowerVolume) = 0.6; - #define HEARING_PROTECTION_EARMUFF EGVAR(hearing,protection) = 0.75; EGVAR(hearing,lowerVolume) = 0.5; - #define HEARING_PROTECTION_PELTOR EGVAR(hearing,protection) = 0.75; EGVAR(hearing,lowerVolume) = 0; class H_HelmetB; class H_HelmetCrew_B: H_HelmetB { - HEARING_PROTECTION_VICCREW + HEARING_PROTECTION_VICCREW; }; class H_CrewHelmetHeli_B: H_HelmetB { - HEARING_PROTECTION_VICCREW + HEARING_PROTECTION_VICCREW; }; class H_PilotHelmetHeli_B: H_HelmetB { - HEARING_PROTECTION_VICCREW + HEARING_PROTECTION_VICCREW; }; class H_PilotHelmetFighter_B: H_HelmetB { - HEARING_PROTECTION_VICCREW + HEARING_PROTECTION_VICCREW; }; class HelmetBase; class H_Cap_headphones: HelmetBase { - HEARING_PROTECTION_EARMUFF + HEARING_PROTECTION_EARMUFF; }; class H_Construction_earprot_base_F: HelmetBase { - HEARING_PROTECTION_EARMUFF + HEARING_PROTECTION_EARMUFF; }; class H_Construction_headset_base_F: HelmetBase { - HEARING_PROTECTION_EARMUFF + HEARING_PROTECTION_EARMUFF; }; class H_EarProtectors_base_F: HelmetBase { - HEARING_PROTECTION_EARMUFF + HEARING_PROTECTION_EARMUFF; }; class H_HeadSet_base_F: HelmetBase { - HEARING_PROTECTION_EARMUFF + HEARING_PROTECTION_EARMUFF; }; class H_HelmetB_light: H_HelmetB { - HEARING_PROTECTION_PELTOR + HEARING_PROTECTION_PELTOR; }; class H_HelmetB_camo: H_HelmetB { - HEARING_PROTECTION_PELTOR + HEARING_PROTECTION_PELTOR; }; class H_HelmetB_plain_mcamo; class H_HelmetSpecB: H_HelmetB_plain_mcamo { - HEARING_PROTECTION_PELTOR + HEARING_PROTECTION_PELTOR; }; class H_HelmetB_TI_tna_F: H_HelmetB { - HEARING_PROTECTION_PELTOR + HEARING_PROTECTION_PELTOR; }; class H_Tank_base_F; class H_Tank_black_F: H_Tank_base_F { - HEARING_PROTECTION_VICCREW + HEARING_PROTECTION_VICCREW; }; class H_RacingHelmet_1_F: H_HelmetB_camo { - HEARING_PROTECTION_VICCREW + HEARING_PROTECTION_VICCREW; }; class H_HelmetO_ocamo: H_HelmetB { - HEARING_PROTECTION_PELTOR + HEARING_PROTECTION_PELTOR; }; // Defender and Assasin Helmet inherit. class H_HelmetO_ViperSP_hex_f: H_HelmetB { - HEARING_PROTECTION_PELTOR + HEARING_PROTECTION_PELTOR; }; class H_HelmetAggressor_base_F: HelmetBase { - HEARING_PROTECTION_PELTOR + HEARING_PROTECTION_PELTOR; }; class H_HelmetHBK_base_F; class H_HelmetHBK_chops_base_F: H_HelmetHBK_base_F { - HEARING_PROTECTION_PELTOR + HEARING_PROTECTION_PELTOR; }; class H_HelmetHBK_ear_base_F: H_HelmetHBK_base_F { - HEARING_PROTECTION_PELTOR + HEARING_PROTECTION_PELTOR; }; class H_HelmetHBK_headset_base_F: H_HelmetHBK_base_F { - HEARING_PROTECTION_PELTOR + HEARING_PROTECTION_PELTOR; }; }; diff --git a/addons/hearing/script_component.hpp b/addons/hearing/script_component.hpp index 7e69c908b56..178310cd209 100644 --- a/addons/hearing/script_component.hpp +++ b/addons/hearing/script_component.hpp @@ -15,3 +15,4 @@ #endif #include "\z\ace\addons\main\script_macros.hpp" +#include "\z\ace\addons\hearing\script_macros_hearingProtection.hpp" diff --git a/addons/hearing/script_macros_hearingProtection.hpp b/addons/hearing/script_macros_hearingProtection.hpp new file mode 100644 index 00000000000..377560247ee --- /dev/null +++ b/addons/hearing/script_macros_hearingProtection.hpp @@ -0,0 +1,4 @@ +#define HEARING_PROTECTION_OPEN EGVAR(hearing,protection) = 0; EGVAR(hearing,lowerVolume) = 0 +#define HEARING_PROTECTION_VICCREW EGVAR(hearing,protection) = 0.85; EGVAR(hearing,lowerVolume) = 0.6 +#define HEARING_PROTECTION_EARMUFF EGVAR(hearing,protection) = 0.75; EGVAR(hearing,lowerVolume) = 0.5 +#define HEARING_PROTECTION_PELTOR EGVAR(hearing,protection) = 0.75; EGVAR(hearing,lowerVolume) = 0 diff --git a/docs/wiki/development/setting-up-the-development-environment.md b/docs/wiki/development/setting-up-the-development-environment.md index 574c8afc8c4..e2c94430395 100644 --- a/docs/wiki/development/setting-up-the-development-environment.md +++ b/docs/wiki/development/setting-up-the-development-environment.md @@ -19,7 +19,7 @@ This page describes how you can setup your development environment for ACE3, all **HEMTT:** _(recommended)_ - [Windows] PowerShell v3.0+ _(pre-installed on Windows 8 or newer)_ -- [HEMTT](https://github.com/BrettMayson/HEMTT/releases) (>=v1.5.1) in project root _(Windows users can double-click `tools/setup.bat`)_ +- [HEMTT](https://github.com/BrettMayson/HEMTT/releases) (>=v1.7.2) in project root _(Windows users can double-click `tools/setup.bat`)_ - `hemtt` (Linux) or `hemtt.exe` (Windows) **Mikero Tools:** diff --git a/tools/pDummies/WW2/SPE_Assets_m/Weapons/Mines_m/SPE_Bangalore b/tools/pDummies/WW2/SPE_Assets_m/Weapons/Mines_m/SPE_Bangalore new file mode 100644 index 00000000000..e69de29bb2d diff --git a/tools/pDummies/WW2/SPE_Assets_m/Weapons/Mines_m/SPE_GER_Improvised_Mine b/tools/pDummies/WW2/SPE_Assets_m/Weapons/Mines_m/SPE_GER_Improvised_Mine new file mode 100644 index 00000000000..e69de29bb2d diff --git a/tools/pDummies/WW2/SPE_Assets_m/Weapons/Mines_m/SPE_Ladung b/tools/pDummies/WW2/SPE_Assets_m/Weapons/Mines_m/SPE_Ladung new file mode 100644 index 00000000000..e69de29bb2d diff --git a/tools/pDummies/WW2/SPE_Assets_m/Weapons/Mines_m/SPE_Ladung_Big b/tools/pDummies/WW2/SPE_Assets_m/Weapons/Mines_m/SPE_Ladung_Big new file mode 100644 index 00000000000..e69de29bb2d diff --git a/tools/pDummies/WW2/SPE_Assets_m/Weapons/Mines_m/SPE_M1A1_AT b/tools/pDummies/WW2/SPE_Assets_m/Weapons/Mines_m/SPE_M1A1_AT new file mode 100644 index 00000000000..e69de29bb2d diff --git a/tools/pDummies/WW2/SPE_Assets_m/Weapons/Mines_m/SPE_M3_AP b/tools/pDummies/WW2/SPE_Assets_m/Weapons/Mines_m/SPE_M3_AP new file mode 100644 index 00000000000..e69de29bb2d diff --git a/tools/pDummies/WW2/SPE_Assets_m/Weapons/Mines_m/SPE_M3_AP_Pressure b/tools/pDummies/WW2/SPE_Assets_m/Weapons/Mines_m/SPE_M3_AP_Pressure new file mode 100644 index 00000000000..e69de29bb2d diff --git a/tools/pDummies/WW2/SPE_Assets_m/Weapons/Mines_m/SPE_Shumine42 b/tools/pDummies/WW2/SPE_Assets_m/Weapons/Mines_m/SPE_Shumine42 new file mode 100644 index 00000000000..e69de29bb2d diff --git a/tools/pDummies/WW2/SPE_Assets_m/Weapons/Mines_m/SPE_Smi35 b/tools/pDummies/WW2/SPE_Assets_m/Weapons/Mines_m/SPE_Smi35 new file mode 100644 index 00000000000..e69de29bb2d diff --git a/tools/pDummies/WW2/SPE_Assets_m/Weapons/Mines_m/SPE_Smi35_1 b/tools/pDummies/WW2/SPE_Assets_m/Weapons/Mines_m/SPE_Smi35_1 new file mode 100644 index 00000000000..e69de29bb2d diff --git a/tools/pDummies/WW2/SPE_Assets_m/Weapons/Mines_m/SPE_Smi35_2 b/tools/pDummies/WW2/SPE_Assets_m/Weapons/Mines_m/SPE_Smi35_2 new file mode 100644 index 00000000000..e69de29bb2d diff --git a/tools/pDummies/WW2/SPE_Assets_m/Weapons/Mines_m/SPE_Stmi b/tools/pDummies/WW2/SPE_Assets_m/Weapons/Mines_m/SPE_Stmi new file mode 100644 index 00000000000..e69de29bb2d diff --git a/tools/pDummies/WW2/SPE_Assets_m/Weapons/Mines_m/SPE_TNT_4pound b/tools/pDummies/WW2/SPE_Assets_m/Weapons/Mines_m/SPE_TNT_4pound new file mode 100644 index 00000000000..e69de29bb2d diff --git a/tools/pDummies/WW2/SPE_Assets_m/Weapons/Mines_m/SPE_TNT_4pound - Copy (11) b/tools/pDummies/WW2/SPE_Assets_m/Weapons/Mines_m/SPE_TNT_4pound - Copy (11) new file mode 100644 index 00000000000..e69de29bb2d diff --git a/tools/pDummies/WW2/SPE_Assets_m/Weapons/Mines_m/SPE_TNT_4pound - Copy (16) b/tools/pDummies/WW2/SPE_Assets_m/Weapons/Mines_m/SPE_TNT_4pound - Copy (16) new file mode 100644 index 00000000000..e69de29bb2d diff --git a/tools/pDummies/WW2/SPE_Assets_m/Weapons/Mines_m/SPE_TNT_4pound - Copy (17) b/tools/pDummies/WW2/SPE_Assets_m/Weapons/Mines_m/SPE_TNT_4pound - Copy (17) new file mode 100644 index 00000000000..e69de29bb2d diff --git a/tools/pDummies/WW2/SPE_Assets_m/Weapons/Mines_m/SPE_TNT_Half_Pound b/tools/pDummies/WW2/SPE_Assets_m/Weapons/Mines_m/SPE_TNT_Half_Pound new file mode 100644 index 00000000000..e69de29bb2d diff --git a/tools/pDummies/WW2/SPE_Assets_m/Weapons/Mines_m/SPE_Tmi42 b/tools/pDummies/WW2/SPE_Assets_m/Weapons/Mines_m/SPE_Tmi42 new file mode 100644 index 00000000000..e69de29bb2d diff --git a/tools/pDummies/WW2/SPE_Assets_m/Weapons/Mortars_m/SPE_M1_Mortar_Stand_Deployed.p3d b/tools/pDummies/WW2/SPE_Assets_m/Weapons/Mortars_m/SPE_M1_Mortar_Stand_Deployed.p3d new file mode 100644 index 00000000000..e69de29bb2d diff --git a/tools/pDummies/WW2/SPE_Assets_t/Weapons/Equipment_t/Weapons/Launchers/Gear_GrW278_1_Stand_X_ca.paa b/tools/pDummies/WW2/SPE_Assets_t/Weapons/Equipment_t/Weapons/Launchers/Gear_GrW278_1_Stand_X_ca.paa new file mode 100644 index 00000000000..e69de29bb2d diff --git a/tools/pDummies/WW2/SPE_Assets_t/Weapons/Equipment_t/Weapons/Launchers/Gear_M1_81_Stand_X_ca.paa b/tools/pDummies/WW2/SPE_Assets_t/Weapons/Equipment_t/Weapons/Launchers/Gear_M1_81_Stand_X_ca.paa new file mode 100644 index 00000000000..e69de29bb2d diff --git a/tools/pDummies/WW2/SPE_Assets_t/Weapons/Equipment_t/Weapons/Launchers/Gear_MLE_27_31_Stand_X_ca.paa b/tools/pDummies/WW2/SPE_Assets_t/Weapons/Equipment_t/Weapons/Launchers/Gear_MLE_27_31_Stand_X_ca.paa new file mode 100644 index 00000000000..e69de29bb2d diff --git a/tools/pDummies/WW2/SPE_Assets_t/Weapons/mortars_t/m1_mortar/Brandt_81mm_Mortar_French_co.paa b/tools/pDummies/WW2/SPE_Assets_t/Weapons/mortars_t/m1_mortar/Brandt_81mm_Mortar_French_co.paa new file mode 100644 index 00000000000..e69de29bb2d diff --git a/tools/pDummies/WW2/SPE_Assets_t/Weapons/mortars_t/m1_mortar/Brandt_81mm_Mortar_Gelb_co.paa b/tools/pDummies/WW2/SPE_Assets_t/Weapons/mortars_t/m1_mortar/Brandt_81mm_Mortar_Gelb_co.paa new file mode 100644 index 00000000000..e69de29bb2d diff --git a/tools/pDummies/WW2/SPE_Assets_t/Weapons/mortars_t/m1_mortar/Brandt_81mm_Sight_French_co.paa b/tools/pDummies/WW2/SPE_Assets_t/Weapons/mortars_t/m1_mortar/Brandt_81mm_Sight_French_co.paa new file mode 100644 index 00000000000..e69de29bb2d diff --git a/tools/pDummies/WW2/SPE_Assets_t/Weapons/mortars_t/m1_mortar/Brandt_81mm_Sight_Gelb_co.paa b/tools/pDummies/WW2/SPE_Assets_t/Weapons/mortars_t/m1_mortar/Brandt_81mm_Sight_Gelb_co.paa new file mode 100644 index 00000000000..e69de29bb2d