From 8a2a88b8c08d589adbacc533eee366660178129f Mon Sep 17 00:00:00 2001 From: Salluci <69561145+Salluci@users.noreply.github.com> Date: Fri, 5 Mar 2021 21:37:44 -0300 Subject: [PATCH 1/6] Add 'Enable Vehicle Crashes' setting --- addons/medical_damage/initSettings.sqf | 9 ++++++ addons/medical_damage/stringtable.xml | 32 +++++++++++++++++++ .../functions/fnc_handleDamage.sqf | 7 ++-- 3 files changed, 46 insertions(+), 2 deletions(-) diff --git a/addons/medical_damage/initSettings.sqf b/addons/medical_damage/initSettings.sqf index 12806a46a22..26ec7b0996a 100644 --- a/addons/medical_damage/initSettings.sqf +++ b/addons/medical_damage/initSettings.sqf @@ -33,3 +33,12 @@ [0, 1, 0.1, 2, true], true ] call CBA_fnc_addSetting; + +[ + QEGVAR(medical,enableVehicleCrashes), + "CHECKBOX", + [LSTRING(enableVehicleCrashes_DisplayName), LSTRING(enableVehicleCrashes_Description)], + ELSTRING(medical,Category), + true, + true +] call CBA_fnc_addSetting; diff --git a/addons/medical_damage/stringtable.xml b/addons/medical_damage/stringtable.xml index 4c74c96db18..393adaee838 100644 --- a/addons/medical_damage/stringtable.xml +++ b/addons/medical_damage/stringtable.xml @@ -697,5 +697,37 @@ Szansa że osoba straci przytomność gdy jej ból jest powyżej tolerowalnego progu podczas otrzymywania obrażeń. ユニットがダメージを受けた時に痛みが許容しきい値を超えた場合、気絶をする確立を設定します。 + + Vehicle Crashes + Аварии транспорта + Obrażenia od kolizji + Accidentes de vehículos + Fahrzeugunfälle + Poškození z kolize + Colisão de veículos + Accident en véhicule + Járműbalesetek + Schianto Veicoli + 車両の衝突 + 차량 사고 + 载具碰撞 + 載具碰撞 + + + Do units take damage from a vehicle crash? + Должны ли юниты получать повреждения от аварий на транспорте? + Czy jednostki otrzymują obrażenia w wyniku kolizji pojazdów? + ¿Las unidades reciben daño de un accidente de tráfico? + Verursacht ein Fahrzeugunfall Verletzungen + Dostane jednotka poškození při autonehodě? + As unidades recebem dano de uma colisão de veículo? + Les unités subissent des dégats lors d'accident + Sérülnek-e az egységek autós ütközés során? + Le unità sostengono danni da incidenti con veicoli? + ユニットは車両の衝突による損傷を受けるようにしますか? + 차량 사고시 인원들이 부상을 입습니까? + 设定人员是否会因为载具冲撞别的物件而产生伤害? + 設定人員是否會因為載具衝撞別的物件而產生傷害? + diff --git a/addons/medical_engine/functions/fnc_handleDamage.sqf b/addons/medical_engine/functions/fnc_handleDamage.sqf index 1975bde0c56..36847933ade 100644 --- a/addons/medical_engine/functions/fnc_handleDamage.sqf +++ b/addons/medical_engine/functions/fnc_handleDamage.sqf @@ -94,7 +94,7 @@ if (_hitPoint isEqualTo "ace_hdbracket") exitWith { // represents all incoming damage for selecting a non-selectionSpecific wound location, (used for selectRandomWeighted [value1,weight1,value2....]) private _damageSelectionArray = [ - HITPOINT_INDEX_HEAD, _damageHead select 1, HITPOINT_INDEX_BODY, _damageBody select 1, HITPOINT_INDEX_LARM, _damageLeftArm select 1, + HITPOINT_INDEX_HEAD, _damageHead select 1, HITPOINT_INDEX_BODY, _damageBody select 1, HITPOINT_INDEX_LARM, _damageLeftArm select 1, HITPOINT_INDEX_RARM, _damageRightArm select 1, HITPOINT_INDEX_LLEG, _damageLeftLeg select 1, HITPOINT_INDEX_RLEG, _damageRightLeg select 1 ]; @@ -211,9 +211,12 @@ if ( // todo: no way to detect if stationary and another vehicle hits you ) exitWith { private _damageSelectionArray = [ - HITPOINT_INDEX_HEAD, 1, HITPOINT_INDEX_BODY, 1, HITPOINT_INDEX_LARM, 1, + HITPOINT_INDEX_HEAD, 1, HITPOINT_INDEX_BODY, 1, HITPOINT_INDEX_LARM, 1, HITPOINT_INDEX_RARM, 1, HITPOINT_INDEX_LLEG, 1, HITPOINT_INDEX_RLEG, 1 ]; + if !(EGVAR(medical,enableVehicleCrashes)) then { + _newDamage = 0; + }; [QEGVAR(medical,woundReceived), [_unit, "Body", _newDamage, _unit, "vehiclecrash", _damageSelectionArray]] call CBA_fnc_localEvent; TRACE_5("Crash",_unit,_shooter,_instigator,_damage,_newDamage); From ee8d028b0d5881ff945fc555a7d91c45bf1be716 Mon Sep 17 00:00:00 2001 From: Salluci <69561145+Salluci@users.noreply.github.com> Date: Fri, 5 Mar 2021 22:48:47 -0300 Subject: [PATCH 2/6] Indent, capitalization, stringtable fixes. --- addons/medical_damage/initSettings.sqf | 2 +- addons/medical_damage/stringtable.xml | 36 +++---------------- .../functions/fnc_handleDamage.sqf | 4 +-- 3 files changed, 8 insertions(+), 34 deletions(-) diff --git a/addons/medical_damage/initSettings.sqf b/addons/medical_damage/initSettings.sqf index 26ec7b0996a..b10b9b6b403 100644 --- a/addons/medical_damage/initSettings.sqf +++ b/addons/medical_damage/initSettings.sqf @@ -37,7 +37,7 @@ [ QEGVAR(medical,enableVehicleCrashes), "CHECKBOX", - [LSTRING(enableVehicleCrashes_DisplayName), LSTRING(enableVehicleCrashes_Description)], + [LSTRING(EnableVehicleCrashes_DisplayName), LSTRING(EnableVehicleCrashes_Description)], ELSTRING(medical,Category), true, true diff --git a/addons/medical_damage/stringtable.xml b/addons/medical_damage/stringtable.xml index 393adaee838..9689660b137 100644 --- a/addons/medical_damage/stringtable.xml +++ b/addons/medical_damage/stringtable.xml @@ -697,37 +697,11 @@ Szansa że osoba straci przytomność gdy jej ból jest powyżej tolerowalnego progu podczas otrzymywania obrażeń. ユニットがダメージを受けた時に痛みが許容しきい値を超えた場合、気絶をする確立を設定します。 - - Vehicle Crashes - Аварии транспорта - Obrażenia od kolizji - Accidentes de vehículos - Fahrzeugunfälle - Poškození z kolize - Colisão de veículos - Accident en véhicule - Járműbalesetek - Schianto Veicoli - 車両の衝突 - 차량 사고 - 载具碰撞 - 載具碰撞 - - - Do units take damage from a vehicle crash? - Должны ли юниты получать повреждения от аварий на транспорте? - Czy jednostki otrzymują obrażenia w wyniku kolizji pojazdów? - ¿Las unidades reciben daño de un accidente de tráfico? - Verursacht ein Fahrzeugunfall Verletzungen - Dostane jednotka poškození při autonehodě? - As unidades recebem dano de uma colisão de veículo? - Les unités subissent des dégats lors d'accident - Sérülnek-e az egységek autós ütközés során? - Le unità sostengono danni da incidenti con veicoli? - ユニットは車両の衝突による損傷を受けるようにしますか? - 차량 사고시 인원들이 부상을 입습니까? - 设定人员是否会因为载具冲撞别的物件而产生伤害? - 設定人員是否會因為載具衝撞別的物件而產生傷害? + + Enable Vehicle Crash Damage + + + Controls whether passengers receive damage from vehicle collisions. diff --git a/addons/medical_engine/functions/fnc_handleDamage.sqf b/addons/medical_engine/functions/fnc_handleDamage.sqf index 36847933ade..a3c5f624598 100644 --- a/addons/medical_engine/functions/fnc_handleDamage.sqf +++ b/addons/medical_engine/functions/fnc_handleDamage.sqf @@ -214,8 +214,8 @@ if ( HITPOINT_INDEX_HEAD, 1, HITPOINT_INDEX_BODY, 1, HITPOINT_INDEX_LARM, 1, HITPOINT_INDEX_RARM, 1, HITPOINT_INDEX_LLEG, 1, HITPOINT_INDEX_RLEG, 1 ]; - if !(EGVAR(medical,enableVehicleCrashes)) then { - _newDamage = 0; + if (!EGVAR(medical,enableVehicleCrashes)) then { + _newDamage = 0; }; [QEGVAR(medical,woundReceived), [_unit, "Body", _newDamage, _unit, "vehiclecrash", _damageSelectionArray]] call CBA_fnc_localEvent; TRACE_5("Crash",_unit,_shooter,_instigator,_damage,_newDamage); From c2264d70c0ed6bef2e8bdb1293cb3827abe3d803 Mon Sep 17 00:00:00 2001 From: Salluci <69561145+Salluci@users.noreply.github.com> Date: Sat, 6 Mar 2021 03:45:13 -0300 Subject: [PATCH 3/6] Don't trigger wound received EH Just exit before vehicle checks if crashes are disabled. --- addons/medical_engine/functions/fnc_handleDamage.sqf | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/addons/medical_engine/functions/fnc_handleDamage.sqf b/addons/medical_engine/functions/fnc_handleDamage.sqf index a3c5f624598..b2f895154ed 100644 --- a/addons/medical_engine/functions/fnc_handleDamage.sqf +++ b/addons/medical_engine/functions/fnc_handleDamage.sqf @@ -200,6 +200,11 @@ if ( 0 }; +// No need to go any further if vehicle crash damage is disabled +if (!EGVAR(medical,enableVehicleCrashes)) exitWith { + 0 +}; + // Crashing a vehicle doesn't fire the EH for each hitpoint so the "ace_hdbracket" code never runs // It does fire the EH multiple times, but this seems to scale with the intensity of the crash private _vehicle = vehicle _unit; @@ -214,9 +219,6 @@ if ( HITPOINT_INDEX_HEAD, 1, HITPOINT_INDEX_BODY, 1, HITPOINT_INDEX_LARM, 1, HITPOINT_INDEX_RARM, 1, HITPOINT_INDEX_LLEG, 1, HITPOINT_INDEX_RLEG, 1 ]; - if (!EGVAR(medical,enableVehicleCrashes)) then { - _newDamage = 0; - }; [QEGVAR(medical,woundReceived), [_unit, "Body", _newDamage, _unit, "vehiclecrash", _damageSelectionArray]] call CBA_fnc_localEvent; TRACE_5("Crash",_unit,_shooter,_instigator,_damage,_newDamage); From 151a65f43f6d182f452f63b1272d845f32977269 Mon Sep 17 00:00:00 2001 From: Salluci <69561145+Salluci@users.noreply.github.com> Date: Sat, 6 Mar 2021 03:53:03 -0300 Subject: [PATCH 4/6] Stop being special --- addons/medical_engine/functions/fnc_handleDamage.sqf | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/addons/medical_engine/functions/fnc_handleDamage.sqf b/addons/medical_engine/functions/fnc_handleDamage.sqf index b2f895154ed..9eb799cdcd2 100644 --- a/addons/medical_engine/functions/fnc_handleDamage.sqf +++ b/addons/medical_engine/functions/fnc_handleDamage.sqf @@ -200,16 +200,12 @@ if ( 0 }; -// No need to go any further if vehicle crash damage is disabled -if (!EGVAR(medical,enableVehicleCrashes)) exitWith { - 0 -}; - // Crashing a vehicle doesn't fire the EH for each hitpoint so the "ace_hdbracket" code never runs // It does fire the EH multiple times, but this seems to scale with the intensity of the crash private _vehicle = vehicle _unit; if ( - _hitPoint isEqualTo "#structural" && + EGVAR(medical,enableVehicleCrashes) && + {_hitPoint isEqualTo "#structural"} && {_ammo isEqualTo ""} && {_vehicle != _unit} && {vectorMagnitude (velocity _vehicle) > 5} From bdf92040eb1787da6c47e7b044b2c29ae8d19479 Mon Sep 17 00:00:00 2001 From: jonpas Date: Tue, 20 Apr 2021 12:24:23 +0200 Subject: [PATCH 5/6] Apply suggestions from code review --- addons/medical_damage/stringtable.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/medical_damage/stringtable.xml b/addons/medical_damage/stringtable.xml index 9689660b137..670dc2542d4 100644 --- a/addons/medical_damage/stringtable.xml +++ b/addons/medical_damage/stringtable.xml @@ -701,7 +701,7 @@ Enable Vehicle Crash Damage - Controls whether passengers receive damage from vehicle collisions. + Controls whether crew receives damage from vehicle collisions. From 6980475e751abc794c5781691a3ab8a873d05d47 Mon Sep 17 00:00:00 2001 From: jonpas Date: Tue, 20 Apr 2021 12:26:21 +0200 Subject: [PATCH 6/6] Update addons/medical_damage/initSettings.sqf --- addons/medical_damage/initSettings.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/medical_damage/initSettings.sqf b/addons/medical_damage/initSettings.sqf index 90b5ab03c95..5d9003addf9 100644 --- a/addons/medical_damage/initSettings.sqf +++ b/addons/medical_damage/initSettings.sqf @@ -50,4 +50,4 @@ ELSTRING(medical,Category), true, true -] call CBA_fnc_addSetting; \ No newline at end of file +] call CBA_fnc_addSetting;