diff --git a/addons/medical/stringtable.xml b/addons/medical/stringtable.xml index d9899e313c6..558982d9c61 100644 --- a/addons/medical/stringtable.xml +++ b/addons/medical/stringtable.xml @@ -17,6 +17,15 @@ 受伤 受傷 + + Lost some blood + + + Lost a lot of blood + + + Lost a large amount of blood + ACE Medical ACE: медицина diff --git a/addons/medical_gui/functions/fnc_displayPatientInformation.sqf b/addons/medical_gui/functions/fnc_displayPatientInformation.sqf index 8b8f88e5d58..c495070e77a 100644 --- a/addons/medical_gui/functions/fnc_displayPatientInformation.sqf +++ b/addons/medical_gui/functions/fnc_displayPatientInformation.sqf @@ -55,8 +55,24 @@ if (_show == 1) then { if IS_BLEEDING(_target) then { _genericMessages pushback [localize ELSTRING(medical,Status_Bleeding), [1, 0.1, 0.1, 1]]; }; - if (GET_HEMORRHAGE(_target) > 1) then { - _genericMessages pushback [localize ELSTRING(medical,Status_Lost_Blood), [1, 0.1, 0.1, 1]]; + + // Show more information if advancedDiagnose is enabled + if (EGVAR(medical,advancedDiagnose)) then { + switch (GET_HEMORRHAGE(_target)) do { + case 1: { + _genericMessages pushBack [localize ELSTRING(medical,Status_Lost_Blood2), [1, 0.1, 0.1, 1]]; + }; + case 2: { + _genericMessages pushBack [localize ELSTRING(medical,Status_Lost_Blood3), [1, 0.1, 0.1, 1]]; + }; + case 3: { + _genericMessages pushBack [localize ELSTRING(medical,Status_Lost_Blood4), [1, 0.1, 0.1, 1]]; + }; + }; + } else { + if (GET_HEMORRHAGE(_target) > 1) then { + _genericMessages pushBack [localize ELSTRING(medical,Status_Lost_Blood), [1, 0.1, 0.1, 1]]; + }; }; if (((_target getVariable [QEGVAR(medical,tourniquets), [0,0,0,0,0,0]]) select _selectionN) > 0) then { diff --git a/addons/medical_gui/functions/fnc_updateUIInfo.sqf b/addons/medical_gui/functions/fnc_updateUIInfo.sqf index ff95e03128e..490c07bfb43 100644 --- a/addons/medical_gui/functions/fnc_updateUIInfo.sqf +++ b/addons/medical_gui/functions/fnc_updateUIInfo.sqf @@ -31,8 +31,23 @@ if IS_BLEEDING(_target) then { _genericMessages pushBack [localize ELSTRING(medical,Status_Bleeding), [1, 0.1, 0.1, 1]]; }; -if (GET_HEMORRHAGE(_target) > 1) then { - _genericMessages pushBack [localize ELSTRING(medical,Status_Lost_Blood), [1, 0.1, 0.1, 1]]; +// Show more information if advancedDiagnose is enabled +if (EGVAR(medical,advancedDiagnose)) then { + switch (GET_HEMORRHAGE(_target)) do { + case 1: { + _genericMessages pushBack [localize ELSTRING(medical,Status_Lost_Blood2), [1, 0.1, 0.1, 1]]; + }; + case 2: { + _genericMessages pushBack [localize ELSTRING(medical,Status_Lost_Blood3), [1, 0.1, 0.1, 1]]; + }; + case 3: { + _genericMessages pushBack [localize ELSTRING(medical,Status_Lost_Blood4), [1, 0.1, 0.1, 1]]; + }; + }; +} else { + if (GET_HEMORRHAGE(_target) > 1) then { + _genericMessages pushBack [localize ELSTRING(medical,Status_Lost_Blood), [1, 0.1, 0.1, 1]]; + }; }; if (((_target getVariable [QEGVAR(medical,tourniquets), [0, 0, 0, 0, 0, 0]]) select _selectionN) > 0) then { diff --git a/addons/medical_vitals/functions/fnc_handleUnitVitals.sqf b/addons/medical_vitals/functions/fnc_handleUnitVitals.sqf index e5546529d6b..ea6ac6e4c12 100644 --- a/addons/medical_vitals/functions/fnc_handleUnitVitals.sqf +++ b/addons/medical_vitals/functions/fnc_handleUnitVitals.sqf @@ -39,13 +39,16 @@ _bloodVolume = 0 max _bloodVolume min DEFAULT_BLOOD_VOLUME; _unit setVariable [VAR_BLOOD_VOL, _bloodVolume, _syncValues]; // Set variables for synchronizing information across the net -private _hemorrhage = [ - 0, - [1, 3] select (_bloodVolume < BLOOD_VOLUME_CLASS_3_HEMORRHAGE) -] select (_bloodVolume < BLOOD_VOLUME_CLASS_1_HEMORRHAGE); +private _hemorrhage = switch (true) do { + case (_bloodVolume < BLOOD_VOLUME_CLASS_4_HEMORRHAGE): { 3 }; + case (_bloodVolume < BLOOD_VOLUME_CLASS_3_HEMORRHAGE): { 2 }; + case (_bloodVolume < BLOOD_VOLUME_CLASS_2_HEMORRHAGE): { 1 }; + case (_bloodVolume < BLOOD_VOLUME_CLASS_1_HEMORRHAGE): { 1 }; + default {0}; +}; if (_hemorrhage != GET_HEMORRHAGE(_unit)) then { - _unit setVariable [VAR_HEMORRHAGE, _hemorrhageClass, true]; + _unit setVariable [VAR_HEMORRHAGE, _hemorrhage, true]; }; private _bloodLoss = GET_BLOOD_LOSS(_unit); @@ -122,6 +125,7 @@ switch (true) do { #ifdef DEBUG_MODE_FULL if (!isPlayer _unit) then { + private _painLevel = _unit getVariable [VAR_PAIN, 0]; hintSilent format["blood volume: %1, blood loss: [%2, %3]\nhr: %4, bp: %5, pain: %6", round(_bloodVolume * 100) / 100, round(_bloodLoss * 1000) / 1000, round((_bloodLoss / (0.001 max _cardiacOutput)) * 100) / 100, round(_heartRate), _bloodPressure, round(_painLevel * 100) / 100]; }; #endif