From 6b4bd72b4bc5c991d6e43450dfe4422914e272bf Mon Sep 17 00:00:00 2001 From: mazinskihenry <33608576+mazinskihenry@users.noreply.github.com> Date: Tue, 8 Oct 2024 23:21:56 -0700 Subject: [PATCH] Circulation/Feedback/GUI/Hypothermia/Pharma - 3.0 Hotfix (#611) **When merged this pull request will:** - _Describe what this pull request will do_ - _Each change in a separate line_ ### IMPORTANT - [Development Guidelines](https://ace3.acemod.org/wiki/development/) are read, understood and applied. - Title of this PR uses our standard template `Component - Add|Fix|Improve|Change|Make|Remove {changes}`. --- addons/circulation/XEH_preInit.sqf | 12 +- .../functions/fnc_addArterialApplyActions.sqf | 8 +- .../functions/fnc_addArterialTestActions.sqf | 3 +- .../functions/fnc_drawArterial.sqf | 12 +- .../functions/fnc_fullHealLocal.sqf | 2 + .../functions/fnc_showBloodGas.sqf | 16 +- addons/feedback/XEH_preInit.sqf | 2 +- addons/gui/XEH_PREP.hpp | 2 + addons/gui/functions/fnc_handleABGShow.sqf | 21 + addons/gui/functions/fnc_handleIVShow.sqf | 21 + addons/gui/functions/fnc_onMenuOpen.sqf | 4 + addons/gui/functions/fnc_updateABGStatus.sqf | 29 +- addons/gui/functions/fnc_updateIVStatus.sqf | 21 + addons/gui/gui.hpp | 916 ++++++++++-------- addons/gui/gui_defines.hpp | 6 + addons/hypothermia/XEH_preInit.sqf | 10 +- addons/pharma/XEH_preInit.sqf | 9 + addons/pharma/functions/fnc_fullHealLocal.sqf | 14 +- addons/pharma/stringtable.xml | 6 + 19 files changed, 653 insertions(+), 461 deletions(-) create mode 100644 addons/gui/functions/fnc_handleABGShow.sqf create mode 100644 addons/gui/functions/fnc_handleIVShow.sqf diff --git a/addons/circulation/XEH_preInit.sqf b/addons/circulation/XEH_preInit.sqf index c03019dda..e4971657e 100644 --- a/addons/circulation/XEH_preInit.sqf +++ b/addons/circulation/XEH_preInit.sqf @@ -7,11 +7,13 @@ PREP_RECOMPILE_START; PREP_RECOMPILE_END; if (isServer) then { - GVAR(bloodSampleMap) = createHashMap; - GVAR(sampleCounter) = 0; - - GVAR(resultSampleMap) = createHashMap; - GVAR(resultCounter) = 0; + private _sampleMap = createHashMap; + missionNamespace setVariable [QGVAR(bloodSampleMap), _sampleMap]; + missionNamespace setVariable [QGVAR(sampleCounter), 0]; + + private _resultSampleMap = createHashMap; + missionNamespace setVariable [QGVAR(resultSampleMap), _resultSampleMap]; + missionNamespace setVariable [QGVAR(resultCounter), 0]; }; #define CBA_SETTINGS_CAT "KAT - ADV Medical: Circulation" diff --git a/addons/circulation/functions/fnc_addArterialApplyActions.sqf b/addons/circulation/functions/fnc_addArterialApplyActions.sqf index b23bdfb62..2e469d019 100644 --- a/addons/circulation/functions/fnc_addArterialApplyActions.sqf +++ b/addons/circulation/functions/fnc_addArterialApplyActions.sqf @@ -29,8 +29,10 @@ private _fnc_getActions = { _idNumber = getNumber (_config >> "testID"); if (_idNumber > 0) then { - private _bloodTestArray = GVAR(resultSampleMap) get _idNumber; - private _patient = _bloodTestArray select 0; + private _resultSampleMap = missionNamespace getVariable [QEGVAR(circulation,resultSampleMap), []]; + _resultSampleMap = _resultSampleMap get _idNumber; + _resultSampleMap = _resultSampleMap select 1; + private _patient = _resultSampleMap select 0; _actions pushBack [ [ @@ -43,7 +45,7 @@ private _fnc_getActions = { [] ] call ACEFUNC(interact_menu,createAction), [], - [_bloodTestArray, _target, _idNumber, _player] + [_resultSampleMap, _target, _idNumber, _player] ]; }; } forEach ([_player, 0] call ACEFUNC(common,uniqueItems)); diff --git a/addons/circulation/functions/fnc_addArterialTestActions.sqf b/addons/circulation/functions/fnc_addArterialTestActions.sqf index 934fa14b5..2631a67d9 100644 --- a/addons/circulation/functions/fnc_addArterialTestActions.sqf +++ b/addons/circulation/functions/fnc_addArterialTestActions.sqf @@ -29,7 +29,8 @@ private _fnc_getActions = { _idNumber = getNumber (_config >> "nameID"); if (_idNumber > 0) then { - private _bloodSampleArray = GVAR(bloodSampleMap) get _idNumber; + private _bloodSampleArray = missionNamespace getVariable [QEGVAR(circulation,bloodSampleMap), []]; + _bloodSampleArray = _bloodSampleArray get _idNumber; private _patient = _bloodSampleArray select 0; _actions pushBack [ diff --git a/addons/circulation/functions/fnc_drawArterial.sqf b/addons/circulation/functions/fnc_drawArterial.sqf index 893014288..81c5c3b4f 100644 --- a/addons/circulation/functions/fnc_drawArterial.sqf +++ b/addons/circulation/functions/fnc_drawArterial.sqf @@ -21,9 +21,15 @@ params ["_medic", "_patient"]; private _bloodGas = GET_BLOOD_GAS(_patient); -GVAR(sampleCounter) = [GVAR(sampleCounter) +1, 1] select (GVAR(sampleCounter) == 20); -GVAR(bloodSampleMap) set [GVAR(sampleCounter), [name(_patient), _bloodGas]]; +private _sampleCounter = missionNamespace getVariable [QEGVAR(circulation,sampleCounter), 0]; +private _bloodSampleMap = missionNamespace getVariable [QEGVAR(circulation,bloodSampleMap), []]; -private _itemStr = format ["KAT_bloodSample_%1", GVAR(sampleCounter)]; +_sampleCounter = [_sampleCounter +1, 1] select (_sampleCounter == 20); +missionNamespace setVariable [QEGVAR(circulation,sampleCounter), _sampleCounter, true]; + +_bloodSampleMap set [_sampleCounter, [name(_patient), _bloodGas]]; +missionNamespace setVariable [QEGVAR(circulation,bloodSampleMap), _bloodSampleMap, true]; + +private _itemStr = format ["KAT_bloodSample_%1", _sampleCounter]; [_medic, _itemStr, true] call CBA_fnc_addItem; \ No newline at end of file diff --git a/addons/circulation/functions/fnc_fullHealLocal.sqf b/addons/circulation/functions/fnc_fullHealLocal.sqf index b0a87f39c..6eaf3a2e4 100644 --- a/addons/circulation/functions/fnc_fullHealLocal.sqf +++ b/addons/circulation/functions/fnc_fullHealLocal.sqf @@ -35,6 +35,8 @@ _patient setVariable [QGVAR(tourniquetTime), [0,0,0,0,0,0]]; _patient setVariable [QGVAR(bloodGas), DEFAULT_BLOOD_GAS, true]; _patient setVariable [QGVAR(testedBloodGas), [0,0,0,0,0,0], true]; +_patient setVariable [QGVAR(ABGmenuShow), false]; + _patient setVariable [QGVAR(ht), [], true]; _patient setVariable [QGVAR(effusion), 0, true]; diff --git a/addons/circulation/functions/fnc_showBloodGas.sqf b/addons/circulation/functions/fnc_showBloodGas.sqf index 5954c20b4..d683e904b 100644 --- a/addons/circulation/functions/fnc_showBloodGas.sqf +++ b/addons/circulation/functions/fnc_showBloodGas.sqf @@ -17,15 +17,21 @@ params ["_entries"]; _entries params ["_bloodGas", "_player", "_idNumber", "_vehicle"]; _bloodGas params ["_patientName", "_bloodGasArray"]; -_bloodGasArray params ["_paCO2", "_paO2", "_spO2", "_hCO2", "_pH", "_etCO2"]; +_bloodGasArray params ["_paCO2", "_paO2", "_spO2", "_hCO3", "_pH", "_etCO2"]; -private _output = format ["Patient: %1, PaCO2: %2, PaO2: %3, SpO2: %4, HCO2: %5, pH: %6", _patientName, _paCO2 toFixed 2, _paO2 toFixed 2, _spO2 toFixed 2, _hCO2 toFixed 2, _pH toFixed 2]; +private _output = format ["Patient: %1, PaCO2: %2, PaO2: %3, SpO2: %4, HCO3: %5, pH: %6", _patientName, _paCO2 toFixed 2, _paO2 toFixed 2, _spO2 toFixed 2, _hCO3 toFixed 2, _pH toFixed 2]; [_output, 3, _player] call ACEFUNC(common,displayTextStructured); -GVAR(resultCounter) = if (GVAR(resultCounter) == 20) then { 1 } else { GVAR(resultCounter) + 1 }; -GVAR(resultSampleMap) set [GVAR(resultCounter), [_patientName, _bloodGasArray]]; +private _resultCounter = missionNamespace getVariable [QEGVAR(circulation,resultCounter), 0]; +private _resultSampleMap = missionNamespace getVariable [QEGVAR(circulation,resultSampleMap), []]; -private _itemStr = format ["KAT_bloodResult_%1",GVAR(resultCounter)]; +_resultCounter = [_resultCounter +1, 1] select (_resultCounter == 20); +missionNamespace setVariable [QEGVAR(circulation,resultCounter), _resultCounter, true]; + +_resultSampleMap set [_resultCounter, [name(_patient), _bloodGas]]; +missionNamespace setVariable [QEGVAR(circulation,resultSampleMap), _resultSampleMap, true]; + +private _itemStr = format ["KAT_bloodResult_%1", _resultCounter]; [_vehicle, (format ["KAT_bloodSample_%1",_idNumber])] call CBA_fnc_removeItemCargo; [_player, _itemStr, true] call CBA_fnc_addItem; \ No newline at end of file diff --git a/addons/feedback/XEH_preInit.sqf b/addons/feedback/XEH_preInit.sqf index 3a296b1b1..9e766b44e 100644 --- a/addons/feedback/XEH_preInit.sqf +++ b/addons/feedback/XEH_preInit.sqf @@ -14,7 +14,7 @@ PREP_RECOMPILE_END; "SLIDER", [LLSTRING(SETTING_lowSpO2_display), LLSTRING(SETTING_lowSpO2_DESC)], CBA_SETTINGS_CAT, - [0, 100, 90, 1], + [5, 100, 90, 1], true ] call CBA_Settings_fnc_init; diff --git a/addons/gui/XEH_PREP.hpp b/addons/gui/XEH_PREP.hpp index 692458635..330c8f51c 100644 --- a/addons/gui/XEH_PREP.hpp +++ b/addons/gui/XEH_PREP.hpp @@ -1,5 +1,7 @@ PREP(dumpBloodGas); PREP(handleIVAdjust); +PREP(handleIVShow); +PREP(handleABGShow); PREP(logListAppended); PREP(menuPFH); PREP(onMenuClose); diff --git a/addons/gui/functions/fnc_handleABGShow.sqf b/addons/gui/functions/fnc_handleABGShow.sqf new file mode 100644 index 000000000..6890202fb --- /dev/null +++ b/addons/gui/functions/fnc_handleABGShow.sqf @@ -0,0 +1,21 @@ +#include "..\script_component.hpp" +/* + * Author: Mazinksi + * Changes the visibility of the ABG Menu + * + * Arguments: + * 0: Target + * + * Return Value: + * None + * + * Example: + * [_target] call kat_medical_gui_fnc_handleABGShow; + * + * Public: No + */ + +params ["_target"]; + +private _ABGMenu = [true, false] select (_target getVariable [QEGVAR(pharma,ABGmenuShow), false]); +_target setVariable [QEGVAR(pharma,ABGmenuShow), _ABGMenu, true]; \ No newline at end of file diff --git a/addons/gui/functions/fnc_handleIVShow.sqf b/addons/gui/functions/fnc_handleIVShow.sqf new file mode 100644 index 000000000..210371436 --- /dev/null +++ b/addons/gui/functions/fnc_handleIVShow.sqf @@ -0,0 +1,21 @@ +#include "..\script_component.hpp" +/* + * Author: Mazinksi + * Changes the visibility of the IV Menu + * + * Arguments: + * 0: Target + * + * Return Value: + * None + * + * Example: + * [_target] call kat_medical_gui_fnc_handleIVShow; + * + * Public: No + */ + +params ["_target"]; + +private _IVMenu = [true, false] select (_target getVariable [QEGVAR(pharma,IVmenuActive), false]); +_target setVariable [QEGVAR(pharma,IVmenuActive), _IVMenu, true]; \ No newline at end of file diff --git a/addons/gui/functions/fnc_onMenuOpen.sqf b/addons/gui/functions/fnc_onMenuOpen.sqf index f04f8f3f3..1b01c7242 100644 --- a/addons/gui/functions/fnc_onMenuOpen.sqf +++ b/addons/gui/functions/fnc_onMenuOpen.sqf @@ -94,6 +94,10 @@ if (GVAR(showPatientSideLabels)) then { (_display displayCtrl IDC_SIDE_LABEL_RIGHT) ctrlShow true; }; +if ((missionNamespace getVariable [QEGVAR(pharma,RequireInsIV), false]) && (missionNamespace getVariable [QEGVAR(pharma,IVflowControl), false])) then { + ctrlShow [IDC_IV_FLOW_SHOWBUTTON, true]; +}; + // Set toggle button icon and tooltip private _ctrl = _display displayCtrl IDC_TOGGLE; if (ACEGVAR(medical_gui,target) == ACE_player) then { diff --git a/addons/gui/functions/fnc_updateABGStatus.sqf b/addons/gui/functions/fnc_updateABGStatus.sqf index e81b03228..6646a2b87 100644 --- a/addons/gui/functions/fnc_updateABGStatus.sqf +++ b/addons/gui/functions/fnc_updateABGStatus.sqf @@ -20,15 +20,34 @@ params ["_target"]; // Get tourniquets, damage, and blood loss for target private _bloodGasTest = _target getVariable [QEGVAR(circulation,testedBloodGas), [0,0,0,0,0,0]]; private _activeBlood = 0; +private _ABGmenuShow = _target getVariable [QEGVAR(pharma,ABGmenuShow), false]; + +diag_log _ABGmenuShow; + +if (_ABGmenuShow) then { + ctrlShow [IDC_ABG_TITLE, true]; + ctrlShow [IDC_ABG_BACKGROUND, true]; + ctrlShow [IDC_TEST_RESET, true]; +} else { + ctrlShow [IDC_ABG_TITLE, false]; + ctrlShow [IDC_ABG_BACKGROUND, false]; + ctrlShow [IDC_TEST_RESET, false]; +}; { _x params ["_watchIDC"]; - _activeBlood = _bloodGasTest select _forEachIndex; - - if (_activeBlood != 0) then { - ctrlSetText [_watchIDC, (_activeBlood toFixed 2)]; + if !(_ABGmenuShow) then { + ctrlShow [_x, false]; } else { - ctrlSetText [_watchIDC, "--.-"]; + ctrlShow [_x, true]; + _activeBlood = _bloodGasTest select _forEachIndex; + + if (_activeBlood != 0) then { + ctrlSetText [_watchIDC, (_activeBlood toFixed 2)]; + } else { + ctrlSetText [_watchIDC, "--.-"]; + }; }; + } forEach [IDC_TEST_PACO2, IDC_TEST_PAO2, IDC_TEST_SPO2, IDC_TEST_HCO3, IDC_TEST_PH]; \ No newline at end of file diff --git a/addons/gui/functions/fnc_updateIVStatus.sqf b/addons/gui/functions/fnc_updateIVStatus.sqf index f1773ff1f..68d7401ab 100644 --- a/addons/gui/functions/fnc_updateIVStatus.sqf +++ b/addons/gui/functions/fnc_updateIVStatus.sqf @@ -22,6 +22,15 @@ params ["_target"]; // Get tourniquets, damage, and blood loss for target private _IV = _target getVariable [QEGVAR(pharma,IV), [0,0,0,0,0,0]]; private _ivFlow = _target getVariable [QEGVAR(pharma,IVflow), [0,0,0,0,0,0]]; +private _ivMenuShow = _target getVariable [QEGVAR(pharma,IVmenuActive), false]; + +if (_ivMenuShow) then { + ctrlShow [IDC_IV_FLOW_BACKGROUND, true]; + ctrlShow [IDC_IV_FLOW_TITLE, true]; +} else { + ctrlShow [IDC_IV_FLOW_BACKGROUND, false]; + ctrlShow [IDC_IV_FLOW_TITLE, false]; +}; { _x params ["_coverIDC", "_titleIDC", "_typeIDC", "_valueIDC", "_buttonIDCArray", "_bodyPartN"]; @@ -29,6 +38,10 @@ private _ivFlow = _target getVariable [QEGVAR(pharma,IVflow), [0,0,0,0,0,0]]; private _activeIV = _IV select _bodyPartN; private _activeFlow = _ivFlow select _bodyPartN; + if !(_ivMenuShow) then { + _activeIV = -1; + }; + switch (true) do { case (_activeIV == 0): { ctrlShow [_coverIDC, true]; @@ -58,6 +71,14 @@ private _ivFlow = _target getVariable [QEGVAR(pharma,IVflow), [0,0,0,0,0,0]]; ctrlSetText [_typeIDC, "IV"]; ctrlSetText [_valueIDC, (_activeFlow toFixed 1)]; }; + case (_activeIV == -1): { + ctrlShow [_coverIDC, false]; + ctrlShow [_titleIDC, false]; + ctrlShow [_typeIDC, false]; + ctrlShow [_valueIDC, false]; + _buttonIDCArray apply {ctrlShow [_x, false]}; + _buttonIDCArray apply {ctrlEnable [_x, false]}; + }; }; } forEach [ [IDC_IV_FLOW_HEADCOVER, IDC_IV_FLOW_HEADTITLE, IDC_IV_FLOW_HEADTYPE, IDC_IV_FLOW_HEADIV_VALUE, [IDC_IV_FLOW_HEADSUBTRACTFULL, IDC_IV_FLOW_HEADSUBTRACT, IDC_IV_FLOW_HEADADD, IDC_IV_FLOW_HEADADDFULL], 0], diff --git a/addons/gui/gui.hpp b/addons/gui/gui.hpp index 9514c98f1..5c94d09f8 100644 --- a/addons/gui/gui.hpp +++ b/addons/gui/gui.hpp @@ -107,457 +107,511 @@ class ACEGVAR(medical_gui,BodyImage): RscControlsGroupNoScrollbars { class ACE_Medical_Menu { class controlsBackground { - class IVFlowBackground: RscText { - idc = IDC_IV_FLOW_BACKGROUND; // LOOK HERE - x = QUOTE(POS_X(-8.5)); - y = QUOTE(POS_Y(1.1)); - w = QUOTE(POS_W(9)); - h = QUOTE(POS_H(16.3)); - colorBackground[] = {0, 0, 0, 0.7}; - }; - class IVFlowTitle: RscText { - idc = IDC_IV_FLOW_TITLE; // LOOK HERE - text = CSTRING(IVFlowTitle); - x = QUOTE(POS_X(-8.5)); - y = QUOTE(POS_Y(0)); - w = QUOTE(POS_W(9)); - h = QUOTE(POS_H(1)); - colorBackground[] = GUI_BCG_COLOR; // LOOK HERE - show = 1; - class Attributes { - color = "#E5E5E5"; - font = "RobotoCondensed"; - shadow = "true"; + class IVFlowBackground: RscText { + idc = IDC_IV_FLOW_BACKGROUND; // LOOK HERE + x = QUOTE(POS_X(-8.5)); + y = QUOTE(POS_Y(1.1)); + w = QUOTE(POS_W(9)); + h = QUOTE(POS_H(16.3)); + colorBackground[] = {0, 0, 0, 0.7}; }; - }; - class ABGBackground: IVFlowBackground { - idc = IDC_ABG_BACKGROUND; // LOOK HERE - x = QUOTE(POS_X(39.6)); - y = QUOTE(POS_Y(1.1)); - w = QUOTE(POS_W(9)); - h = QUOTE(POS_H(3.3)); - }; - class ABGTitle: IVFlowTitle { - idc = IDC_ABG_TITLE; // LOOK HERE - text = CSTRING(ABGTitle); - x = QUOTE(POS_X(39.6)); - y = QUOTE(POS_Y(0)); - w = QUOTE(POS_W(9)); - h = QUOTE(POS_H(1)); - show = 1; - class Attributes { - color = "#E5E5E5"; - font = "RobotoCondensed"; - shadow = "true"; + class IVFlowTitle: RscText { + idc = IDC_IV_FLOW_TITLE; // LOOK HERE + text = CSTRING(IVFlowTitle); + x = QUOTE(POS_X(-8.5)); + y = QUOTE(POS_Y(0)); + w = QUOTE(POS_W(9)); + h = QUOTE(POS_H(1)); + colorBackground[] = GUI_BCG_COLOR; // LOOK HERE + show = 1; + class Attributes { + color = "#E5E5E5"; + font = "RobotoCondensed"; + shadow = "true"; + }; + }; + class ABGBackground: IVFlowBackground { + idc = IDC_ABG_BACKGROUND; // LOOK HERE + x = QUOTE(POS_X(39.6)); + y = QUOTE(POS_Y(1.1)); + w = QUOTE(POS_W(9)); + h = QUOTE(POS_H(3.3)); + }; + class ABGTitle: IVFlowTitle { + idc = IDC_ABG_TITLE; // LOOK HERE + text = CSTRING(ABGTitle); + x = QUOTE(POS_X(39.6)); + y = QUOTE(POS_Y(0)); + w = QUOTE(POS_W(9)); + h = QUOTE(POS_H(1)); + show = 1; + class Attributes { + color = "#E5E5E5"; + font = "RobotoCondensed"; + shadow = "true"; + }; + }; + class AdditionalTitle: IVFlowTitle { + idc = IDC_ADD_MENUS; // LOOK HERE + text = "Additional Menus"; + x = QUOTE(POS_X(30.6)); + y = QUOTE(POS_Y(-1)); + w = QUOTE(POS_W(5.5)); + h = QUOTE(POS_H(1)); + colorBackground[] = GUI_BCG_COLOR; // LOOK HERE + show = 1; + class Attributes { + color = "#E5E5E5"; + font = "RobotoCondensed"; + shadow = "true"; + }; }; - }; }; class controls { - class HeadCover: RscStructuredText { - idc = IDC_IV_FLOW_HEADCOVER; // LOOK HERE - text = CSTRING(HeadCover); - x = QUOTE(POS_X(-8)); - y = QUOTE(POS_Y(2.3)); - w = QUOTE(POS_W(8)); - h = QUOTE(POS_H(1.3)); - colorBackground[] = {0, 0, 0, 0.5}; - show = 1; - class Attributes { - align = "center"; - valign = "bottom"; - color = "#E5E5E5"; - font = "RobotoCondensed"; - shadow = "false"; + class IVbutton: RscButton { + idc = IDC_IV_FLOW_SHOWBUTTON; // LOOK HERE + onButtonClick = QUOTE([ARR_2(ACEGVAR(medical_gui,target),1)] call FUNC(handleIVShow)); + text = "IV Flow Control"; + x = QUOTE(POS_X(28.7)); + y = QUOTE(POS_Y(0)); + w = QUOTE(POS_W(4.4)); + h = QUOTE(POS_H(1)); + show = 0; + colorBackground[] = {0, 0, 0, 0}; + colorBackgroundActive[] = {1, 1, 1, 0.4}; + colorBackgroundDisabled[] = {0, 0, 0, 0}; + colorBorder[] = {0,0,0,0}; + class Attributes { + color = "#E5E5E5"; + font = "RobotoCondensed"; + shadow = "true"; + }; }; - }; - class HeadTitle: RscStructuredText { - idc = IDC_IV_FLOW_HEADTITLE; // LOOK HERE - text = CSTRING(HeadTitle); - x = QUOTE(POS_X(-6.6)); - y = QUOTE(POS_Y(1.5)); - w = QUOTE(POS_W(2.2)); - h = QUOTE(POS_H(0.8)); - colorBackground[] = {0, 0, 0, 0}; - show = 0; - class Attributes { - align = "center"; - color = "#E5E5E5"; - font = "RobotoCondensed"; - shadow = "false"; - size = 0.9; + class HeadCover: RscStructuredText { + idc = IDC_IV_FLOW_HEADCOVER; // LOOK HERE + text = CSTRING(HeadCover); + x = QUOTE(POS_X(-8)); + y = QUOTE(POS_Y(2.3)); + w = QUOTE(POS_W(8)); + h = QUOTE(POS_H(1.3)); + colorBackground[] = {0, 0, 0, 0.5}; + show = 0; + class Attributes { + align = "center"; + valign = "bottom"; + color = "#E5E5E5"; + font = "RobotoCondensed"; + shadow = "false"; + }; }; - }; - class HeadType: RscStructuredText { - idc = IDC_IV_FLOW_HEADTYPE; // LOOK HERE - x = QUOTE(POS_X(-3.6)); - y = QUOTE(POS_Y(1.5)); - w = QUOTE(POS_W(2)); - h = QUOTE(POS_H(0.8)); - colorBackground[] = {0, 0, 0, 0}; - show = 0; - class Attributes { - align = "center"; - color = "#E5E5E5"; - font = "RobotoCondensed"; - shadow = "false"; - size = 0.9; + class HeadTitle: RscStructuredText { + idc = IDC_IV_FLOW_HEADTITLE; // LOOK HERE + text = CSTRING(HeadTitle); + x = QUOTE(POS_X(-6.6)); + y = QUOTE(POS_Y(1.5)); + w = QUOTE(POS_W(2.2)); + h = QUOTE(POS_H(0.8)); + colorBackground[] = {0, 0, 0, 0}; + show = 0; + class Attributes { + align = "center"; + color = "#E5E5E5"; + font = "RobotoCondensed"; + shadow = "false"; + size = 0.9; + }; }; - }; - class HeadSubtractFull: RscButton { - idc = IDC_IV_FLOW_HEADSUBTRACTFULL; // LOOK HERE - onButtonClick = QUOTE([ARR_3(ACEGVAR(medical_gui,target),0,-0.5)] call FUNC(handleIVAdjust)); - text = "<<"; - x = QUOTE(POS_X(-7.5)); - y = QUOTE(POS_Y(2.5)); - w = QUOTE(POS_W(1)); - h = QUOTE(POS_H(1)); - show = 0; - colorBackground[] = {0, 0, 0, 0.7}; - colorBackgroundActive[] = {1, 1, 1, 1}; - colorBackgroundDisabled[] = {0, 0, 0, 0.7}; - colorBorder[] = {0,0,0,0}; - class Attributes { - color = "#E5E5E5"; - font = "RobotoCondensed"; - shadow = "false"; + class HeadType: RscStructuredText { + idc = IDC_IV_FLOW_HEADTYPE; // LOOK HERE + x = QUOTE(POS_X(-3.6)); + y = QUOTE(POS_Y(1.5)); + w = QUOTE(POS_W(2)); + h = QUOTE(POS_H(0.8)); + colorBackground[] = {0, 0, 0, 0}; + show = 0; + class Attributes { + align = "center"; + color = "#E5E5E5"; + font = "RobotoCondensed"; + shadow = "false"; + size = 0.9; + }; }; - }; - class HeadSubtract: RscButton { - idc = IDC_IV_FLOW_HEADSUBTRACT; // LOOK HERE - onButtonClick = QUOTE([ARR_3(ACEGVAR(medical_gui,target),0,-0.1)] call FUNC(handleIVAdjust)); - text = "<"; - x = QUOTE(POS_X(-6)); - y = QUOTE(POS_Y(2.5)); - w = QUOTE(POS_W(1)); - h = QUOTE(POS_H(1)); - show = 0; - colorBackground[] = {0, 0, 0, 0.7}; - colorBackgroundActive[] = {1, 1, 1, 1}; - colorBackgroundDisabled[] = {0, 0, 0, 0.7}; - colorBorder[] = {0,0,0,0}; - class Attributes { - color = "#E5E5E5"; - font = "RobotoCondensed"; - shadow = "false"; + class HeadSubtractFull: RscButton { + idc = IDC_IV_FLOW_HEADSUBTRACTFULL; // LOOK HERE + onButtonClick = QUOTE([ARR_3(ACEGVAR(medical_gui,target),0,-0.5)] call FUNC(handleIVAdjust)); + text = "<<"; + x = QUOTE(POS_X(-7.5)); + y = QUOTE(POS_Y(2.5)); + w = QUOTE(POS_W(1)); + h = QUOTE(POS_H(1)); + show = 0; + colorBackground[] = {0, 0, 0, 0.7}; + colorBackgroundActive[] = {1, 1, 1, 1}; + colorBackgroundDisabled[] = {0, 0, 0, 0.7}; + colorBorder[] = {0,0,0,0}; + class Attributes { + color = "#E5E5E5"; + font = "RobotoCondensed"; + shadow = "false"; + }; }; - }; - class HeadIVValue: RscStructuredText { - idc = IDC_IV_FLOW_HEADIV_VALUE; // LOOK HERE - text = CSTRING(IVValue); - x = QUOTE(POS_X(-5)); - y = QUOTE(POS_Y(2.5)); - w = QUOTE(POS_W(2)); - h = QUOTE(POS_H(1)); - colorBackground[] = {0, 0, 0, 0.2}; - show = 0; - class Attributes { - align = "center"; - color = "#E5E5E5"; - font = "RobotoCondensed"; - shadow = "false"; - size = 1; + class HeadSubtract: RscButton { + idc = IDC_IV_FLOW_HEADSUBTRACT; // LOOK HERE + onButtonClick = QUOTE([ARR_3(ACEGVAR(medical_gui,target),0,-0.1)] call FUNC(handleIVAdjust)); + text = "<"; + x = QUOTE(POS_X(-6)); + y = QUOTE(POS_Y(2.5)); + w = QUOTE(POS_W(1)); + h = QUOTE(POS_H(1)); + show = 0; + colorBackground[] = {0, 0, 0, 0.7}; + colorBackgroundActive[] = {1, 1, 1, 1}; + colorBackgroundDisabled[] = {0, 0, 0, 0.7}; + colorBorder[] = {0,0,0,0}; + class Attributes { + color = "#E5E5E5"; + font = "RobotoCondensed"; + shadow = "false"; + }; }; - }; - class HeadAdd: RscButton { - idc = IDC_IV_FLOW_HEADADD; // LOOK HERE - onButtonClick = QUOTE([ARR_3(ACEGVAR(medical_gui,target),0,0.1)] call FUNC(handleIVAdjust)); - text = ">"; - x = QUOTE(POS_X(-3)); - y = QUOTE(POS_Y(2.5)); - w = QUOTE(POS_W(1)); - h = QUOTE(POS_H(1)); - show = 0; - colorBackground[] = {0, 0, 0, 0.7}; - colorBackgroundActive[] = {1, 1, 1, 1}; - colorBackgroundDisabled[] = {0, 0, 0, 0.7}; - colorBorder[] = {0,0,0,0}; - class Attributes { - color = "#E5E5E5"; - font = "RobotoCondensed"; - shadow = "false"; + class HeadIVValue: RscStructuredText { + idc = IDC_IV_FLOW_HEADIV_VALUE; // LOOK HERE + text = CSTRING(IVValue); + x = QUOTE(POS_X(-5)); + y = QUOTE(POS_Y(2.5)); + w = QUOTE(POS_W(2)); + h = QUOTE(POS_H(1)); + colorBackground[] = {0, 0, 0, 0.2}; + show = 0; + class Attributes { + align = "center"; + color = "#E5E5E5"; + font = "RobotoCondensed"; + shadow = "false"; + size = 1; + }; }; - }; - class HeadAddFull: RscButton { - idc = IDC_IV_FLOW_HEADADDFULL; // LOOK HERE - onButtonClick = QUOTE([ARR_3(ACEGVAR(medical_gui,target),0,0.5)] call FUNC(handleIVAdjust)); - text = ">>"; - x = QUOTE(POS_X(-1.5)); - y = QUOTE(POS_Y(2.5)); - w = QUOTE(POS_W(1)); - h = QUOTE(POS_H(1)); - show = 0; - colorBackground[] = {0, 0, 0, 0.7}; - colorBackgroundActive[] = {1, 1, 1, 1}; - colorBackgroundDisabled[] = {0, 0, 0, 0.7}; - colorBorder[] = {0,0,0,0}; - class Attributes { - color = "#E5E5E5"; - font = "RobotoCondensed"; - shadow = "false"; + class HeadAdd: RscButton { + idc = IDC_IV_FLOW_HEADADD; // LOOK HERE + onButtonClick = QUOTE([ARR_3(ACEGVAR(medical_gui,target),0,0.1)] call FUNC(handleIVAdjust)); + text = ">"; + x = QUOTE(POS_X(-3)); + y = QUOTE(POS_Y(2.5)); + w = QUOTE(POS_W(1)); + h = QUOTE(POS_H(1)); + show = 0; + colorBackground[] = {0, 0, 0, 0.7}; + colorBackgroundActive[] = {1, 1, 1, 1}; + colorBackgroundDisabled[] = {0, 0, 0, 0.7}; + colorBorder[] = {0,0,0,0}; + class Attributes { + color = "#E5E5E5"; + font = "RobotoCondensed"; + shadow = "false"; + }; + }; + class HeadAddFull: RscButton { + idc = IDC_IV_FLOW_HEADADDFULL; // LOOK HERE + onButtonClick = QUOTE([ARR_3(ACEGVAR(medical_gui,target),0,0.5)] call FUNC(handleIVAdjust)); + text = ">>"; + x = QUOTE(POS_X(-1.5)); + y = QUOTE(POS_Y(2.5)); + w = QUOTE(POS_W(1)); + h = QUOTE(POS_H(1)); + show = 0; + colorBackground[] = {0, 0, 0, 0.7}; + colorBackgroundActive[] = {1, 1, 1, 1}; + colorBackgroundDisabled[] = {0, 0, 0, 0.7}; + colorBorder[] = {0,0,0,0}; + class Attributes { + color = "#E5E5E5"; + font = "RobotoCondensed"; + shadow = "false"; + }; + }; + + class ChestCover: HeadCover { + idc = IDC_IV_FLOW_CHESTCOVER; + text = CSTRING(ChestCover); // LOOK HERE + y = QUOTE(POS_Y(4.8)); + }; + class ChestTitle: HeadTitle { + idc = IDC_IV_FLOW_CHESTTITLE; // LOOK HERE + text = CSTRING(ChestTitle); + y = QUOTE(POS_Y(4.1)); + }; + class ChestType: HeadType { + idc = IDC_IV_FLOW_CHESTTYPE; // LOOK HERE + y = QUOTE(POS_Y(4.1)); + }; + class ChestSubtractFull: HeadSubtractFull { + idc = IDC_IV_FLOW_CHESTSUBTRACTFULL; // LOOK HERE + onButtonClick = QUOTE([ARR_3(ACEGVAR(medical_gui,target),1,-0.5)] call FUNC(handleIVAdjust)); + y = QUOTE(POS_Y(5)); + }; + class ChestSubtract: HeadSubtract { + idc = IDC_IV_FLOW_CHESTSUBTRACT; // LOOK HERE + onButtonClick = QUOTE([ARR_3(ACEGVAR(medical_gui,target),1,-0.1)] call FUNC(handleIVAdjust)); + y = QUOTE(POS_Y(5)); + }; + class ChestIVValue: HeadIVValue { + idc = IDC_IV_FLOW_CHESTTEST; // LOOK HERE + y = QUOTE(POS_Y(5)); + }; + class ChestAdd: HeadAdd { + idc = IDC_IV_FLOW_CHESTADD; // LOOK HERE + onButtonClick = QUOTE([ARR_3(ACEGVAR(medical_gui,target),1,0.1)] call FUNC(handleIVAdjust)); + y = QUOTE(POS_Y(5)); + }; + class ChestAddFull: HeadAddFull { + idc = IDC_IV_FLOW_CHESTADDFULL; // LOOK HERE + onButtonClick = QUOTE([ARR_3(ACEGVAR(medical_gui,target),1,0.5)] call FUNC(handleIVAdjust)); + y = QUOTE(POS_Y(5)); }; - }; - - class ChestCover: HeadCover { - idc = IDC_IV_FLOW_CHESTCOVER; - text = CSTRING(ChestCover); // LOOK HERE - y = QUOTE(POS_Y(4.8)); - }; - class ChestTitle: HeadTitle { - idc = IDC_IV_FLOW_CHESTTITLE; // LOOK HERE - text = CSTRING(ChestTitle); - y = QUOTE(POS_Y(4.1)); - }; - class ChestType: HeadType { - idc = IDC_IV_FLOW_CHESTTYPE; // LOOK HERE - y = QUOTE(POS_Y(4.1)); - }; - class ChestSubtractFull: HeadSubtractFull { - idc = IDC_IV_FLOW_CHESTSUBTRACTFULL; // LOOK HERE - onButtonClick = QUOTE([ARR_3(ACEGVAR(medical_gui,target),1,-0.5)] call FUNC(handleIVAdjust)); - y = QUOTE(POS_Y(5)); - }; - class ChestSubtract: HeadSubtract { - idc = IDC_IV_FLOW_CHESTSUBTRACT; // LOOK HERE - onButtonClick = QUOTE([ARR_3(ACEGVAR(medical_gui,target),1,-0.1)] call FUNC(handleIVAdjust)); - y = QUOTE(POS_Y(5)); - }; - class ChestIVValue: HeadIVValue { - idc = IDC_IV_FLOW_CHESTTEST; // LOOK HERE - y = QUOTE(POS_Y(5)); - }; - class ChestAdd: HeadAdd { - idc = IDC_IV_FLOW_CHESTADD; // LOOK HERE - onButtonClick = QUOTE([ARR_3(ACEGVAR(medical_gui,target),1,0.1)] call FUNC(handleIVAdjust)); - y = QUOTE(POS_Y(5)); - }; - class ChestAddFull: HeadAddFull { - idc = IDC_IV_FLOW_CHESTADDFULL; // LOOK HERE - onButtonClick = QUOTE([ARR_3(ACEGVAR(medical_gui,target),1,0.5)] call FUNC(handleIVAdjust)); - y = QUOTE(POS_Y(5)); - }; - class LArmCover: HeadCover { - idc = IDC_IV_FLOW_LARMCOVER; // LOOK HERE - text = CSTRING(LArmCover); - y = QUOTE(POS_Y(7.4)); - }; - class LArmTitle: HeadTitle { - idc = IDC_IV_FLOW_LARMTITLE; // LOOK HERE - text = CSTRING(LArmTitle); - y = QUOTE(POS_Y(6.6)); - }; - class LArmType: HeadType { - idc = IDC_IV_FLOW_LARMTYPE; // LOOK HERE - y = QUOTE(POS_Y(6.6)); - }; - class LArmSubtractFull: HeadSubtractFull { - idc = IDC_IV_FLOW_LARMSUBTRACTFULL; // LOOK HERE - onButtonClick = QUOTE([ARR_3(ACEGVAR(medical_gui,target),2,-0.5)] call FUNC(handleIVAdjust)); - y = QUOTE(POS_Y(7.6)); - }; - class LArmSubtract: HeadSubtract { - idc = IDC_IV_FLOW_LARMSUBTRACT; // LOOK HERE - onButtonClick = QUOTE([ARR_3(ACEGVAR(medical_gui,target),2,-0.1)] call FUNC(handleIVAdjust)); - y = QUOTE(POS_Y(7.6)); - }; - class LArmIVValue: HeadIVValue { - idc = IDC_IV_FLOW_LARMIVVALUE; // LOOK HERE - y = QUOTE(POS_Y(7.6)); - }; - class LArmAdd: HeadAdd { - idc = IDC_IV_FLOW_LARMADD; // LOOK HERE - onButtonClick = QUOTE([ARR_3(ACEGVAR(medical_gui,target),2,0.1)] call FUNC(handleIVAdjust)); - y = QUOTE(POS_Y(7.6)); - }; - class LArmAddFull: HeadAddFull { - idc = IDC_IV_FLOW_LARMADDFULL; // LOOK HERE - onButtonClick = QUOTE([ARR_3(ACEGVAR(medical_gui,target),2,0.5)] call FUNC(handleIVAdjust)); - y = QUOTE(POS_Y(7.6)); - }; + class LArmCover: HeadCover { + idc = IDC_IV_FLOW_LARMCOVER; // LOOK HERE + text = CSTRING(LArmCover); + y = QUOTE(POS_Y(7.4)); + }; + class LArmTitle: HeadTitle { + idc = IDC_IV_FLOW_LARMTITLE; // LOOK HERE + text = CSTRING(LArmTitle); + y = QUOTE(POS_Y(6.6)); + }; + class LArmType: HeadType { + idc = IDC_IV_FLOW_LARMTYPE; // LOOK HERE + y = QUOTE(POS_Y(6.6)); + }; + class LArmSubtractFull: HeadSubtractFull { + idc = IDC_IV_FLOW_LARMSUBTRACTFULL; // LOOK HERE + onButtonClick = QUOTE([ARR_3(ACEGVAR(medical_gui,target),2,-0.5)] call FUNC(handleIVAdjust)); + y = QUOTE(POS_Y(7.6)); + }; + class LArmSubtract: HeadSubtract { + idc = IDC_IV_FLOW_LARMSUBTRACT; // LOOK HERE + onButtonClick = QUOTE([ARR_3(ACEGVAR(medical_gui,target),2,-0.1)] call FUNC(handleIVAdjust)); + y = QUOTE(POS_Y(7.6)); + }; + class LArmIVValue: HeadIVValue { + idc = IDC_IV_FLOW_LARMIVVALUE; // LOOK HERE + y = QUOTE(POS_Y(7.6)); + }; + class LArmAdd: HeadAdd { + idc = IDC_IV_FLOW_LARMADD; // LOOK HERE + onButtonClick = QUOTE([ARR_3(ACEGVAR(medical_gui,target),2,0.1)] call FUNC(handleIVAdjust)); + y = QUOTE(POS_Y(7.6)); + }; + class LArmAddFull: HeadAddFull { + idc = IDC_IV_FLOW_LARMADDFULL; // LOOK HERE + onButtonClick = QUOTE([ARR_3(ACEGVAR(medical_gui,target),2,0.5)] call FUNC(handleIVAdjust)); + y = QUOTE(POS_Y(7.6)); + }; - class RArmCover: HeadCover { - idc = IDC_IV_FLOW_RARMCOVER; // LOOK HERE - text = CSTRING(RArmCover); - y = QUOTE(POS_Y(10.1)); - }; - class RArmTitle: HeadTitle { - idc = IDC_IV_FLOW_RARMTITLE; // LOOK HERE - text = CSTRING(RArmTitle); - y = QUOTE(POS_Y(9.3)); - }; - class RArmType: HeadType { - idc = IDC_IV_FLOW_RARMTYPE; // LOOK HERE - y = QUOTE(POS_Y(9.3)); - }; - class RArmSubtractFull: HeadSubtractFull { - idc = IDC_IV_FLOW_RARMSUBTRACTFULL; // LOOK HERE - onButtonClick = QUOTE([ARR_3(ACEGVAR(medical_gui,target),3,-0.5)] call FUNC(handleIVAdjust)); - y = QUOTE(POS_Y(10.3)); - }; - class RArmSubtract: HeadSubtract { - idc = IDC_IV_FLOW_RARMSUBTRACT; // LOOK HERE - onButtonClick = QUOTE([ARR_3(ACEGVAR(medical_gui,target),3,-0.1)] call FUNC(handleIVAdjust)); - y = QUOTE(POS_Y(10.3)); - }; - class RArmIVValue: HeadIVValue { - idc = IDC_IV_FLOW_RARMIVVALUE; // LOOK HERE - y = QUOTE(POS_Y(10.3)); - }; - class RArmAdd: HeadAdd { - idc = IDC_IV_FLOW_RARMADD; // LOOK HERE - onButtonClick = QUOTE([ARR_3(ACEGVAR(medical_gui,target),3,0.1)] call FUNC(handleIVAdjust)); - y = QUOTE(POS_Y(10.3)); - }; - class RArmAddFull: HeadAddFull { - idc = IDC_IV_FLOW_RARMADDFULL; // LOOK HERE - onButtonClick = QUOTE([ARR_3(ACEGVAR(medical_gui,target),3,0.5)] call FUNC(handleIVAdjust)); - y = QUOTE(POS_Y(10.3)); - }; + class RArmCover: HeadCover { + idc = IDC_IV_FLOW_RARMCOVER; // LOOK HERE + text = CSTRING(RArmCover); + y = QUOTE(POS_Y(10.1)); + }; + class RArmTitle: HeadTitle { + idc = IDC_IV_FLOW_RARMTITLE; // LOOK HERE + text = CSTRING(RArmTitle); + y = QUOTE(POS_Y(9.3)); + }; + class RArmType: HeadType { + idc = IDC_IV_FLOW_RARMTYPE; // LOOK HERE + y = QUOTE(POS_Y(9.3)); + }; + class RArmSubtractFull: HeadSubtractFull { + idc = IDC_IV_FLOW_RARMSUBTRACTFULL; // LOOK HERE + onButtonClick = QUOTE([ARR_3(ACEGVAR(medical_gui,target),3,-0.5)] call FUNC(handleIVAdjust)); + y = QUOTE(POS_Y(10.3)); + }; + class RArmSubtract: HeadSubtract { + idc = IDC_IV_FLOW_RARMSUBTRACT; // LOOK HERE + onButtonClick = QUOTE([ARR_3(ACEGVAR(medical_gui,target),3,-0.1)] call FUNC(handleIVAdjust)); + y = QUOTE(POS_Y(10.3)); + }; + class RArmIVValue: HeadIVValue { + idc = IDC_IV_FLOW_RARMIVVALUE; // LOOK HERE + y = QUOTE(POS_Y(10.3)); + }; + class RArmAdd: HeadAdd { + idc = IDC_IV_FLOW_RARMADD; // LOOK HERE + onButtonClick = QUOTE([ARR_3(ACEGVAR(medical_gui,target),3,0.1)] call FUNC(handleIVAdjust)); + y = QUOTE(POS_Y(10.3)); + }; + class RArmAddFull: HeadAddFull { + idc = IDC_IV_FLOW_RARMADDFULL; // LOOK HERE + onButtonClick = QUOTE([ARR_3(ACEGVAR(medical_gui,target),3,0.5)] call FUNC(handleIVAdjust)); + y = QUOTE(POS_Y(10.3)); + }; - class LLegCover: HeadCover { - idc = IDC_IV_FLOW_LLEGCOVER; // LOOK HERE - text = CSTRING(LLegCover); - y = QUOTE(POS_Y(12.8)); - }; - class LLegTitle: HeadTitle { - idc = IDC_IV_FLOW_LLEGTITLE; // LOOK HERE - text = CSTRING(LLegTitle); - y = QUOTE(POS_Y(12)); - }; - class LLegType: HeadType { - idc = IDC_IV_FLOW_LLEGTYPE; // LOOK HERE - y = QUOTE(POS_Y(12)); - }; - class LLegSubtractFull: HeadSubtractFull { - idc = IDC_IV_FLOW_LLEGSUBTRACTFULL; // LOOK HERE - onButtonClick = QUOTE([ARR_3(ACEGVAR(medical_gui,target),4,-0.5)] call FUNC(handleIVAdjust)); - y = QUOTE(POS_Y(12.9)); - }; - class LLegSubtract: HeadSubtract { - idc = IDC_IV_FLOW_LLEGSUBTRACT; // LOOK HERE - onButtonClick = QUOTE([ARR_3(ACEGVAR(medical_gui,target),4,-0.1)] call FUNC(handleIVAdjust)); - y = QUOTE(POS_Y(12.9)); - }; - class LLegIVValue: HeadIVValue { - idc = IDC_IV_FLOW_LLEGIVVALUE; // LOOK HERE - y = QUOTE(POS_Y(12.9)); - }; - class LLegAdd: HeadAdd { - idc = IDC_IV_FLOW_LLEGADD; // LOOK HERE - onButtonClick = QUOTE([ARR_3(ACEGVAR(medical_gui,target),4,0.1)] call FUNC(handleIVAdjust)); - y = QUOTE(POS_Y(12.9)); - }; - class LLegAddFull: HeadAddFull { - idc = IDC_IV_FLOW_LLEGADDFULL; // LOOK HERE - onButtonClick = QUOTE([ARR_3(ACEGVAR(medical_gui,target),4,0.5)] call FUNC(handleIVAdjust)); - y = QUOTE(POS_Y(12.9)); - }; + class LLegCover: HeadCover { + idc = IDC_IV_FLOW_LLEGCOVER; // LOOK HERE + text = CSTRING(LLegCover); + y = QUOTE(POS_Y(12.8)); + }; + class LLegTitle: HeadTitle { + idc = IDC_IV_FLOW_LLEGTITLE; // LOOK HERE + text = CSTRING(LLegTitle); + y = QUOTE(POS_Y(12)); + }; + class LLegType: HeadType { + idc = IDC_IV_FLOW_LLEGTYPE; // LOOK HERE + y = QUOTE(POS_Y(12)); + }; + class LLegSubtractFull: HeadSubtractFull { + idc = IDC_IV_FLOW_LLEGSUBTRACTFULL; // LOOK HERE + onButtonClick = QUOTE([ARR_3(ACEGVAR(medical_gui,target),4,-0.5)] call FUNC(handleIVAdjust)); + y = QUOTE(POS_Y(12.9)); + }; + class LLegSubtract: HeadSubtract { + idc = IDC_IV_FLOW_LLEGSUBTRACT; // LOOK HERE + onButtonClick = QUOTE([ARR_3(ACEGVAR(medical_gui,target),4,-0.1)] call FUNC(handleIVAdjust)); + y = QUOTE(POS_Y(12.9)); + }; + class LLegIVValue: HeadIVValue { + idc = IDC_IV_FLOW_LLEGIVVALUE; // LOOK HERE + y = QUOTE(POS_Y(12.9)); + }; + class LLegAdd: HeadAdd { + idc = IDC_IV_FLOW_LLEGADD; // LOOK HERE + onButtonClick = QUOTE([ARR_3(ACEGVAR(medical_gui,target),4,0.1)] call FUNC(handleIVAdjust)); + y = QUOTE(POS_Y(12.9)); + }; + class LLegAddFull: HeadAddFull { + idc = IDC_IV_FLOW_LLEGADDFULL; // LOOK HERE + onButtonClick = QUOTE([ARR_3(ACEGVAR(medical_gui,target),4,0.5)] call FUNC(handleIVAdjust)); + y = QUOTE(POS_Y(12.9)); + }; - class RLegCover: HeadCover { - idc = IDC_IV_FLOW_RLEGCOVER; // LOOK HERE - text = CSTRING(RLegCover); - y = QUOTE(POS_Y(15.4)); - }; - class RLegTitle: HeadTitle { - idc = IDC_IV_FLOW_RLEGTITLE; // LOOK HERE - text = CSTRING(RLegTitle); - y = QUOTE(POS_Y(14.6)); - }; - class RLegType: HeadType { - idc = IDC_IV_FLOW_RLEGTYPE; // LOOK HERE - y = QUOTE(POS_Y(14.6)); - }; - class RLegSubtractFull: HeadSubtractFull { - idc = IDC_IV_FLOW_RLEGSUBTRACTFULL; // LOOK HERE - onButtonClick = QUOTE([ARR_3(ACEGVAR(medical_gui,target),5,-0.5)] call FUNC(handleIVAdjust)); - y = QUOTE(POS_Y(15.5)); - }; - class RLegSubtract: HeadSubtract { - idc = IDC_IV_FLOW_RLEGSUBTRACT; // LOOK HERE - onButtonClick = QUOTE([ARR_3(ACEGVAR(medical_gui,target),5,-0.1)] call FUNC(handleIVAdjust)); - y = QUOTE(POS_Y(15.5)); - }; - class RLegIVValue: HeadIVValue { - idc = IDC_IV_FLOW_RLEGIVVALUE; // LOOK HERE - y = QUOTE(POS_Y(15.5)); - }; - class RLegAdd: HeadAdd { - idc = IDC_IV_FLOW_RLEGADD; // LOOK HERE - onButtonClick = QUOTE([ARR_3(ACEGVAR(medical_gui,target),5,0.1)] call FUNC(handleIVAdjust)); - y = QUOTE(POS_Y(15.5)); - }; - class RLegAddFull: HeadAddFull { - idc = IDC_IV_FLOW_RLEGADDFULL; // LOOK HERE - onButtonClick = QUOTE([ARR_3(ACEGVAR(medical_gui,target),5,0.5)] call FUNC(handleIVAdjust)); - y = QUOTE(POS_Y(15.5)); - }; + class RLegCover: HeadCover { + idc = IDC_IV_FLOW_RLEGCOVER; // LOOK HERE + text = CSTRING(RLegCover); + y = QUOTE(POS_Y(15.4)); + }; + class RLegTitle: HeadTitle { + idc = IDC_IV_FLOW_RLEGTITLE; // LOOK HERE + text = CSTRING(RLegTitle); + y = QUOTE(POS_Y(14.6)); + }; + class RLegType: HeadType { + idc = IDC_IV_FLOW_RLEGTYPE; // LOOK HERE + y = QUOTE(POS_Y(14.6)); + }; + class RLegSubtractFull: HeadSubtractFull { + idc = IDC_IV_FLOW_RLEGSUBTRACTFULL; // LOOK HERE + onButtonClick = QUOTE([ARR_3(ACEGVAR(medical_gui,target),5,-0.5)] call FUNC(handleIVAdjust)); + y = QUOTE(POS_Y(15.5)); + }; + class RLegSubtract: HeadSubtract { + idc = IDC_IV_FLOW_RLEGSUBTRACT; // LOOK HERE + onButtonClick = QUOTE([ARR_3(ACEGVAR(medical_gui,target),5,-0.1)] call FUNC(handleIVAdjust)); + y = QUOTE(POS_Y(15.5)); + }; + class RLegIVValue: HeadIVValue { + idc = IDC_IV_FLOW_RLEGIVVALUE; // LOOK HERE + y = QUOTE(POS_Y(15.5)); + }; + class RLegAdd: HeadAdd { + idc = IDC_IV_FLOW_RLEGADD; // LOOK HERE + onButtonClick = QUOTE([ARR_3(ACEGVAR(medical_gui,target),5,0.1)] call FUNC(handleIVAdjust)); + y = QUOTE(POS_Y(15.5)); + }; + class RLegAddFull: HeadAddFull { + idc = IDC_IV_FLOW_RLEGADDFULL; // LOOK HERE + onButtonClick = QUOTE([ARR_3(ACEGVAR(medical_gui,target),5,0.5)] call FUNC(handleIVAdjust)); + y = QUOTE(POS_Y(15.5)); + }; - class PaCO2_Output: RscStructuredText { - idc = IDC_TEST_PACO2; // LOOK HERE - text = CSTRING(BGBlank); - x = QUOTE(POS_X(40)); - y = QUOTE(POS_Y(1.5)); - w = QUOTE(POS_W(2.2)); - h = QUOTE(POS_H(1)); - colorBackground[] = {0, 0, 0, 0.5}; - show = 1; - class Attributes { - align = "center"; - color = "#E5E5E5"; - font = "RobotoCondensed"; - shadow = "false"; - size = 1; + class ABGbutton: RscButton + { + idc = IDC_TEST_SHOWBUTTON; + onButtonClick = QUOTE([ARR_2(ACEGVAR(medical_gui,target),1)] call FUNC(handleABGShow)); + text = "ABG Results"; + x = QUOTE(POS_X(33.8)); + y = QUOTE(POS_Y(0)); + w = QUOTE(POS_W(4.2)); + h = QUOTE(POS_H(1)); + show = 1; + colorBackground[] = {0, 0, 0, 0}; + colorBackgroundActive[] = {1, 1, 1, 0.4}; + colorBackgroundDisabled[] = {0, 0, 0, 0}; + colorBorder[] = {0,0,0,0}; + class Attributes { + color = "#E5E5E5"; + font = "RobotoCondensed"; + shadow = "true"; + }; }; - }; - class PaO2_Output: PaCO2_Output { - idc = IDC_TEST_PAO2; // LOOK HERE - x = QUOTE(POS_X(43)); - }; - class SpO2_Output: PaCO2_Output { - idc = IDC_TEST_SPO2; // LOOK HERE - x = QUOTE(POS_X(46)); - }; - class HCO3_Output: RscStructuredText { - idc = IDC_TEST_HCO3; // LOOK HERE - text = CSTRING(BGBlank); - x = QUOTE(POS_X(40)); - y = QUOTE(POS_Y(3)); - w = QUOTE(POS_W(2.2)); - h = QUOTE(POS_H(1)); - colorBackground[] = {0, 0, 0, 0.5}; - show = 1; - class Attributes { - align = "center"; - color = "#E5E5E5"; - font = "RobotoCondensed"; - shadow = "false"; - size = 1; + class PaCO2_Output: RscStructuredText { + idc = IDC_TEST_PACO2; // LOOK HERE + text = CSTRING(BGBlank); + x = QUOTE(POS_X(40)); + y = QUOTE(POS_Y(1.5)); + w = QUOTE(POS_W(2.2)); + h = QUOTE(POS_H(1)); + colorBackground[] = {0, 0, 0, 0.5}; + show = 0; + class Attributes { + align = "center"; + color = "#E5E5E5"; + font = "RobotoCondensed"; + shadow = "false"; + size = 1; + }; }; - }; - class PH_Output: HCO3_Output { - idc = IDC_TEST_PH; // LOOK HERE - x = QUOTE(POS_X(43)); - }; - class Test_Reset: RscButton { - idc = IDC_TEST_RESET; // LOOK HERE - onButtonClick = QUOTE([ACEGVAR(medical_gui,target)] call FUNC(dumpBloodGas)); - text = CSTRING(TestReset); - x = QUOTE(POS_X(46)); - y = QUOTE(POS_Y(3)); - w = QUOTE(POS_W(2.1)); - h = QUOTE(POS_H(1)); - colorText[] = {1, 1, 1, 0.9}; - colorActive[] = {0, 0, 0, 0.7}; - colorBackground[] = {0, 0, 0, 0.7}; - colorBackgroundActive[] = {1, 1, 1, 1}; - colorBorder[] = {0,0,0,0}; - show = 1; - class Attributes { - align = "center"; - font = "RobotoCondensed"; - shadow = "false"; + class PaO2_Output: PaCO2_Output { + idc = IDC_TEST_PAO2; // LOOK HERE + x = QUOTE(POS_X(43)); + }; + class SpO2_Output: PaCO2_Output { + idc = IDC_TEST_SPO2; // LOOK HERE + x = QUOTE(POS_X(46)); + }; + class HCO3_Output: RscStructuredText { + idc = IDC_TEST_HCO3; // LOOK HERE + text = CSTRING(BGBlank); + x = QUOTE(POS_X(40)); + y = QUOTE(POS_Y(3)); + w = QUOTE(POS_W(2.2)); + h = QUOTE(POS_H(1)); + colorBackground[] = {0, 0, 0, 0.5}; + show = 0; + class Attributes { + align = "center"; + color = "#E5E5E5"; + font = "RobotoCondensed"; + shadow = "false"; + size = 1; + }; + }; + class PH_Output: HCO3_Output { + idc = IDC_TEST_PH; // LOOK HERE + x = QUOTE(POS_X(43)); + }; + class Test_Reset: RscButton { + idc = IDC_TEST_RESET; // LOOK HERE + onButtonClick = QUOTE([ACEGVAR(medical_gui,target)] call FUNC(dumpBloodGas)); + text = CSTRING(TestReset); + x = QUOTE(POS_X(46)); + y = QUOTE(POS_Y(3)); + w = QUOTE(POS_W(2.1)); + h = QUOTE(POS_H(1)); + colorText[] = {1, 1, 1, 0.9}; + colorActive[] = {0, 0, 0, 0.7}; + colorBackground[] = {0, 0, 0, 0.7}; + colorBackgroundActive[] = {1, 1, 1, 1}; + colorBorder[] = {0,0,0,0}; + show = 0; + class Attributes { + align = "center"; + font = "RobotoCondensed"; + shadow = "false"; + }; }; - }; class Triage: RscActivePicture {}; diff --git a/addons/gui/gui_defines.hpp b/addons/gui/gui_defines.hpp index c37eedfeb..6192eb7b2 100644 --- a/addons/gui/gui_defines.hpp +++ b/addons/gui/gui_defines.hpp @@ -72,6 +72,8 @@ #define IDC_BODY_RIGHTLEG_IV 70141 #define IDC_BODY_LEFTLEG_IV 70142 +#define IDC_ADD_MENUS 71099 + #define IDC_IV_FLOW_TITLE 71101 #define IDC_IV_FLOW_HEADCOVER 71102 #define IDC_IV_FLOW_HEADTITLE 71103 @@ -127,6 +129,8 @@ #define IDC_IV_FLOW_RARMSUBTRACTFULL 71148 #define IDC_IV_FLOW_RARMADDFULL 71149 +#define IDC_IV_FLOW_SHOWBUTTON 71150 + #define IDC_IV_FLOW_BACKGROUND 71199 #define IDC_ABG_TITLE 71201 @@ -137,4 +141,6 @@ #define IDC_TEST_PH 71206 #define IDC_TEST_RESET 71207 +#define IDC_TEST_SHOWBUTTON 71208 + #define IDC_ABG_BACKGROUND 71299 diff --git a/addons/hypothermia/XEH_preInit.sqf b/addons/hypothermia/XEH_preInit.sqf index 29cf1d60f..351cb6f8b 100644 --- a/addons/hypothermia/XEH_preInit.sqf +++ b/addons/hypothermia/XEH_preInit.sqf @@ -6,13 +6,11 @@ PREP_RECOMPILE_START; #include "XEH_PREP.hpp" PREP_RECOMPILE_END; -if (isServer) then { - // Decrease of 0.7C for each degree of lattitude gained. Middle lattitudes between 20N and 20S have average temperatures of 27C, everything decreases from there. - private _mapPosition = if (count([worldName] call ACEFUNC(common,getMapData)) != 0) then { abs([worldName] call ACEFUNC(common,getMapData) select 0) } else { 25 }; - private _mapHighTemperature = if ((_mapPosition - 20) > 0) then { 27 + (-0.7 * (_mapPosition - 27)) } else { 27 }; +// Decrease of 0.7C for each degree of lattitude gained. Middle lattitudes between 20N and 20S have average temperatures of 27C, everything decreases from there. +private _mapPosition = if (count([worldName] call ACEFUNC(common,getMapData)) != 0) then { abs([worldName] call ACEFUNC(common,getMapData) select 0) } else { 25 }; +private _mapHighTemperature = if ((_mapPosition - 20) > 0) then { 27 + (-0.7 * (_mapPosition - 27)) } else { 27 }; - GVAR(positionTemperature) = [_mapPosition, _mapHighTemperature]; -}; +GVAR(positionTemperature) = [_mapPosition, _mapHighTemperature]; #define CBA_SETTINGS_CAT "KAT - ADV Medical: Hypothermia" diff --git a/addons/pharma/XEH_preInit.sqf b/addons/pharma/XEH_preInit.sqf index 396a9c7bc..d949efa8a 100644 --- a/addons/pharma/XEH_preInit.sqf +++ b/addons/pharma/XEH_preInit.sqf @@ -36,6 +36,15 @@ PREP_RECOMPILE_END; true ] call CBA_Settings_fnc_init; +[ + QGVAR(IVflowControl), + "CHECKBOX", + [LLSTRING(SETTING_IV_FLOW_CONTROL),LLSTRING(SETTING_IV_FLOW_CONTROL_DESC)], + [CBA_SETTINGS_CAT, ELSTRING(GUI,SubCategory_Basic)], + [true], + true +] call CBA_Settings_fnc_init; + [ QGVAR(IVdropEnable), "CHECKBOX", diff --git a/addons/pharma/functions/fnc_fullHealLocal.sqf b/addons/pharma/functions/fnc_fullHealLocal.sqf index 106362ffc..9e6d969f3 100644 --- a/addons/pharma/functions/fnc_fullHealLocal.sqf +++ b/addons/pharma/functions/fnc_fullHealLocal.sqf @@ -28,16 +28,28 @@ TRACE_1("fullHealLocal",_patient); GVAR(cardiacArrestBleedRate) = ACEGVAR(medical,const_minCardiacOutput) * EGVAR(circulation,cardiacArrestBleedRate); _patient setVariable [QGVAR(alphaAction), 1, true]; + _patient setVariable [QGVAR(IV), [0,0,0,0,0,0], true]; -_patient setVariable [QGVAR(IVflow), [0,0,0,0,0,0], true]; + +if (GVAR(RequireInsIV) && GVAR(IVflowControl)) then { + _patient setVariable [QGVAR(IVflow), [0,0,0,0,0,0], true]; +} else { + _patient setVariable [QGVAR(IVflow), [1,1,1,1,1,1], true]; +}; + _patient setVariable [QGVAR(IVpfh), [0,0,0,0,0,0], true]; _patient setVariable [QGVAR(active), false, true]; _patient setVariable [QGVAR(IVPharma_PFH), nil, true]; + +_patient setVariable [QGVAR(IVmenuActive), false, true]; + _patient setVariable [QGVAR(externalPh), 0, true]; _patient setVariable [QGVAR(pH), 0, true]; + _patient setVariable [QGVAR(kidneyFail), false, true]; _patient setVariable [QGVAR(kidneyArrest), false, true]; _patient setVariable [QGVAR(kidneyPressure), false, true]; + _patient setVariable [QGVAR(coagulationFactor), missionNamespace getVariable [QGVAR(coagulation_factor_count), 30], true]; /// Clear Stamina & weapon sway diff --git a/addons/pharma/stringtable.xml b/addons/pharma/stringtable.xml index f2a240705..0c6a25acd 100644 --- a/addons/pharma/stringtable.xml +++ b/addons/pharma/stringtable.xml @@ -1177,6 +1177,12 @@ Desativado, por padrão. Quando ativado, você precisará inserir IV/IO primeiro antes de poder retirar sangue de alguém. \nSe desativado, você pode retirar sem ele. Standaard vals. Wanneer waar moet er eerst een IV/IO toegediend worden voordat je bloed kan optrekken. \nWanneer vals is dit niet vereist. + + Enable IV/IO Flow Control + + + Enables the IV/IO flow control menu which gives the medic fine control over the volume running through the active line + Reorientation slap sound Dźwięk przy cuceniu