Skip to content

Commit

Permalink
SOG Compat - Add 1.2 update support (acemod#8974)
Browse files Browse the repository at this point in the history
* Update vn_mine_tripwire_m16_02_ammo base class

* Fix fnc_handlePunjiTrapDamage

Hopefully once and for all

* Remove placement actions from punji traps

* Add Explosives compat for 1.2 content

TODO testing

* Add quoting to stringtable config usage

* Prevent bike mine placement object from swinging all over the place

* Add non attachable ACE_Triggers for big mines

Bike mine looks kinda stupid when it's attached to a car...

* Bike mine triggers

* Cartridge mine triggers

* Lighter mine triggers

* Pot mine triggers

* Jerrycan mine triggers

* Mortar shell mine triggers

* Grenade board mine triggers

* Inheritance fixes

* Update damage handler for new punji traps

* Improve interaction points and dig distances

* Dh10 mine triggers

* Bump damage of vn_mine_cartridge_ammo

* Add incendiary features to lighter and jerry can explosives

WIP

* SOG Compat - Added fuel tank volumes for SOG update 1.2 vehicles (acemod#8978)

* Added fuel tank volumes for SOG update 1.2 vehicles

* Type 55A is similar in fuel capacity to the PTF Nasty, not the PBR

* Add missing EOLs

Co-authored-by: Filip Maciejewski <veteran29@users.noreply.github.com>

* Improve placement feedback of Whip punji

* Add inheritance to custom wound handlers

* Fix doorway punji position

* Add spikes offset for affected units of doorway trap

* Prevent spiderholes from being loaded into cargo

* Add missing continue digging action to spiderholes

* Fix spiderholes physics while being dug up via trenches system

Depends on acemod#8998

* Add missing params

* Fix parenthesis

* Add pDrive dummy files

This is stupid.

* Enable Melee weapons in the arsenal

* Add Entrenching tool capabilities to Shovel and ETool

Depends on acemod#8999

* Add incendiary features to Molotov and M14

* Tweak chance of being set ablaze

Now sums all hitpoints damage.

* Add ACE_damageType to napalm and he bombs

* Do not change cartridge mine damage and range if no ACE Medical

* Simplify variable config values

* Swap cartridge mine hit values

Whoopsie.

* Add overpressure configs to launchers

* Fixed an issue preventing the M1919A6 CSW from being disassembled (acemod#8970)

* Remove disassembleTo from CSW weapons

This config property is meant for tripods.

* Add CSW config for MG42

* Simplify requiredAddons

* Remove proxy weapons from most of the CSW, adjust loading times

The animations are pretty important in case of SOGPF turrets, the ammo load times were adjusted accordingly so the total loading times is similar.

* Add vn_pavn_30_can.p3d pDrive dummy

* Fix missing MG42 mag icon

* Add field_rations values to food props/mags

Needs acemod#9008 to be usable.

* Add more field_rations values to food props/mags

Send help.

* More food configs

* Even more food configs

Fooooood.

* More fooood

Even more foooooood.

* Fix food inheritance

* Add SGM CSW compatibility

* Various fixes for CSW

Wrong tripods for opfor guns, missing translation

* Improve TOW interaction position

* Add dragging and interaction configs to recoilles rifles

* Cleanup SGM CSW config

* Add MK18 CSW config

* Add H-12 MLRS CSW config

* Add missing Mk18 stringtable

* Add function header and logging to fnc_woundsHandlerIncendiary

* Add missing weapons in CfgPatches array

* Add entrenching tool config to backpacks

* Fix Hammer and Fire axe melee weapons

* Add missing CSW images

Thanks @BaerMitUmlaut

Co-authored-by: Samuel Deutsch <Quantx@users.noreply.github.com>
  • Loading branch information
2 people authored and RusComBear committed Dec 29, 2023
1 parent c352ae8 commit 1c695a7
Show file tree
Hide file tree
Showing 54 changed files with 1,856 additions and 53 deletions.
21 changes: 21 additions & 0 deletions optionals/compat_sog/ACE_CSW_Groups.hpp
Original file line number Diff line number Diff line change
@@ -1,4 +1,7 @@
class ACE_CSW_Groups {

// --- Gun Turrets -------------------------------------------------------------

class ace_csw_100Rnd_127x99_mag {
vn_m2_v_100_mag = 1;
};
Expand Down Expand Up @@ -31,6 +34,24 @@ class ACE_CSW_Groups {
vn_pk_v_100_mag = 1;
};

class GVAR(mg42_250) {
vn_mg42_v_250_mag = 1;
};

class GVAR(sgm_250) {
vn_sgm_v_250_mag = 1;
};

class GVAR(mk18_24) {
vn_mk18_v_24_mag = 1;
};

class GVAR(mk18_48) {
vn_mk18_v_48_mag = 1;
};

// --- Mortars -----------------------------------------------------------------

class GVAR(81mm_he) {
vn_mortar_m29_mag_he_x8 = 1;
};
Expand Down
15 changes: 15 additions & 0 deletions optionals/compat_sog/ACE_Medical_Injuries.hpp
Original file line number Diff line number Diff line change
@@ -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)});
};
};
};
};
11 changes: 11 additions & 0 deletions optionals/compat_sog/ACE_Triggers.hpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
class ACE_Triggers {
class Command;
class GVAR(Command): Command {
isAttachable = 0;
};

class MK16_Transmitter: Command {}; // define parent class to make this a soft depency on ACE Explosives
class GVAR(MK16_Transmitter): MK16_Transmitter {
isAttachable = 0;
};
};
1 change: 1 addition & 0 deletions optionals/compat_sog/CfgAmmo.hpp
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
class CfgAmmo {
#include "CfgAmmo\bombs.hpp"
#include "CfgAmmo\explosives.hpp"
#include "CfgAmmo\grenades.hpp"
#include "CfgAmmo\melee.hpp"
Expand Down
15 changes: 15 additions & 0 deletions optionals/compat_sog/CfgAmmo/bombs.hpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@

class BombCore;
class vn_bomb_base_he: BombCore {
ACE_damageType = "explosive";
};

class Mo_cluster_AP;
class vn_napalm_cluster_bomb_01: Mo_cluster_AP {
ACE_damageType = QGVAR(explosive_incendiary);
};

class ShellBase;
class sticky_napalm_red_small: ShellBase {
ACE_damageType = QGVAR(explosive_incendiary);
};
108 changes: 103 additions & 5 deletions optionals/compat_sog/CfgAmmo/explosives.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,8 @@ class vn_mine_m18_x3_ammo: vn_mine_m18_ammo {
EGVAR(explosives,explosive) = "vn_mine_m18_x3_ammo_scripted";
};

class APERSBoundingMine_Range_Ammo;
class vn_mine_tripwire_m16_02_ammo: APERSBoundingMine_Range_Ammo {
class vn_mine_m16_base;
class vn_mine_tripwire_m16_02_ammo: vn_mine_m16_base {
EGVAR(explosives,defuseObjectPosition)[] = {0, -0.01, 0.088};
};

Expand All @@ -31,13 +31,14 @@ class vn_mine_m112_remote_ammo: DemoCharge_Remote_Ammo {

// Disable engine damage of punji traps, script damage manually
// This allows a tighter control of caused wounds and removes ear ringing
class APERSBoundingMine_Range_Ammo;
class vn_mine_punji_01_ammo: APERSBoundingMine_Range_Ammo {
EGVAR(minedetector,detectable) = 0;

hit = QUOTE(call compile getText (configFile >> 'CfgAmmo' >> 'vn_mine_punji_01_ammo' >> 'GVAR(hit)'));
hit = QUOTE(getNumber (configFile >> 'CfgAmmo' >> 'vn_mine_punji_01_ammo' >> 'GVAR(hit)'));
GVAR(hit) = QUOTE([ARR_2(0,1)] select isNull (configFile >> 'CfgPatches' >> 'ace_medical'));

indirectHit = QUOTE(call compile getText (configFile >> 'CfgAmmo' >> 'vn_mine_punji_01_ammo' >> 'GVAR(indirectHit)'));
indirectHit = QUOTE(getNumber (configFile >> 'CfgAmmo' >> 'vn_mine_punji_01_ammo' >> 'GVAR(indirectHit)'));
GVAR(indirectHit) = QUOTE([ARR_2(0,10)] select isNull (configFile >> 'CfgPatches' >> 'ace_medical'));

class EventHandlers {
Expand All @@ -48,7 +49,7 @@ class vn_mine_punji_01_ammo: APERSBoundingMine_Range_Ammo {
};

class vn_mine_punji_02_ammo: vn_mine_punji_01_ammo {
indirectHit = QUOTE(call compile getText (configFile >> 'CfgAmmo' >> 'vn_mine_punji_02_ammo' >> 'GVAR(indirectHit)'));
indirectHit = QUOTE(getNumber (configFile >> 'CfgAmmo' >> 'vn_mine_punji_02_ammo' >> 'GVAR(indirectHit)'));
GVAR(indirectHit) = QUOTE([ARR_2(0,5)] select isNull (configFile >> 'CfgPatches' >> 'ace_medical'));
};

Expand All @@ -61,3 +62,100 @@ class vn_mine_punji_03_ammo: vn_mine_punji_01_ammo {
};
};
};

class vn_mine_punji_04_ammo: APERSBoundingMine_Range_Ammo {
EGVAR(minedetector,detectable) = 0;

hit = QUOTE(getNumber (configFile >> 'CfgAmmo' >> 'vn_mine_punji_01_ammo' >> 'GVAR(hit)'));
GVAR(hit) = QUOTE([ARR_2(0,1)] select isNull (configFile >> 'CfgPatches' >> 'ace_medical'));

indirectHit = QUOTE(getNumber (configFile >> 'CfgAmmo' >> 'vn_mine_punji_01_ammo' >> 'GVAR(indirectHit)'));
GVAR(indirectHit) = QUOTE([ARR_2(0,10)] select isNull (configFile >> 'CfgPatches' >> 'ace_medical'));

GVAR(spikesOffset)[] = {0, 0, 1.8};
GVAR(spikesCheckSelection) = "head";
GVAR(spikesCheckRadius) = 1;

class EventHandlers {
class ADDON {
AmmoHit = QUOTE(call FUNC(handlePunjiTrapTrigger));
};
};
};

class vn_mine_punji_05_ammo: vn_mine_punji_04_ammo {
GVAR(spikesOffset)[] = {0, 0, 0};
GVAR(spikesCheckSelection) = "";

class EventHandlers {
class ADDON {
AmmoHit = QUOTE(call FUNC(handlePunjiTrapTrigger));
};
};
};

class APERSMine_Range_Ammo;
class vn_mine_bike_ammo: APERSMine_Range_Ammo {
EGVAR(explosives,explosive) = "vn_mine_bike_ammo_scripted";
};

class vn_mine_cartridge_ammo: APERSMine_Range_Ammo {
EGVAR(explosives,explosive) = "vn_mine_cartridge_ammo_scripted";

// bump range and damage slightly, default values do not work well with ACE Medical
indirectHit = QUOTE(getNumber (configFile >> 'CfgAmmo' >> 'vn_mine_cartridge_ammo' >> 'GVAR(indirectHit)'));
GVAR(indirectHit) = QUOTE([ARR_2(2,1)] select isNull (configFile >> 'CfgPatches' >> 'ace_medical'));

indirectHitRange = QUOTE(getNumber (configFile >> 'CfgAmmo' >> 'vn_mine_cartridge_ammo' >> 'GVAR(indirectHitRange)'));
GVAR(indirectHitRange) = QUOTE([ARR_2(0.7,0.3)] select isNull (configFile >> 'CfgPatches' >> 'ace_medical'));
};

class vn_mine_lighter_ammo: APERSMine_Range_Ammo {
ACE_damageType = QGVAR(explosive_incendiary);

EGVAR(explosives,explosive) = "vn_mine_lighter_ammo_scripted";
};

class vn_mine_jerrycan_ammo: APERSMine_Range_Ammo {
ACE_damageType = QGVAR(explosive_incendiary);

EGVAR(explosives,explosive) = "vn_mine_jerrycan_ammo_scripted";
};

class vn_mine_pot_ammo: APERSMine_Range_Ammo {
EGVAR(explosives,explosive) = "vn_mine_pot_ammo_scripted";
};

class vn_mine_mortar_range_ammo: APERSMine_Range_Ammo {
EGVAR(explosives,explosive) = "vn_mine_mortar_range_ammo_scripted";
};

class vn_mine_limpet_01_ammo: DemoCharge_Remote_Ammo {
EGVAR(explosives,explosive) = "vn_mine_limpet_01_ammo_scripted";
};

class vn_mine_limpet_02_ammo: vn_mine_limpet_01_ammo {
EGVAR(explosives,explosive) = "vn_mine_limpet_02_ammo_scripted";
};

class vn_mine_chicom_no8_ammo: APERSMine_Range_Ammo {
EGVAR(explosives,explosive) = "vn_mine_chicom_no8_ammo_scripted";
};

class vn_mine_dh10_ammo: DirectionalBombBase {
EGVAR(explosives,explosive) = "vn_mine_dh10_ammo_scripted";
};

class PipeBombBase;
class vn_mine_gboard_range_ammo: PipeBombBase {
EGVAR(explosives,explosive) = "vn_mine_gboard_range_ammo_scripted";
};

class SatchelCharge_Remote_Ammo;
class vn_mine_satchelcharge_02_ammo: SatchelCharge_Remote_Ammo {
EGVAR(explosives,explosive) = "vn_mine_satchelcharge_02_ammo_scripted";
};

class vn_mine_bangalore_ammo: SatchelCharge_Remote_Ammo {
EGVAR(explosives,explosive) = "vn_mine_bangalore_ammo_scripted";
};
8 changes: 7 additions & 1 deletion optionals/compat_sog/CfgAmmo/grenades.hpp
Original file line number Diff line number Diff line change
@@ -1,4 +1,10 @@
class vn_grenadehand;
class vn_molotov_grenade_ammo: vn_grenadehand {
ACE_frag_enabled = 0;
ACE_damageType = QGVAR(explosive_incendiary);
EGVAR(frag,enabled) = 0;
};

class SmokeShell;
class vn_m14_grenade_ammo: SmokeShell {
EGVAR(grenades,incendiary) = 1;
};
1 change: 1 addition & 0 deletions optionals/compat_sog/CfgMagazines.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,5 @@ class CfgMagazines {
#include "CfgMagazines\belts.hpp"
#include "CfgMagazines\csw.hpp"
#include "CfgMagazines\explosives.hpp"
#include "CfgMagazines\food.hpp"
};
42 changes: 42 additions & 0 deletions optionals/compat_sog/CfgMagazines/csw.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,8 @@ class GVAR(tow_missile): vn_missile_tow_mag_x1 {
mass = 220; // to Arma, weight and volume are all the same which makes real life values unusable
};

// --- Gun Turrets -------------------------------------------------------------

class vn_m1919_v_250_mag;
class GVAR(m1919_250): vn_m1919_v_250_mag {
scope = 2;
Expand Down Expand Up @@ -42,6 +44,46 @@ class GVAR(dshkm_50): vn_dshkm_v_50_mag {
mass = 170;
};

class vn_mg42_v_250_mag;
class GVAR(mg42_250): vn_mg42_v_250_mag {
scope = 2;
type = 256;
model = "\vn\objects_f_vietnam\supply\a2_ammo\pavn\vn_pavn_30_can.p3d";
picture = "\vn\weapons_f_vietnam\ui\icon_vn_pk_100_mag_ca.paa";
ACE_isBelt = 1;
mass = 160;
};

class vn_sgm_v_250_mag;
class GVAR(sgm_250): vn_sgm_v_250_mag {
scope = 2;
type = 256;
model = "\vn\objects_f_vietnam\supply\a2_ammo\pavn\vn_pavn_30_can.p3d";
picture = "\vn\weapons_f_vietnam\ui\icon_vn_pk_100_mag_ca.paa";
ACE_isBelt = 1;
mass = 160;
};

class vn_mk18_v_24_mag;
class GVAR(mk18_24): vn_mk18_v_24_mag {
scope = 2;
type = 256;
model = "\A3\Structures_F_EPB\Items\Military\Ammobox_rounds_F.p3d"; // ammo can instead of any special model so no one gets especially confused over what it is
picture = QPATHTOEF(csw,UI\ammoBox_50bmg_ca.paa);
mass = 160;
};

class vn_mk18_v_48_mag;
class GVAR(mk18_48): vn_mk18_v_48_mag {
scope = 2;
type = 256;
model = "\A3\Structures_F_EPB\Items\Military\Ammobox_rounds_F.p3d"; // ammo can instead of any special model so no one gets especially confused over what it is
picture = QPATHTOEF(csw,UI\ammoBox_50bmg_ca.paa);
mass = 220;
};

// --- Mortars -----------------------------------------------------------------

class vn_mortar_m29_mag_he_x8;
class GVAR(81mm_he): vn_mortar_m29_mag_he_x8 {
scope = 2;
Expand Down
Loading

0 comments on commit 1c695a7

Please sign in to comment.