From 8cd8504b3f434186121b12bd5435e6d860971a45 Mon Sep 17 00:00:00 2001
From: Joko
Date: Fri, 10 Jul 2015 22:30:07 +0200
Subject: [PATCH 001/170] Add Posibility to Change Backblast Values in Magazine
Config
---
addons/overpressure/CfgEventHandlers.hpp | 14 +++++++-------
.../functions/fnc_fireLauncherBackblast.sqf | 12 +++++++++---
.../functions/fnc_fireOverpressureZone.sqf | 13 ++++++++++---
3 files changed, 26 insertions(+), 13 deletions(-)
diff --git a/addons/overpressure/CfgEventHandlers.hpp b/addons/overpressure/CfgEventHandlers.hpp
index 439270861b..a008c845f1 100644
--- a/addons/overpressure/CfgEventHandlers.hpp
+++ b/addons/overpressure/CfgEventHandlers.hpp
@@ -14,38 +14,38 @@ class Extended_PostInit_EventHandlers {
class Extended_FiredBIS_EventHandlers {
class CAManBase {
class ADDON {
- firedBIS = QUOTE(if (local (_this select 0) && {getNumber (configfile >> 'CfgWeapons' >> _this select 1 >> QUOTE(QGVAR(Damage))) > 0}) then {_this call DFUNC(fireLauncherBackblast)});
+ firedBIS = QUOTE(if (local (_this select 0) && {getNumber (configfile >> 'CfgMagazines' >> _this select 5 >> QUOTE(QGVAR(Damage))) > 0} || {getNumber (configfile >> 'CfgWeapons' >> _this select 1 >> QUOTE(QGVAR(Damage))) > 0}) then {_this call DFUNC(fireLauncherBackblast)});
};
};
class Tank {
class ADDON {
- firedBIS = QUOTE(if (local (_this select 0) && {getNumber (configfile >> 'CfgWeapons' >> _this select 1 >> QUOTE(QGVAR(Damage))) > 0}) then {_this call DFUNC(fireOverpressureZone)});
+ firedBIS = QUOTE(if (local (_this select 0) && {getNumber (configfile >> 'CfgMagazines' >> _this select 5 >> QUOTE(QGVAR(Damage))) > 0} || {getNumber (configfile >> 'CfgWeapons' >> _this select 1 >> QUOTE(QGVAR(Damage))) > 0}) then {_this call DFUNC(fireOverpressureZone)});
};
};
class Car {
class ADDON {
- firedBIS = QUOTE(if (local (_this select 0) && {getNumber (configfile >> 'CfgWeapons' >> _this select 1 >> QUOTE(QGVAR(Damage))) > 0}) then {_this call DFUNC(fireOverpressureZone)});
+ firedBIS = QUOTE(if (local (_this select 0) && {getNumber (configfile >> 'CfgMagazines' >> _this select 5 >> QUOTE(QGVAR(Damage))) > 0} || {getNumber (configfile >> 'CfgWeapons' >> _this select 1 >> QUOTE(QGVAR(Damage))) > 0}) then {_this call DFUNC(fireOverpressureZone)});
};
};
class Helicopter {
class ADDON {
- firedBIS = QUOTE(if (local (_this select 0) && {getNumber (configfile >> 'CfgWeapons' >> _this select 1 >> QUOTE(QGVAR(Damage))) > 0}) then {_this call DFUNC(fireOverpressureZone)});
+ firedBIS = QUOTE(if (local (_this select 0) && {getNumber (configfile >> 'CfgMagazines' >> _this select 5 >> QUOTE(QGVAR(Damage))) > 0} || {getNumber (configfile >> 'CfgWeapons' >> _this select 1 >> QUOTE(QGVAR(Damage))) > 0}) then {_this call DFUNC(fireOverpressureZone)});
};
};
class Plane {
class ADDON {
- firedBIS = QUOTE(if (local (_this select 0) && {getNumber (configfile >> 'CfgWeapons' >> _this select 1 >> QUOTE(QGVAR(Damage))) > 0}) then {_this call DFUNC(fireOverpressureZone)});
+ firedBIS = QUOTE(if (local (_this select 0) && {getNumber (configfile >> 'CfgMagazines' >> _this select 5 >> QUOTE(QGVAR(Damage))) > 0} || {getNumber (configfile >> 'CfgWeapons' >> _this select 1 >> QUOTE(QGVAR(Damage))) > 0}) then {_this call DFUNC(fireOverpressureZone)});
};
};
class Ship_F {
class ADDON {
- firedBIS = QUOTE(if (local (_this select 0) && {getNumber (configfile >> 'CfgWeapons' >> _this select 1 >> QUOTE(QGVAR(Damage))) > 0}) then {_this call DFUNC(fireOverpressureZone)});
+ firedBIS = QUOTE(if (local (_this select 0) && {getNumber (configfile >> 'CfgMagazines' >> _this select 5 >> QUOTE(QGVAR(Damage))) > 0} || {getNumber (configfile >> 'CfgWeapons' >> _this select 1 >> QUOTE(QGVAR(Damage))) > 0}) then {_this call DFUNC(fireOverpressureZone)});
};
};
class StaticWeapon {
class ADDON {
- firedBIS = QUOTE(if (local (_this select 0) && {getNumber (configfile >> 'CfgWeapons' >> _this select 1 >> QUOTE(QGVAR(Damage))) > 0}) then {_this call DFUNC(fireOverpressureZone)});
+ firedBIS = QUOTE(if (local (_this select 0) && {getNumber (configfile >> 'CfgMagazines' >> _this select 1 >> QUOTE(QGVAR(Damage))) > 0} || {getNumber (configfile >> 'CfgWeapons' >> _this select 1 >> QUOTE(QGVAR(Damage))) > 0}) then {_this call DFUNC(fireOverpressureZone)});
};
};
};
diff --git a/addons/overpressure/functions/fnc_fireLauncherBackblast.sqf b/addons/overpressure/functions/fnc_fireLauncherBackblast.sqf
index d5c28cca44..c3b19db29a 100644
--- a/addons/overpressure/functions/fnc_fireLauncherBackblast.sqf
+++ b/addons/overpressure/functions/fnc_fireLauncherBackblast.sqf
@@ -29,10 +29,16 @@ _position = getPosASL _projectile;
_direction = [0, 0, 0] vectorDiff (vectorDir _projectile);
private ["_backblastAngle", "_backblastRange", "_backblastDamage"];
+_backblastDamage = getNumber (configFile >> "CfgMagazines" >> _magazine >> QGVAR(damage));
-_backblastAngle = getNumber (configFile >> "CfgWeapons" >> _weapon >> QGVAR(angle)) / 2;
-_backblastRange = getNumber (configFile >> "CfgWeapons" >> _weapon >> QGVAR(range));
-_backblastDamage = getNumber (configFile >> "CfgWeapons" >> _weapon >> QGVAR(damage));
+if (_backblastDamage == 0) then {
+ _backblastAngle = getNumber (configFile >> "CfgWeapons" >> _weapon >> QGVAR(angle)) / 2;
+ _backblastRange = getNumber (configFile >> "CfgWeapons" >> _weapon >> QGVAR(range));
+ _backblastDamage = getNumber (configFile >> "CfgWeapons" >> _weapon >> QGVAR(damage));
+} else {
+ _backblastAngle = getNumber (configFile >> "CfgMagazines" >> _magazine >> QGVAR(angle)) / 2;
+ _backblastRange = getNumber (configFile >> "CfgMagazines" >> _magazine >> QGVAR(range));
+};
// Damage to others
private "_affected";
diff --git a/addons/overpressure/functions/fnc_fireOverpressureZone.sqf b/addons/overpressure/functions/fnc_fireOverpressureZone.sqf
index 4438e4a859..c51baf3e64 100644
--- a/addons/overpressure/functions/fnc_fireOverpressureZone.sqf
+++ b/addons/overpressure/functions/fnc_fireOverpressureZone.sqf
@@ -30,9 +30,16 @@ _direction = vectorDir _projectile;
private ["_dangerZoneAngle", "_dangerZoneRange", "_dangerZoneDamage"];
-_dangerZoneAngle = getNumber (configFile >> "CfgWeapons" >> _weapon >> QGVAR(angle)) / 2;
-_dangerZoneRange = getNumber (configFile >> "CfgWeapons" >> _weapon >> QGVAR(range));
-_dangerZoneDamage = getNumber (configFile >> "CfgWeapons" >> _weapon >> QGVAR(damage));
+_dangerZoneDamage = getNumber (configFile >> "CfgMagazines" >> _magazine >> QGVAR(damage));
+
+if (_dangerZoneDamage == 0) then {
+ _dangerZoneAngle = getNumber (configFile >> "CfgWeapons" >> _weapon >> QGVAR(angle)) / 2;
+ _dangerZoneRange = getNumber (configFile >> "CfgWeapons" >> _weapon >> QGVAR(range));
+ _dangerZoneDamage = getNumber (configFile >> "CfgWeapons" >> _weapon >> QGVAR(damage));
+} else {
+ _dangerZoneAngle = getNumber (configFile >> "CfgMagazines" >> _magazine >> QGVAR(angle)) / 2;
+ _dangerZoneRange = getNumber (configFile >> "CfgMagazines" >> _magazine >> QGVAR(range));
+};
// Damage to others
private "_affected";
From 9bb9df59eca3f5456e1e4e12aa289faa9c2dc2b5 Mon Sep 17 00:00:00 2001
From: Joko
Date: Sat, 11 Jul 2015 00:09:20 +0200
Subject: [PATCH 002/170] Add caching for Backblast
---
addons/overpressure/CfgEventHandlers.hpp | 14 ++++----
addons/overpressure/XEH_preInit.sqf | 4 ++-
.../functions/fnc_cacheOverPressureValues.sqf | 36 +++++++++++++++++++
.../functions/fnc_fireLauncherBackblast.sqf | 15 +++-----
.../functions/fnc_fireOverpressureZone.sqf | 16 +++------
.../overpressure/functions/fnc_firedEHBB.sqf | 21 +++++++++++
.../overpressure/functions/fnc_firedEHOP.sqf | 21 +++++++++++
.../functions/fnc_overpressureDamage.sqf | 9 +++--
8 files changed, 100 insertions(+), 36 deletions(-)
create mode 100644 addons/overpressure/functions/fnc_cacheOverPressureValues.sqf
create mode 100644 addons/overpressure/functions/fnc_firedEHBB.sqf
create mode 100644 addons/overpressure/functions/fnc_firedEHOP.sqf
diff --git a/addons/overpressure/CfgEventHandlers.hpp b/addons/overpressure/CfgEventHandlers.hpp
index a008c845f1..1c191b5a0d 100644
--- a/addons/overpressure/CfgEventHandlers.hpp
+++ b/addons/overpressure/CfgEventHandlers.hpp
@@ -14,38 +14,38 @@ class Extended_PostInit_EventHandlers {
class Extended_FiredBIS_EventHandlers {
class CAManBase {
class ADDON {
- firedBIS = QUOTE(if (local (_this select 0) && {getNumber (configfile >> 'CfgMagazines' >> _this select 5 >> QUOTE(QGVAR(Damage))) > 0} || {getNumber (configfile >> 'CfgWeapons' >> _this select 1 >> QUOTE(QGVAR(Damage))) > 0}) then {_this call DFUNC(fireLauncherBackblast)});
+ firedBIS = QUOTE(if (local (_this select 0)) then {_this call DFUNC(firedEHBB);};);
};
};
class Tank {
class ADDON {
- firedBIS = QUOTE(if (local (_this select 0) && {getNumber (configfile >> 'CfgMagazines' >> _this select 5 >> QUOTE(QGVAR(Damage))) > 0} || {getNumber (configfile >> 'CfgWeapons' >> _this select 1 >> QUOTE(QGVAR(Damage))) > 0}) then {_this call DFUNC(fireOverpressureZone)});
+ firedBIS = QUOTE(if (local (_this select 0)) then {_this call DFUNC(firedEHOP);};);
};
};
class Car {
class ADDON {
- firedBIS = QUOTE(if (local (_this select 0) && {getNumber (configfile >> 'CfgMagazines' >> _this select 5 >> QUOTE(QGVAR(Damage))) > 0} || {getNumber (configfile >> 'CfgWeapons' >> _this select 1 >> QUOTE(QGVAR(Damage))) > 0}) then {_this call DFUNC(fireOverpressureZone)});
+ firedBIS = QUOTE(if (local (_this select 0)) then {_this call DFUNC(firedEHOP);};);
};
};
class Helicopter {
class ADDON {
- firedBIS = QUOTE(if (local (_this select 0) && {getNumber (configfile >> 'CfgMagazines' >> _this select 5 >> QUOTE(QGVAR(Damage))) > 0} || {getNumber (configfile >> 'CfgWeapons' >> _this select 1 >> QUOTE(QGVAR(Damage))) > 0}) then {_this call DFUNC(fireOverpressureZone)});
+ firedBIS = QUOTE(if (local (_this select 0)) then {_this call DFUNC(firedEHOP);};);
};
};
class Plane {
class ADDON {
- firedBIS = QUOTE(if (local (_this select 0) && {getNumber (configfile >> 'CfgMagazines' >> _this select 5 >> QUOTE(QGVAR(Damage))) > 0} || {getNumber (configfile >> 'CfgWeapons' >> _this select 1 >> QUOTE(QGVAR(Damage))) > 0}) then {_this call DFUNC(fireOverpressureZone)});
+ firedBIS = QUOTE(if (local (_this select 0)) then {_this call DFUNC(firedEHOP);};);
};
};
class Ship_F {
class ADDON {
- firedBIS = QUOTE(if (local (_this select 0) && {getNumber (configfile >> 'CfgMagazines' >> _this select 5 >> QUOTE(QGVAR(Damage))) > 0} || {getNumber (configfile >> 'CfgWeapons' >> _this select 1 >> QUOTE(QGVAR(Damage))) > 0}) then {_this call DFUNC(fireOverpressureZone)});
+ firedBIS = QUOTE(if (local (_this select 0)) then {_this call DFUNC(firedEHOP);};);
};
};
class StaticWeapon {
class ADDON {
- firedBIS = QUOTE(if (local (_this select 0) && {getNumber (configfile >> 'CfgMagazines' >> _this select 1 >> QUOTE(QGVAR(Damage))) > 0} || {getNumber (configfile >> 'CfgWeapons' >> _this select 1 >> QUOTE(QGVAR(Damage))) > 0}) then {_this call DFUNC(fireOverpressureZone)});
+ firedBIS = QUOTE(if (local (_this select 0)) then {_this call DFUNC(firedEHOP);};);
};
};
};
diff --git a/addons/overpressure/XEH_preInit.sqf b/addons/overpressure/XEH_preInit.sqf
index 5eefc5eae4..d0ce7cbcf1 100644
--- a/addons/overpressure/XEH_preInit.sqf
+++ b/addons/overpressure/XEH_preInit.sqf
@@ -6,5 +6,7 @@ PREP(fireLauncherBackblast);
PREP(fireOverpressureZone);
PREP(getDistance);
PREP(overpressureDamage);
-
+PREP(cacheOverPressureValues);
+PREP(firedEHOP);
+PREP(firedEHBB);
ADDON = true;
diff --git a/addons/overpressure/functions/fnc_cacheOverPressureValues.sqf b/addons/overpressure/functions/fnc_cacheOverPressureValues.sqf
new file mode 100644
index 0000000000..69a38b4c18
--- /dev/null
+++ b/addons/overpressure/functions/fnc_cacheOverPressureValues.sqf
@@ -0,0 +1,36 @@
+/*
+ * Author: joko // Jonas
+ *
+ * Handle fire of local launchers
+ *
+ * Argument:
+ * 0: Magazine (String)
+ * 1:
+ *
+ * Return value:
+ * Array:
+ * 0:
+ * 1:
+ * 2:
+ *
+ */
+ #include "script_component.hpp"
+
+EXPLODE_2_PVT(_this,_weapon,_magazine);
+
+private ["_damage","_angle","_range"];
+_damage = getNumber (configFile >> "CfgMagazines" >> _magazine >> QGVAR(damage));
+if (_damage == 0) then {
+ _angle = getNumber (configFile >> "CfgWeapons" >> _weapon >> QGVAR(angle)) / 2;
+ _range = getNumber (configFile >> "CfgWeapons" >> _weapon >> QGVAR(range));
+ _damage = getNumber (configFile >> "CfgWeapons" >> _weapon >> QGVAR(damage));
+} else {
+ _angle = getNumber (configFile >> "CfgMagazines" >> _magazine >> QGVAR(angle)) / 2;
+ _range = getNumber (configFile >> "CfgMagazines" >> _magazine >> QGVAR(range));
+};
+
+missionNameSpace setVariable [(QGVAR(Angle) + _magazine),_angle];
+missionNameSpace setVariable [(QGVAR(Range) + _magazine),_range];
+missionNameSpace setVariable [(QGVAR(Damage) + _magazine),_damage];
+
+[_angle,_range,_damage]
diff --git a/addons/overpressure/functions/fnc_fireLauncherBackblast.sqf b/addons/overpressure/functions/fnc_fireLauncherBackblast.sqf
index c3b19db29a..5167423bd2 100644
--- a/addons/overpressure/functions/fnc_fireLauncherBackblast.sqf
+++ b/addons/overpressure/functions/fnc_fireLauncherBackblast.sqf
@@ -15,7 +15,7 @@
* Return value:
* None
*/
-//#define DEBUG_MODE_FULL
+
#include "script_component.hpp"
EXPLODE_7_PVT(_this,_firer,_weapon,_muzzle,_mode,_ammo,_magazine,_projectile);
@@ -29,16 +29,9 @@ _position = getPosASL _projectile;
_direction = [0, 0, 0] vectorDiff (vectorDir _projectile);
private ["_backblastAngle", "_backblastRange", "_backblastDamage"];
-_backblastDamage = getNumber (configFile >> "CfgMagazines" >> _magazine >> QGVAR(damage));
-
-if (_backblastDamage == 0) then {
- _backblastAngle = getNumber (configFile >> "CfgWeapons" >> _weapon >> QGVAR(angle)) / 2;
- _backblastRange = getNumber (configFile >> "CfgWeapons" >> _weapon >> QGVAR(range));
- _backblastDamage = getNumber (configFile >> "CfgWeapons" >> _weapon >> QGVAR(damage));
-} else {
- _backblastAngle = getNumber (configFile >> "CfgMagazines" >> _magazine >> QGVAR(angle)) / 2;
- _backblastRange = getNumber (configFile >> "CfgMagazines" >> _magazine >> QGVAR(range));
-};
+_backblastAngle = missionNameSpace getVariable [(QGVAR(Angle) + _magazine),([_weapon,_magazine] call FUNC(cacheOverPressureVales)) select 0];
+_backblastRange = missionNameSpace getVariable [(QGVAR(Range) + _magazine),([_weapon,_magazine] call FUNC(cacheOverPressureVales)) select 1];
+_backblastDamage = missionNameSpace getVariable [(QGVAR(Damage) + _magazine),([_weapon,_magazine] call FUNC(cacheOverPressureVales)) select 2];
// Damage to others
private "_affected";
diff --git a/addons/overpressure/functions/fnc_fireOverpressureZone.sqf b/addons/overpressure/functions/fnc_fireOverpressureZone.sqf
index c51baf3e64..9731fdfa69 100644
--- a/addons/overpressure/functions/fnc_fireOverpressureZone.sqf
+++ b/addons/overpressure/functions/fnc_fireOverpressureZone.sqf
@@ -29,24 +29,16 @@ _position = getPosASL _projectile;
_direction = vectorDir _projectile;
private ["_dangerZoneAngle", "_dangerZoneRange", "_dangerZoneDamage"];
-
-_dangerZoneDamage = getNumber (configFile >> "CfgMagazines" >> _magazine >> QGVAR(damage));
-
-if (_dangerZoneDamage == 0) then {
- _dangerZoneAngle = getNumber (configFile >> "CfgWeapons" >> _weapon >> QGVAR(angle)) / 2;
- _dangerZoneRange = getNumber (configFile >> "CfgWeapons" >> _weapon >> QGVAR(range));
- _dangerZoneDamage = getNumber (configFile >> "CfgWeapons" >> _weapon >> QGVAR(damage));
-} else {
- _dangerZoneAngle = getNumber (configFile >> "CfgMagazines" >> _magazine >> QGVAR(angle)) / 2;
- _dangerZoneRange = getNumber (configFile >> "CfgMagazines" >> _magazine >> QGVAR(range));
-};
+_dangerZoneDamage = missionNameSpace getVariable [(QGVAR(Damage) + _magazine),([_weapon,_magazine] call FUNC(cacheOverPressureVales)) select 2];
+_dangerZoneAngle = missionNameSpace getVariable [(QGVAR(Angle) + _magazine),([_weapon,_magazine] call FUNC(cacheOverPressureVales)) select 0];
+_dangerZoneRange = missionNameSpace getVariable [(QGVAR(Damage) + _magazine),([_weapon,_magazine] call FUNC(cacheOverPressureVales)) select 2];
// Damage to others
private "_affected";
_affected = getPos _projectile nearEntities ["CAManBase", _dangerZoneRange];
// Let each client handle their own affected units
-["overpressure", _affected, [_firer, _position, _direction, _weapon]] call EFUNC(common,targetEvent);
+["overpressure", _affected, [_firer, _position, _direction, _weapon,_magazine]] call EFUNC(common,targetEvent);
// Draw debug lines
#ifdef DEBUG_MODE_FULL
diff --git a/addons/overpressure/functions/fnc_firedEHBB.sqf b/addons/overpressure/functions/fnc_firedEHBB.sqf
new file mode 100644
index 0000000000..1d88486c37
--- /dev/null
+++ b/addons/overpressure/functions/fnc_firedEHBB.sqf
@@ -0,0 +1,21 @@
+/*
+ * Author: joko // Jonas
+ *
+ * Handle fire of local launchers
+ *
+ * Argument:
+ * 0: Unit that fired (Object)
+ * 1: Weapon fired (String)
+ * 2: Muzzle (String)
+ * 3: Mode (String)
+ * 4: Ammo (String)
+ * 5: Magazine (String)
+ * 6: Projectile (Object)
+ *
+ * Return value:
+ * None
+ */
+
+ if (missionNameSpace getVariable [(QGVAR(Damage) + _this select 1),(([_this select 1,_this select 5] call DFUNC(cacheOverPressureVales)) select 2)]) then {
+ _this call DFUNC(fireLauncherBackblast)
+ };
diff --git a/addons/overpressure/functions/fnc_firedEHOP.sqf b/addons/overpressure/functions/fnc_firedEHOP.sqf
new file mode 100644
index 0000000000..6503731c2c
--- /dev/null
+++ b/addons/overpressure/functions/fnc_firedEHOP.sqf
@@ -0,0 +1,21 @@
+/*
+ * Author: joko // Jonas
+ *
+ * Handle fire of Other Weapons
+ *
+ * Argument:
+ * 0: Unit that fired (Object)
+ * 1: Weapon fired (String)
+ * 2: Muzzle (String)
+ * 3: Mode (String)
+ * 4: Ammo (String)
+ * 5: Magazine (String)
+ * 6: Projectile (Object)
+ *
+ * Return value:
+ * None
+ */
+
+ if (missionNameSpace getVariable [(QGVAR(Damage) + _this select 1),(([_this select 1,_this select 5] call DFUNC(cacheOverPressureVales)) select 2)]) then {
+ _this call DFUNC(fireOverpressureZone)
+ };
diff --git a/addons/overpressure/functions/fnc_overpressureDamage.sqf b/addons/overpressure/functions/fnc_overpressureDamage.sqf
index d1280b682f..669c9e8cc4 100644
--- a/addons/overpressure/functions/fnc_overpressureDamage.sqf
+++ b/addons/overpressure/functions/fnc_overpressureDamage.sqf
@@ -14,13 +14,12 @@
*/
#include "script_component.hpp"
-EXPLODE_4_PVT(_this,_firer,_posASL,_direction,_weapon);
+EXPLODE_4_PVT(_this,_firer,_posASL,_direction,_weapon,_magazine);
private ["_overpressureAngle", "_overpressureRange", "_overpressureDamage"];
-
-_overpressureAngle = getNumber (configFile >> "CfgWeapons" >> _weapon >> QGVAR(angle)) / 2;
-_overpressureRange = getNumber (configFile >> "CfgWeapons" >> _weapon >> QGVAR(range));
-_overpressureDamage = getNumber (configFile >> "CfgWeapons" >> _weapon >> QGVAR(damage));
+_overpressureAngle = missionNameSpace getVariable [(QGVAR(Damage) + _magazine),([_weapon,_magazine] call FUNC(cacheOverPressureVales)) select 2];
+_overpressureRange = missionNameSpace getVariable [(QGVAR(Angle) + _magazine),([_weapon,_magazine] call FUNC(cacheOverPressureVales)) select 0];
+_overpressureDamage = missionNameSpace getVariable [(QGVAR(Damage) + _magazine),([_weapon,_magazine] call FUNC(cacheOverPressureVales)) select 2];
TRACE_4("Parameters:",_overpressureAngle,_overpressureRange,_overpressureDamage,_weapon);
From 83e74d848df711f61b553c2debf81f5528af6e80 Mon Sep 17 00:00:00 2001
From: Joko
Date: Sat, 11 Jul 2015 00:50:12 +0200
Subject: [PATCH 003/170] fix that cachedOverPressureValue is called Multible
per Weapon
---
addons/overpressure/functions/fnc_cacheOverPressureValues.sqf | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/addons/overpressure/functions/fnc_cacheOverPressureValues.sqf b/addons/overpressure/functions/fnc_cacheOverPressureValues.sqf
index 69a38b4c18..b371bc0cf2 100644
--- a/addons/overpressure/functions/fnc_cacheOverPressureValues.sqf
+++ b/addons/overpressure/functions/fnc_cacheOverPressureValues.sqf
@@ -17,7 +17,7 @@
#include "script_component.hpp"
EXPLODE_2_PVT(_this,_weapon,_magazine);
-
+if !(isNil (QGVAR(Damage) + _magazine)) exitWith {};
private ["_damage","_angle","_range"];
_damage = getNumber (configFile >> "CfgMagazines" >> _magazine >> QGVAR(damage));
if (_damage == 0) then {
From 41edf3dd38dcd47d00eb6963152978ffe6a77155 Mon Sep 17 00:00:00 2001
From: Joko
Date: Fri, 17 Jul 2015 21:26:18 +0200
Subject: [PATCH 004/170] Rework after Comments form esteldunedain
---
.../functions/fnc_cacheOverPressureValues.sqf | 5 +----
.../functions/fnc_fireLauncherBackblast.sqf | 13 +++++++++----
.../functions/fnc_fireOverpressureZone.sqf | 12 ++++++++----
addons/overpressure/functions/fnc_firedEHBB.sqf | 10 ++++++++--
addons/overpressure/functions/fnc_firedEHOP.sqf | 9 ++++++++-
.../functions/fnc_overpressureDamage.sqf | 12 ++++++++----
6 files changed, 42 insertions(+), 19 deletions(-)
diff --git a/addons/overpressure/functions/fnc_cacheOverPressureValues.sqf b/addons/overpressure/functions/fnc_cacheOverPressureValues.sqf
index b371bc0cf2..0453b2437b 100644
--- a/addons/overpressure/functions/fnc_cacheOverPressureValues.sqf
+++ b/addons/overpressure/functions/fnc_cacheOverPressureValues.sqf
@@ -29,8 +29,5 @@ if (_damage == 0) then {
_range = getNumber (configFile >> "CfgMagazines" >> _magazine >> QGVAR(range));
};
-missionNameSpace setVariable [(QGVAR(Angle) + _magazine),_angle];
-missionNameSpace setVariable [(QGVAR(Range) + _magazine),_range];
-missionNameSpace setVariable [(QGVAR(Damage) + _magazine),_damage];
-
+missionNameSpace setVariable [(QGVAR(values) + _magazine),[_angle, _range,_damage]];
[_angle,_range,_damage]
diff --git a/addons/overpressure/functions/fnc_fireLauncherBackblast.sqf b/addons/overpressure/functions/fnc_fireLauncherBackblast.sqf
index 5167423bd2..5bc9d1c1e1 100644
--- a/addons/overpressure/functions/fnc_fireLauncherBackblast.sqf
+++ b/addons/overpressure/functions/fnc_fireLauncherBackblast.sqf
@@ -28,10 +28,15 @@ private ["_position", "_direction"];
_position = getPosASL _projectile;
_direction = [0, 0, 0] vectorDiff (vectorDir _projectile);
-private ["_backblastAngle", "_backblastRange", "_backblastDamage"];
-_backblastAngle = missionNameSpace getVariable [(QGVAR(Angle) + _magazine),([_weapon,_magazine] call FUNC(cacheOverPressureVales)) select 0];
-_backblastRange = missionNameSpace getVariable [(QGVAR(Range) + _magazine),([_weapon,_magazine] call FUNC(cacheOverPressureVales)) select 1];
-_backblastDamage = missionNameSpace getVariable [(QGVAR(Damage) + _magazine),([_weapon,_magazine] call FUNC(cacheOverPressureVales)) select 2];
+private ["_var","_varName","_backblastAngle", "_backblastRange", "_backblastDamage"];
+_varName = (QGVAR(values) + _magazine);
+_var = if (isNil _varName) then {
+ [_weapon,_magazine] call FUNC(cacheOverPressureVales);
+} else {
+ missionNameSpace getVariable _varName;
+};
+_var params["_backblastAngle","_backblastRange","_backblastDamage"];
+
// Damage to others
private "_affected";
diff --git a/addons/overpressure/functions/fnc_fireOverpressureZone.sqf b/addons/overpressure/functions/fnc_fireOverpressureZone.sqf
index 9731fdfa69..5e17036a13 100644
--- a/addons/overpressure/functions/fnc_fireOverpressureZone.sqf
+++ b/addons/overpressure/functions/fnc_fireOverpressureZone.sqf
@@ -28,10 +28,14 @@ private ["_position", "_direction"];
_position = getPosASL _projectile;
_direction = vectorDir _projectile;
-private ["_dangerZoneAngle", "_dangerZoneRange", "_dangerZoneDamage"];
-_dangerZoneDamage = missionNameSpace getVariable [(QGVAR(Damage) + _magazine),([_weapon,_magazine] call FUNC(cacheOverPressureVales)) select 2];
-_dangerZoneAngle = missionNameSpace getVariable [(QGVAR(Angle) + _magazine),([_weapon,_magazine] call FUNC(cacheOverPressureVales)) select 0];
-_dangerZoneRange = missionNameSpace getVariable [(QGVAR(Damage) + _magazine),([_weapon,_magazine] call FUNC(cacheOverPressureVales)) select 2];
+private ["_var","_dangerZoneAngle", "_dangerZoneRange", "_dangerZoneDamage"];
+_varName = (QGVAR(values) + _magazine);
+_var = if (isNil _varName) then {
+ [_weapon,_magazine] call FUNC(cacheOverPressureVales);
+} else {
+ missionNameSpace getVariable _varName;
+};
+_var params["_dangerZoneAngle","_dangerZoneRange","_dangerZoneDamage"];
// Damage to others
private "_affected";
diff --git a/addons/overpressure/functions/fnc_firedEHBB.sqf b/addons/overpressure/functions/fnc_firedEHBB.sqf
index 1d88486c37..5408ecda29 100644
--- a/addons/overpressure/functions/fnc_firedEHBB.sqf
+++ b/addons/overpressure/functions/fnc_firedEHBB.sqf
@@ -15,7 +15,13 @@
* Return value:
* None
*/
-
- if (missionNameSpace getVariable [(QGVAR(Damage) + _this select 1),(([_this select 1,_this select 5] call DFUNC(cacheOverPressureVales)) select 2)]) then {
+ private ["_var","_varName"];
+ _varName = (QGVAR(values) + _this select 1);
+ _var = if (isNil _varName) then {
+ ([_this select 1,_this select 5] call FUNC(cacheOverPressureVales)) select 2;
+ } else {
+ (missionNameSpace getVariable _varName) select 2;
+ };
+ if (_var > 0) then {
_this call DFUNC(fireLauncherBackblast)
};
diff --git a/addons/overpressure/functions/fnc_firedEHOP.sqf b/addons/overpressure/functions/fnc_firedEHOP.sqf
index 6503731c2c..f2ca912690 100644
--- a/addons/overpressure/functions/fnc_firedEHOP.sqf
+++ b/addons/overpressure/functions/fnc_firedEHOP.sqf
@@ -16,6 +16,13 @@
* None
*/
- if (missionNameSpace getVariable [(QGVAR(Damage) + _this select 1),(([_this select 1,_this select 5] call DFUNC(cacheOverPressureVales)) select 2)]) then {
+private ["_var","_varName"];
+_varName = (QGVAR(values) + _this select 1);
+_var = if (isNil _varName) then {
+ ([_this select 1,_this select 5] call FUNC(cacheOverPressureVales)) select 2;
+} else {
+ (missionNameSpace getVariable _varName) select 2;
+};
+ if (_var > 0) then {
_this call DFUNC(fireOverpressureZone)
};
diff --git a/addons/overpressure/functions/fnc_overpressureDamage.sqf b/addons/overpressure/functions/fnc_overpressureDamage.sqf
index 669c9e8cc4..282cc1e5db 100644
--- a/addons/overpressure/functions/fnc_overpressureDamage.sqf
+++ b/addons/overpressure/functions/fnc_overpressureDamage.sqf
@@ -16,10 +16,14 @@
EXPLODE_4_PVT(_this,_firer,_posASL,_direction,_weapon,_magazine);
-private ["_overpressureAngle", "_overpressureRange", "_overpressureDamage"];
-_overpressureAngle = missionNameSpace getVariable [(QGVAR(Damage) + _magazine),([_weapon,_magazine] call FUNC(cacheOverPressureVales)) select 2];
-_overpressureRange = missionNameSpace getVariable [(QGVAR(Angle) + _magazine),([_weapon,_magazine] call FUNC(cacheOverPressureVales)) select 0];
-_overpressureDamage = missionNameSpace getVariable [(QGVAR(Damage) + _magazine),([_weapon,_magazine] call FUNC(cacheOverPressureVales)) select 2];
+private ["_var","_overpressureAngle", "_overpressureRange", "_overpressureDamage"];
+_varName = (QGVAR(values) + _magazine);
+_var = if (isNil _varName) then {
+ [_weapon,_magazine] call FUNC(cacheOverPressureVales);
+} else {
+ missionNameSpace getVariable _varName;
+};
+_var params["_overpressureAngle","_overpressureRange","_overpressureDamage"];
TRACE_4("Parameters:",_overpressureAngle,_overpressureRange,_overpressureDamage,_weapon);
From 17115b88466f31c76dd37d99bcbd9e70d2bda4c3 Mon Sep 17 00:00:00 2001
From: Glowbal
Date: Tue, 11 Aug 2015 20:58:00 +0200
Subject: [PATCH 005/170] test switch to adv medical handleDamage
---
addons/medical/XEH_preInit.sqf | 2 +
addons/medical/functions/fnc_handleDamage.sqf | 29 ++-
.../functions/fnc_handleDamage_basic.sqf | 4 +-
.../functions/fnc_handleDamage_basic2.sqf | 168 ++++++++++++++++++
4 files changed, 201 insertions(+), 2 deletions(-)
create mode 100644 addons/medical/functions/fnc_handleDamage_basic2.sqf
diff --git a/addons/medical/XEH_preInit.sqf b/addons/medical/XEH_preInit.sqf
index b479383468..6ae9dbb866 100644
--- a/addons/medical/XEH_preInit.sqf
+++ b/addons/medical/XEH_preInit.sqf
@@ -2,6 +2,8 @@
ADDON = false;
+PREP(handleDamage_basic2);
+
PREP(actionCheckBloodPressure);
PREP(actionCheckBloodPressureLocal);
PREP(actionCheckPulse);
diff --git a/addons/medical/functions/fnc_handleDamage.sqf b/addons/medical/functions/fnc_handleDamage.sqf
index a4e5525276..47234d09fd 100644
--- a/addons/medical/functions/fnc_handleDamage.sqf
+++ b/addons/medical/functions/fnc_handleDamage.sqf
@@ -44,7 +44,34 @@ if !(_unit getVariable [QGVAR(allowDamage), true]) exitWith {_damageOld};
// Get return damage
_damageReturn = _damage;
if (GVAR(level) < 2) then {
- _damageReturn = _this call FUNC(handleDamage_basic);
+ _newDamage = _this call FUNC(handleDamage_basic2);
+ _projectile = _this select 4;
+ _typeOfDamage = [_projectile] call FUNC(getTypeOfDamage);
+
+ _typeIndex = (GVAR(allAvailableDamageTypes) find _typeOfDamage);
+ _minLethalDamage = 0.01;
+ if (_typeIndex >= 0) then {
+ _minLethalDamage = GVAR(minLethalDamages) select _typeIndex;
+ };
+
+ if (vehicle _unit != _unit && {!(vehicle _unit isKindOf "StaticWeapon")} && {isNull _shooter} && {_projectile == ""} && {_selection == ""}) then {
+ if (GVAR(enableVehicleCrashes)) then {
+ _selection = GVAR(SELECTIONS) select (floor(random(count GVAR(SELECTIONS))));
+ };
+ };
+
+ if ((_minLethalDamage <= _newDamage) && {[_unit, [_selection] call FUNC(selectionNameToNumber), _newDamage] call FUNC(determineIfFatal)}) then {
+ if ((_unit getVariable [QGVAR(preventInstaDeath), GVAR(preventInstaDeath)])) exitwith {
+ _damageReturn = 0.9;
+ };
+ if ([_unit] call FUNC(setDead)) then {
+ _damageReturn = 1;
+ } else {
+ _damageReturn = _damageReturn min 0.89;
+ };
+ } else {
+ _damageReturn = _damageReturn min 0.89;
+ };
} else {
if !([_unit] call FUNC(hasMedicalEnabled)) exitwith {
// Because of the config changes, we cannot properly disable the medical system for a unit.
diff --git a/addons/medical/functions/fnc_handleDamage_basic.sqf b/addons/medical/functions/fnc_handleDamage_basic.sqf
index 04049cfa7c..9b48a5d5c7 100644
--- a/addons/medical/functions/fnc_handleDamage_basic.sqf
+++ b/addons/medical/functions/fnc_handleDamage_basic.sqf
@@ -37,6 +37,8 @@ _threshold = [
_unit getVariable [QGVAR(damageThreshold), GVAR(AIDamageThreshold)],
_unit getVariable [QGVAR(damageThreshold), GVAR(playerDamageThreshold)]
] select ([_unit] call EFUNC(common,isPlayer));
+if (_selectionName in ["leg_l", "leg_r", "hand_l", "hand_r"]) then {_threshold = _threshold * 1.7};
+
_damage = _damage * (1 / _threshold);
// This is a new hit, reset variables.
@@ -63,7 +65,7 @@ if (diag_frameno > (_unit getVariable [QGVAR(basic_frameNo), -3]) + 2) then {
(_unit getHitPointDamage "HitLeftLeg") +
(_unit getHitPointDamage "HitRightLeg");
if (_damagesum < 0.06 and damage _unit > 0.06 and alive _unit) then {
- _unit setHitPointDamage ["HitBody", damage _unit];
+ // _unit setHitPointDamage ["HitBody", damage _unit];
};
[(_this select 1)] call cba_fnc_removePerFrameHandler;
};
diff --git a/addons/medical/functions/fnc_handleDamage_basic2.sqf b/addons/medical/functions/fnc_handleDamage_basic2.sqf
new file mode 100644
index 0000000000..9da6fd405d
--- /dev/null
+++ b/addons/medical/functions/fnc_handleDamage_basic2.sqf
@@ -0,0 +1,168 @@
+/*
+ * Author: KoffeinFlummi, Glowbal
+ * Cache a handleDamage call to execute it 3 frames later
+ *
+ * Arguments:
+ * 0: Unit That Was Hit
Requires the latest version of CBA A3. Visit us on Facebook | YouTube | Twitter | Reddit
From fe99cf83b3e65f7e23f2dc5871edf6a66baf9738 Mon Sep 17 00:00:00 2001
From: Felix Wiegand
Date: Mon, 7 Sep 2015 00:50:22 +0200
Subject: [PATCH 152/170] Change alt text on slack badge
---
README.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/README.md b/README.md
index 5141e05796..5630ea8819 100644
--- a/README.md
+++ b/README.md
@@ -18,7 +18,7 @@
-
+
Requires the latest version of CBA A3. Visit us on Facebook | YouTube | Twitter | Reddit
From 2fc35338d5e80a14eed077e360717a4669eabaa1 Mon Sep 17 00:00:00 2001
From: ViperMaul
Date: Sun, 6 Sep 2015 21:37:20 -0700
Subject: [PATCH 153/170] Build number for Release Candidate
---
addons/main/script_mod.hpp | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/addons/main/script_mod.hpp b/addons/main/script_mod.hpp
index e38e71ac4b..9f5de69921 100644
--- a/addons/main/script_mod.hpp
+++ b/addons/main/script_mod.hpp
@@ -5,7 +5,7 @@
#define MAJOR 3
#define MINOR 2
-#define PATCHLVL 2
+#define PATCHLVL 3
#define BUILD 0
#define VERSION MAJOR.MINOR.PATCHLVL.BUILD
From eee5664ec5078a69ff5be1e6ad915d520b3babf9 Mon Sep 17 00:00:00 2001
From: nsgundy
Date: Mon, 7 Sep 2015 11:05:18 +0200
Subject: [PATCH 154/170] Move MicroDAGR 3D model from BFT branch to microdagr
module
---
addons/microdagr/CfgWeapons.hpp | 1 +
addons/microdagr/data/MicroDAGR.p3d | Bin 0 -> 175454 bytes
addons/microdagr/data/MicroDAGR.rvmat | 92 +++++++++++++++++++++++
addons/microdagr/data/MicroDAGR_co.paa | Bin 0 -> 229450 bytes
addons/microdagr/data/MicroDAGR_nohq.paa | Bin 0 -> 403893 bytes
addons/microdagr/data/MicroDAGR_smdi.paa | Bin 0 -> 152742 bytes
6 files changed, 93 insertions(+)
create mode 100644 addons/microdagr/data/MicroDAGR.p3d
create mode 100644 addons/microdagr/data/MicroDAGR.rvmat
create mode 100644 addons/microdagr/data/MicroDAGR_co.paa
create mode 100644 addons/microdagr/data/MicroDAGR_nohq.paa
create mode 100644 addons/microdagr/data/MicroDAGR_smdi.paa
diff --git a/addons/microdagr/CfgWeapons.hpp b/addons/microdagr/CfgWeapons.hpp
index 9776f1c615..6fa84b6e7b 100644
--- a/addons/microdagr/CfgWeapons.hpp
+++ b/addons/microdagr/CfgWeapons.hpp
@@ -7,6 +7,7 @@ class CfgWeapons {
scope = 2;
displayName = CSTRING(itemName);
descriptionShort = CSTRING(itemDescription);
+ model = QUOTE(PATHTOF(data\MicroDAGR.p3d));
picture = QUOTE(PATHTOF(images\microDAGR_item.paa));
class ItemInfo: InventoryItem_Base_F {
mass = 2;
diff --git a/addons/microdagr/data/MicroDAGR.p3d b/addons/microdagr/data/MicroDAGR.p3d
new file mode 100644
index 0000000000000000000000000000000000000000..6a2a8987e21d10dadaa48b09e93339d679fda231
GIT binary patch
literal 175454
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
fiU)Dxh`=
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