From 35658e41cc9b8ed8ea19053b546eb510cb8ddc63 Mon Sep 17 00:00:00 2001
From: johnb432 <58661205+johnb432@users.noreply.github.com>
Date: Mon, 19 Aug 2024 07:50:54 +0200
Subject: [PATCH 01/26] Docs - Update Arma 3 Issues (#10207)
Update arma-3-issues.md
---
docs/wiki/development/arma-3-issues.md | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/docs/wiki/development/arma-3-issues.md b/docs/wiki/development/arma-3-issues.md
index 506bfde222..379fb7d5bb 100644
--- a/docs/wiki/development/arma-3-issues.md
+++ b/docs/wiki/development/arma-3-issues.md
@@ -14,7 +14,6 @@ Keeping track of Arma 3 issues that need to be fixed.
- [bux578: T79355: MineDetector equipable in Launcher slot](https://feedback.bistudio.com/T79355)
- [bux578: T79534: Zeus / Curator Add Remote Controlled Event](https://feedback.bistudio.com/T79534)
-- [bux578: T79827: Add script commands "addPrimaryWeaponMagazine" and "addSecondaryWeaponMagazine"](https://feedback.bistudio.com/T79827)
- [bux578: T80358: Add/Alter script command to add perfectly configured weapons to cargo](https://feedback.bistudio.com/T80358)
- [commy2: T79801: Unexpected behavior of += array in configs](https://feedback.bistudio.com/T79801)
- [commy2: T81029: setVariable is not always JIP persistent](https://feedback.bistudio.com/T81029)
@@ -23,11 +22,12 @@ Keeping track of Arma 3 issues that need to be fixed.
- [Jaynus: T82046: Display event handler return values for mouse buttons should be respected](https://feedback.bistudio.com/T82046)
- [Heisenberg: T82108: Switching between optic modes of a sniper scope (AMS, DMS, MOS) will result in a blurred vision](https://feedback.bistudio.com/T82108)
- [BaerMitUmlaut: T120030: Particles do not render properly since 1.62](https://feedback.bistudio.com/T120030)
-- [Killzone_Kid: T79689: magazineTurretAmmo and setMagazineTurretAmmo do not function as expected if there are multiple magazines of the same type](https://feedback.bistudio.com/T79689)
-- [nekoarrow: T122981: setMagazineTurretAmmo locality issue](https://feedback.bistudio.com/T122981)
**Resolved:**
- [Nou: T79119: Memory points rfemur, lfemur, and other leg memory points returned incorrectly with SQF command selectionPosition](https://feedback.bistudio.com/T79119)
- [commy2: T81503: isLightOn doesn't recognize destroyed light bulbs for streetlamps](https://feedback.bistudio.com/T81503)
- [commy2: T83771: splitString scripting command causes game crash](https://feedback.bistudio.com/T83771)
+- [bux578: T79827: Add script commands "addPrimaryWeaponMagazine" and "addSecondaryWeaponMagazine"](https://feedback.bistudio.com/T79827)
+- [Killzone_Kid: T79689: magazineTurretAmmo and setMagazineTurretAmmo do not function as expected if there are multiple magazines of the same type](https://feedback.bistudio.com/T79689)
+- [nekoarrow: T122981: setMagazineTurretAmmo locality issue?](https://feedback.bistudio.com/T122981)
From 81f44e6e7ab7e44c4f6a9ff635008a929a493e4b Mon Sep 17 00:00:00 2001
From: johnb432 <58661205+johnb432@users.noreply.github.com>
Date: Mon, 19 Aug 2024 07:51:37 +0200
Subject: [PATCH 02/26] Realistic Names - Fix bad inheritance from #10202
(#10225)
Fix bad inheritance from #10202
---
addons/realisticnames/CfgVehicles.hpp | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/addons/realisticnames/CfgVehicles.hpp b/addons/realisticnames/CfgVehicles.hpp
index 00298d0c24..ba95cf147d 100644
--- a/addons/realisticnames/CfgVehicles.hpp
+++ b/addons/realisticnames/CfgVehicles.hpp
@@ -1043,20 +1043,20 @@ class CfgVehicles {
};
// RPG-32
- class Weapon_launch_RPG32_ghex_F: Weapon_Base_F {
+ class Weapon_launch_RPG32_ghex_F: Launcher_Base_F {
displayName = CSTRING(launch_RPG32_ghex);
};
// P99
- class Weapon_hgun_P07_khk_F: Weapon_Base_F {
+ class Weapon_hgun_P07_khk_F: Pistol_Base_F {
displayName = CSTRING(hgun_P07_khk);
};
- class Weapon_hgun_P07_blk_F: Weapon_Base_F {
+ class Weapon_hgun_P07_blk_F: Pistol_Base_F {
displayName = CSTRING(hgun_P07_blk);
};
// Makarov
- class Weapon_hgun_Pistol_01_F: Weapon_Base_F {
+ class Weapon_hgun_Pistol_01_F: Pistol_Base_F {
displayName = CSTRING(hgun_Pistol_01);
};
@@ -1081,12 +1081,12 @@ class CfgVehicles {
};
// FNX-45 (Green)
- class Weapon_hgun_Pistol_heavy_01_green_F: Weapon_Base_F {
+ class Weapon_hgun_Pistol_heavy_01_green_F: Pistol_Base_F {
displayName = CSTRING(hgun_Pistol_heavy_01_green_Name);
};
// RPG-32 (Green)
- class Weapon_launch_RPG32_green_F: Weapon_Base_F {
+ class Weapon_launch_RPG32_green_F: Launcher_Base_F {
displayName = CSTRING(launch_RPG32_green_Name);
};
From 962b498e6ad021dab2ef2f095b59dd0d96635013 Mon Sep 17 00:00:00 2001
From: Enrico Machado
Date: Tue, 20 Aug 2024 02:31:43 +0100
Subject: [PATCH 03/26] Translation - Improve Portuguese (#10159)
* Update stringtable.xml
* Update stringtable.xml
---
addons/dogtags/stringtable.xml | 10 +++++-----
addons/medical_treatment/stringtable.xml | 14 +++++++-------
2 files changed, 12 insertions(+), 12 deletions(-)
diff --git a/addons/dogtags/stringtable.xml b/addons/dogtags/stringtable.xml
index 73d2d07e56..ff0af0db4e 100644
--- a/addons/dogtags/stringtable.xml
+++ b/addons/dogtags/stringtable.xml
@@ -13,7 +13,7 @@
Piastrina
兵籍牌
兵籍牌
- Dog Tag
+ Chapa de Identificação
Placa de identidad
Künye
@@ -29,7 +29,7 @@
Controlla Piastrina
檢查兵籍牌
检查兵籍牌
- Verificar Dog Tag
+ Verificar chapa de identificação
Verificar placa de identidad
Künyeyi Kontrol Et
@@ -77,7 +77,7 @@
Piastrina presa da %1...
從%1身上拿取兵籍牌...
从%1身上拿取兵籍牌...
- Dogtag pego de %1...
+ Chapa de identificação pega de %1...
Tomada placa de identidad de %1...
Künye %1 kişisinden alındı
@@ -93,7 +93,7 @@
Qualcun altro ha già preso la piastrina...
已經有人把他的兵籍牌拿走了...
已经有人把他的兵籍牌拿走了...
- Alguém já pegou essa dogtag...
+ Alguém já pegou essa chapa de identificação...
Alguien más ha tomado la placa de identidad
Başka biri zaten künyeyi almış
@@ -106,7 +106,7 @@
Indicatore su schermo per il controllo delle piastrine
Wyświetlacz ekranowy dla sprawdzania nieśmiertelników
Экран для проверки жетонов
- Tela de Exibição para verificar dogtags
+ Tela de exibição para verificar chapas de identificação
Visualización en pantalla de placa de identidad
Affichage à l'écran pour le contrôle des plaques.
Okno na obrazovce pro kontrolu známek
diff --git a/addons/medical_treatment/stringtable.xml b/addons/medical_treatment/stringtable.xml
index 2be4541677..6211a05359 100644
--- a/addons/medical_treatment/stringtable.xml
+++ b/addons/medical_treatment/stringtable.xml
@@ -1874,7 +1874,7 @@
Auto-morfin
Morfium autoinjektor
Autoiniettore di Morfina
- Auto-injetor de morfina
+ Autoinjetor de Morfina
モルヒネ自動注射器
자동주사기 (모르핀)
吗啡自动注射器
@@ -1921,7 +1921,7 @@
Auto-injecteur d'adénosine
Autoiniettore di Adenosina
Auto-adenosine
- Auto-injetor de Adenosina
+ Autoinjetor de Adenosina
Аденозин в пневмошприце
アデノシン自動注射器
자동주사기 (아데노신)
@@ -1969,7 +1969,7 @@
Auto-atropine
Atropin autoinjektor
Autoiniettore di Atropina
- Auto-injetor de Atropina
+ Autoinjetor de Atropina
アトロピン自動注射器
자동주사기 (아트로핀)
阿托品自动注射器
@@ -2018,7 +2018,7 @@
Auto-adrenalin
Epinefrin autoinjektor
Autoiniettore di Epinefrina
- Auto-injetor de epinefrina
+ Autoinjetor de Epinefrina
アドレナリン自動注射器
자동주사기 (에피네프린)
肾上腺素自动注射器
@@ -2432,7 +2432,7 @@
Operationsset
Sebészeti készlet
Kit chirurgico
- Kit Cirurgico
+ Kit Cirúrgico
Chirurgická sada
手術キット
봉합 키트
@@ -2449,7 +2449,7 @@
Operationsset für fortgeschrittene medizinische Feldversorgung
Sebészeti készlet komplex orvosi feladatok terepen való ellátására
Kit chirurgico per trattamenti avanzati sul campo.
- Kit Cirurgico para uso de tratamento médico avançado em campo
+ Kit Cirúrgico para uso de tratamento médico avançado em campo
Chirurgická sada určená k pokročilejším zdravotnickým zákrokům v poli
手術キットは戦場で高度な処置をする為に用いる
야전 상황에서 고급 의료 처치를 위해 사용되는 봉합 키트
@@ -2466,7 +2466,7 @@
Trousse chirurgicale pour le traitement avancé sur le terrain.
Sebészeti készlet komplex orvosi feladatok terepen való ellátására
Kit chirurgico per trattamenti avanzati sul campo.
- Kit Cirurgico para uso de tratamento médico avançado em campo.
+ Kit Cirúrgico para uso de tratamento médico avançado em campo.
Chirurgická sada určená k pokročilejším zdravotnickým zákrokům v poli
手術キットは戦場で高度な処置をする為に用いる
야전 상황에서 고급 의료 처치를 위해 사용되는 봉합 키트
From 268277849970ab9811d7499edfb6bad2a47d43a9 Mon Sep 17 00:00:00 2001
From: Dart <59131299+DartRuffian@users.noreply.github.com>
Date: Tue, 20 Aug 2024 10:47:47 -0500
Subject: [PATCH 04/26] HEMTT - Use extends for launch presets (#10231)
Use extends for launch presets
---
.hemtt/project.toml | 14 ++++----------
1 file changed, 4 insertions(+), 10 deletions(-)
diff --git a/.hemtt/project.toml b/.hemtt/project.toml
index f5ed361e3e..a9535dd2ba 100644
--- a/.hemtt/project.toml
+++ b/.hemtt/project.toml
@@ -34,32 +34,26 @@ workshop = [
]
[hemtt.launch.spe]
-workshop = [
- "450814997", # CBA_A3
-]
+extends = "default"
dlc = [
"spe"
]
[hemtt.launch.vn]
-workshop = [
- "450814997", # CBA_A3's Workshop ID
-]
+extends = "default"
dlc = [
"S.O.G. Prairie Fire",
]
[hemtt.launch.ws]
-workshop = [
- "450814997", # CBA_A3's Workshop ID
-]
+extends = "default"
dlc = [
"Western Sahara",
]
[hemtt.launch.rhs]
+extends = "default"
workshop = [
- "450814997", # CBA_A3's Workshop ID
"843425103", # RHS AFRF Workshop ID
"843577117", # RHS USAF Workshop ID
"843593391", # RHS GREF Workshop ID
From 80b2fa9a05bdb73e1ba2acae8192f57334dae976 Mon Sep 17 00:00:00 2001
From: johnb432 <58661205+johnb432@users.noreply.github.com>
Date: Tue, 20 Aug 2024 21:23:21 +0200
Subject: [PATCH 05/26] Vehicle damage - Code cleanup (#9831)
* Cook-off improvements
* More changes
* Update fnc_getVehicleAmmo.sqf
* Better engine fire placement
* Update fnc_detonateAmmunition.sqf
* Update XEH_postInit.sqf
* Update fnc_getVehicleAmmo.sqf
* Update events-framework.md
* Various improvements
* Separate effect handling
* Tweaks
* Update XEH_postInit.sqf
* Prevent double ammo detonation
* Fixed objects not being able to cook-off again
* Added incendiary rounds as source of box cookoff
* Converted enable setting to bool
* Fixed brackets
* Update fnc_cookOff.sqf
* Update CfgEden.hpp
* Removed GVAR(enable), added GVAR(enableFire) back
* Vehicle damage fixes
* Made hitpoint hash common
* Update fnc_addEventHandler.sqf
* Update fnc_medicalDamage.sqf
* Update fnc_handleBail.sqf
* Changed API
* Remove `CBA_fnc_getConfigEntry` as much as possible, as it's 2x slower
* More cleanup
* More cleanup
* Fix merging issues, remove turret tossing
* Update translations
* More cleanup
* Reverted some logic back to original, minor tweaks & fixes
* Fix undefined variable
* Cleanup
* Fixed bad logic
* Update addons/vehicle_damage/script_macros.hpp
Co-authored-by: Grim <69561145+LinkIsGrim@users.noreply.github.com>
* Update addons/vehicle_damage/functions/fnc_handleDamage.sqf
* Update addons/vehicle_damage/stringtable.xml
Co-authored-by: Grim <69561145+LinkIsGrim@users.noreply.github.com>
* Update addons/vehicle_damage/stringtable.xml
Co-authored-by: Grim <69561145+LinkIsGrim@users.noreply.github.com>
* Update addons/vehicle_damage/XEH_postInit.sqf
Co-authored-by: PabstMirror
---------
Co-authored-by: Grim <69561145+LinkIsGrim@users.noreply.github.com>
Co-authored-by: PabstMirror
---
addons/vehicle_damage/CfgAmmo.hpp | 3 -
addons/vehicle_damage/CfgEventHandlers.hpp | 12 +-
addons/vehicle_damage/CfgVehicles.hpp | 3 +-
addons/vehicle_damage/XEH_PREP.hpp | 19 +-
addons/vehicle_damage/XEH_postInit.sqf | 100 ++---
addons/vehicle_damage/config.cpp | 2 +-
.../vehicle_damage/functions/fnc_abandon.sqf | 23 +-
.../functions/fnc_addDamage.sqf | 42 --
.../functions/fnc_addEventHandler.sqf | 127 +++---
.../functions/fnc_blowOffTurret.sqf | 3 +-
.../fnc_calculatePenetrationInfo.sqf | 118 ------
.../vehicle_damage/functions/fnc_detonate.sqf | 27 --
.../functions/fnc_handleBail.sqf | 66 ++--
.../functions/fnc_handleCookoff.sqf | 84 ++--
.../functions/fnc_handleDamage.sqf | 115 +++---
.../fnc_handleDamageEjectIfDestroyed.sqf | 2 +-
.../functions/fnc_handleDetonation.sqf | 60 ++-
.../functions/fnc_handleVehicleDamage.sqf | 95 ++---
.../vehicle_damage/functions/fnc_knockOut.sqf | 34 +-
.../functions/fnc_processHit.sqf | 363 ++++++++++--------
.../functions/fnc_setDamage.sqf | 45 +++
addons/vehicle_damage/initSettings.inc.sqf | 18 +-
addons/vehicle_damage/script_macros.hpp | 12 +-
addons/vehicle_damage/stringtable.xml | 52 +--
docs/wiki/feature/vehicledamage.md | 19 +-
.../wiki/framework/vehicledamage-framework.md | 6 +-
26 files changed, 694 insertions(+), 756 deletions(-)
delete mode 100644 addons/vehicle_damage/functions/fnc_addDamage.sqf
delete mode 100644 addons/vehicle_damage/functions/fnc_calculatePenetrationInfo.sqf
delete mode 100644 addons/vehicle_damage/functions/fnc_detonate.sqf
create mode 100644 addons/vehicle_damage/functions/fnc_setDamage.sqf
diff --git a/addons/vehicle_damage/CfgAmmo.hpp b/addons/vehicle_damage/CfgAmmo.hpp
index 408c3e7b15..ad84fbc53c 100644
--- a/addons/vehicle_damage/CfgAmmo.hpp
+++ b/addons/vehicle_damage/CfgAmmo.hpp
@@ -21,9 +21,6 @@ class CfgAmmo {
class M_Vorona_HEAT;
class M_SPG9_HEAT;
class R_MRAAWS_HEAT_F;
- class B_338_Ball;
-
- class ACE_G_40mm_HE;
CREATE_INCENDIARY_AMMO(BulletBase, BulletCore, 0.1);
CREATE_INCENDIARY_AMMO(ShellBase, ShellCore, 1.0);
diff --git a/addons/vehicle_damage/CfgEventHandlers.hpp b/addons/vehicle_damage/CfgEventHandlers.hpp
index 74ffec132e..f6503c2479 100644
--- a/addons/vehicle_damage/CfgEventHandlers.hpp
+++ b/addons/vehicle_damage/CfgEventHandlers.hpp
@@ -1,19 +1,17 @@
-
class Extended_PreStart_EventHandlers {
class ADDON {
init = QUOTE(call COMPILE_SCRIPT(XEH_preStart));
};
};
-class Extended_PostInit_EventHandlers {
- class ADDON {
- init = QUOTE(call COMPILE_SCRIPT(XEH_postInit));
- };
-};
-
class Extended_PreInit_EventHandlers {
class ADDON {
init = QUOTE(call COMPILE_SCRIPT(XEH_preInit));
};
};
+class Extended_PostInit_EventHandlers {
+ class ADDON {
+ init = QUOTE(call COMPILE_SCRIPT(XEH_postInit));
+ };
+};
diff --git a/addons/vehicle_damage/CfgVehicles.hpp b/addons/vehicle_damage/CfgVehicles.hpp
index 9ea47711ea..96a6e956e6 100644
--- a/addons/vehicle_damage/CfgVehicles.hpp
+++ b/addons/vehicle_damage/CfgVehicles.hpp
@@ -28,6 +28,7 @@ class CfgVehicles {
GVAR(engineFireProb) = 0.5;
GVAR(detonationDuringFireProb) = 0.2;
GVAR(canHaveFireRing) = 0;
+ EGVAR(cookoff,canHaveFireJet) = 1;
};
class Wheeled_APC_F: Car_F {
GVAR(hullDetonationProb) = 0.2;
@@ -38,6 +39,7 @@ class CfgVehicles {
GVAR(engineFireProb) = 0.5;
GVAR(detonationDuringFireProb) = 0.2;
GVAR(canHaveFireRing) = 0;
+ EGVAR(cookoff,canHaveFireJet) = 1;
};
class APC_Tracked_01_base_F: Tank_F {};
class B_APC_Tracked_01_base_F: APC_Tracked_01_base_F {};
@@ -288,4 +290,3 @@ class CfgVehicles {
GVAR(canHaveFireRing) = 1;
};
};
-
diff --git a/addons/vehicle_damage/XEH_PREP.hpp b/addons/vehicle_damage/XEH_PREP.hpp
index a7eb519881..20075cbd4a 100644
--- a/addons/vehicle_damage/XEH_PREP.hpp
+++ b/addons/vehicle_damage/XEH_PREP.hpp
@@ -1,14 +1,13 @@
PREP(abandon);
PREP(addEventHandler);
-PREP(handleBail);
-PREP(handleVehicleDamage);
-PREP(handleCookoff);
-PREP(detonate);
-PREP(processHit);
-PREP(handleDetonation);
-PREP(handleDamage);
-PREP(knockOut);
-PREP(addDamage);
-PREP(handleDamageEjectIfDestroyed);
PREP(blowOffTurret);
+PREP(handleBail);
+PREP(handleCookoff);
+PREP(handleDamage);
+PREP(handleDamageEjectIfDestroyed);
+PREP(handleDetonation);
+PREP(handleVehicleDamage);
+PREP(knockOut);
PREP(medicalDamage);
+PREP(processHit);
+PREP(setDamage);
diff --git a/addons/vehicle_damage/XEH_postInit.sqf b/addons/vehicle_damage/XEH_postInit.sqf
index 9784d335ed..5e15599735 100644
--- a/addons/vehicle_damage/XEH_postInit.sqf
+++ b/addons/vehicle_damage/XEH_postInit.sqf
@@ -1,53 +1,65 @@
#include "script_component.hpp"
-["ace_settingsInitialized", {
+// Init eject from destroyed vehicles
+// See https://github.com/acemod/ACE3/pull/6330
+// Still valid for Arma 2.16
+{
+ [_x, "Init", {
+ params ["_vehicle"];
+
+ if (!alive _vehicle) exitWith {};
+
+ TRACE_2("ejectIfDestroyed init",_vehicle,typeOf _vehicle);
+
+ _vehicle addEventHandler ["HandleDamage", {call FUNC(handleDamageEjectIfDestroyed)}];
+ }, true, [], true] call CBA_fnc_addClassEventHandler;
+} forEach EJECT_IF_DESTROYED_VEHICLES;
+
+["CBA_settingsInitialized", {
TRACE_1("settings init",GVAR(enabled));
- if (GVAR(enabled)) then {
- [QGVAR(medicalDamage), LINKFUNC(medicalDamage)] call CBA_fnc_addEventHandler;
- [QGVAR(bailOut), {
- params ["_center", "_crewman", "_vehicle"];
- TRACE_3("bailOut",_center,_crewman,_vehicle);
+ if (!GVAR(enabled)) exitWith {};
- if (isPlayer _crewman) exitWith {};
- if (!alive _crewman || {!([_crewman] call EFUNC(common,isAwake))}) exitWith {};
+ [QGVAR(medicalDamage), LINKFUNC(medicalDamage)] call CBA_fnc_addEventHandler;
- unassignVehicle _crewman;
- _crewman leaveVehicle _vehicle;
- doGetOut _crewman;
-
- private _angle = floor (random 360);
- private _dist = (30 + (random 10));
- private _escape = _center getPos [_dist, _angle];
-
- _crewman doMove _escape;
- _crewman setSpeedMode "FULL";
- }] call CBA_fnc_addEventHandler;
-
- ["Tank", "init", LINKFUNC(addEventHandler), true, [], true] call CBA_fnc_addClassEventHandler;
- ["Wheeled_APC_F", "init", LINKFUNC(addEventHandler), true, [], true] call CBA_fnc_addClassEventHandler;
-
- if (GVAR(enableCarDamage)) then {
- ["Car", "init", LINKFUNC(addEventHandler), true, [], true] call CBA_fnc_addClassEventHandler;
- };
-
- // Blow off turret effect
- // TODO: Add blowing-off-turret effect to vehicles that cook-off but aren't destroyed (no catastrophic explosion)
- // The problem is that vehicles are repairable if they haven't been destroyed. So if the turret is gone and vehicle is repaired, how do we handle that?
- ["Tank", "Killed", {
- if (_this select 3 && random 1 < 0.15) then {
- (_this select 0) call FUNC(blowOffTurret);
- };
- }, true, [], true] call CBA_fnc_addClassEventHandler;
+ if (isServer) then {
+ // To set source and instigator, setDamage must be executed on the server
+ [QGVAR(setDamage), {(_this select 0) setDamage (_this select 1)}] call CBA_fnc_addEventHandler;
};
- // init eject from destroyed vehicle
- {
- [_x, "init", {
- params ["_vehicle"];
- if (!alive _vehicle) exitWith {};
- TRACE_2("ejectIfDestroyed init",_vehicle,typeOf _vehicle);
- _vehicle addEventHandler ["HandleDamage", {call FUNC(handleDamageEjectIfDestroyed)}];
- }, true, [], true] call CBA_fnc_addClassEventHandler;
- } forEach EJECT_IF_DESTROYED_VEHICLES;
+ [QGVAR(bailOut), {
+ params ["_vehicle", "_unit"];
+
+ TRACE_2("bailOut",_vehicle,_unit);
+
+ // Ignore players and the dead
+ if (_unit call EFUNC(common,isPlayer) || {!(_unit call EFUNC(common,isAwake))}) exitWith {};
+
+ unassignVehicle _unit;
+ _unit leaveVehicle _vehicle;
+ doGetOut _unit;
+
+ private _angle = floor (random 360);
+ private _dist = 30 + (random 10);
+ private _escape = _vehicle getPos [_dist, _angle];
+
+ _unit doMove _escape;
+ _unit setSpeedMode "FULL";
+ }] call CBA_fnc_addEventHandler;
+
+ GVAR(vehicleClassesHitPointHash) = createHashMap;
+
+ ["Tank", "Init", LINKFUNC(addEventHandler), true, [], true] call CBA_fnc_addClassEventHandler;
+
+ // Wheeled_APC_F inherits from Car
+ [["Wheeled_Apc_F", "Car"] select GVAR(enableCarDamage), "Init", LINKFUNC(addEventHandler), true, [], true] call CBA_fnc_addClassEventHandler;
+
+ // Blow off turret effect
+ // TODO: Add blowing-off-turret effect to vehicles that cook-off but aren't destroyed (no catastrophic explosion)
+ // The problem is that vehicles are repairable if they haven't been destroyed. So if the turret is gone and vehicle is repaired, how do we handle that?
+ ["Tank", "Killed", {
+ if (_this select 3 && random 1 < 0.15) then {
+ (_this select 0) call FUNC(blowOffTurret);
+ };
+ }] call CBA_fnc_addClassEventHandler;
}] call CBA_fnc_addEventHandler;
diff --git a/addons/vehicle_damage/config.cpp b/addons/vehicle_damage/config.cpp
index 6b4f7cf685..24b2abda5b 100644
--- a/addons/vehicle_damage/config.cpp
+++ b/addons/vehicle_damage/config.cpp
@@ -7,7 +7,7 @@ class CfgPatches {
weapons[] = {};
requiredVersion = REQUIRED_VERSION;
// ammo/vehicle config defines touch all of these
- requiredAddons[] = { "ace_common", "ace_cookoff" };
+ requiredAddons[] = {"ace_common", "ace_cookoff"};
author = ECSTRING(common,ACETeam);
authors[] = {"tcvm"};
url = ECSTRING(main,URL);
diff --git a/addons/vehicle_damage/functions/fnc_abandon.sqf b/addons/vehicle_damage/functions/fnc_abandon.sqf
index 83b06a80df..3539e21a97 100644
--- a/addons/vehicle_damage/functions/fnc_abandon.sqf
+++ b/addons/vehicle_damage/functions/fnc_abandon.sqf
@@ -4,29 +4,34 @@
* Forces the AI currently in a vehicle to bail out.
*
* Arguments:
- * 0: The vehicle in which to bail out