Medical GUI - Add outline to selected body part in Medical Menu (#9471)

* Add functionality to show selected body part on body image

* Add controls for patient information display

* Receive selected body part through argument

* Improve selected check

* Add body part outline textures

* Second pass at outline textures

* Third pass at outline textures

* Add setting for outline color

* Fix capitalization

Co-authored-by: Grim <69561145+LinkIsGrim@users.noreply.github.com>

* Fix capitalization

Co-authored-by: Grim <69561145+LinkIsGrim@users.noreply.github.com>

---------

Co-authored-by: Grim <69561145+LinkIsGrim@users.noreply.github.com>
This commit is contained in:
amsteadrayle 2023-10-11 05:25:28 -04:00 committed by GitHub
parent c407aebe6a
commit 008cd5a851
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
13 changed files with 89 additions and 11 deletions

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -45,7 +45,7 @@ if (isNull _display) then {
// Update body image
private _ctrlBodyImage = _display displayCtrl IDC_BODY_GROUP;
[_ctrlBodyImage, _target] call FUNC(updateBodyImage);
[_ctrlBodyImage, _target, _selectionN] call FUNC(updateBodyImage);
// Update injury list
private _ctrlInjuries = _display displayCtrl IDC_INJURIES;

View File

@ -40,7 +40,7 @@ private _ctrlInjuries = _display displayCtrl IDC_INJURIES;
// Update body image
private _ctrlBodyImage = _display displayCtrl IDC_BODY_GROUP;
[_ctrlBodyImage, GVAR(target)] call FUNC(updateBodyImage);
[_ctrlBodyImage, GVAR(target), GVAR(selectedBodyPart)] call FUNC(updateBodyImage);
// Update activity and quick view logs
private _ctrlActivityLog = _display displayCtrl IDC_ACTIVITY;

View File

@ -6,17 +6,18 @@
* Arguments:
* 0: Body image controls group <CONTROL>
* 1: Target <OBJECT>
* 2: Body part <NUMBER>
*
* Return Value:
* None
*
* Example:
* [CONTROL, _target] call ace_medical_gui_fnc_updateBodyImage
* [CONTROL, _target, 0] call ace_medical_gui_fnc_updateBodyImage
*
* Public: No
*/
params ["_ctrlGroup", "_target"];
params ["_ctrlGroup", "_target", "_selectionN"];
// Get tourniquets, damage, and blood loss for target
private _tourniquets = GET_TOURNIQUETS(_target);
@ -34,7 +35,12 @@ private _bodyPartBloodLoss = [0, 0, 0, 0, 0, 0];
} forEach GET_OPEN_WOUNDS(_target);
{
_x params ["_bodyPartIDC", ["_tourniquetIDC", -1], ["_fractureIDC", -1]];
_x params ["_bodyPartIDC", "_selectedIDC", ["_tourniquetIDC", -1], ["_fractureIDC", -1]];
private _selected = _forEachIndex == _selectionN;
private _ctrlSelected = _ctrlGroup controlsGroupCtrl _selectedIDC;
_ctrlSelected ctrlSetTextColor GVAR(bodypartOutlineColor);
_ctrlSelected ctrlShow _selected;
// Show or hide the tourniquet icon
if (_tourniquetIDC != -1) then {
@ -92,10 +98,10 @@ private _bodyPartBloodLoss = [0, 0, 0, 0, 0, 0];
private _ctrlBodyPart = _ctrlGroup controlsGroupCtrl _bodyPartIDC;
_ctrlBodyPart ctrlSetTextColor _bodyPartColor;
} forEach [
[IDC_BODY_HEAD],
[IDC_BODY_TORSO],
[IDC_BODY_ARMLEFT, IDC_BODY_ARMLEFT_T, IDC_BODY_ARMLEFT_B],
[IDC_BODY_ARMRIGHT, IDC_BODY_ARMRIGHT_T, IDC_BODY_ARMRIGHT_B],
[IDC_BODY_LEGLEFT, IDC_BODY_LEGLEFT_T, IDC_BODY_LEGLEFT_B],
[IDC_BODY_LEGRIGHT, IDC_BODY_LEGRIGHT_T, IDC_BODY_LEGRIGHT_B]
[IDC_BODY_HEAD, IDC_BODY_HEAD_S],
[IDC_BODY_TORSO, IDC_BODY_TORSO_S],
[IDC_BODY_ARMLEFT, IDC_BODY_ARMLEFT_S, IDC_BODY_ARMLEFT_T, IDC_BODY_ARMLEFT_B],
[IDC_BODY_ARMRIGHT, IDC_BODY_ARMRIGHT_S, IDC_BODY_ARMRIGHT_T, IDC_BODY_ARMRIGHT_B],
[IDC_BODY_LEGLEFT, IDC_BODY_LEGLEFT_S, IDC_BODY_LEGLEFT_T, IDC_BODY_LEGLEFT_B],
[IDC_BODY_LEGRIGHT, IDC_BODY_LEGRIGHT_S, IDC_BODY_LEGRIGHT_T, IDC_BODY_LEGRIGHT_B]
];

View File

@ -82,6 +82,32 @@ class GVAR(BodyImage): RscControlsGroupNoScrollbars {
idc = IDC_BODY_LEGRIGHT_T;
text = QPATHTOF(data\body_image\leg_right_t.paa);
};
class HeadS: Background {
idc = IDC_BODY_HEAD_S;
text = QPATHTOF(data\body_image\head_s.paa);
colorText[] = {1.0, 1.0, 1.0, 1.0};
show = 0;
};
class TorsoS: HeadS {
idc = IDC_BODY_TORSO_S;
text = QPATHTOF(data\body_image\torso_s.paa);
};
class ArmLeftS: HeadS {
idc = IDC_BODY_ARMLEFT_S;
text = QPATHTOF(data\body_image\arm_left_s.paa);
};
class ArmRightS: HeadS {
idc = IDC_BODY_ARMRIGHT_S;
text = QPATHTOF(data\body_image\arm_right_s.paa);
};
class LegLeftS: HeadS {
idc = IDC_BODY_LEGLEFT_S;
text = QPATHTOF(data\body_image\leg_left_s.paa);
};
class LegRightS: HeadS {
idc = IDC_BODY_LEGRIGHT_S;
text = QPATHTOF(data\body_image\leg_right_s.paa);
};
};
};
@ -584,6 +610,30 @@ class RscTitles {
w = QUOTE(POS_W(8.5));
h = QUOTE(POS_H(8.5));
};
class HeadS: HeadS {
w = QUOTE(POS_W(8.5));
h = QUOTE(POS_H(8.5));
};
class TorsoS: TorsoS {
w = QUOTE(POS_W(8.5));
h = QUOTE(POS_H(8.5));
};
class ArmLeftS: ArmLeftS {
w = QUOTE(POS_W(8.5));
h = QUOTE(POS_H(8.5));
};
class ArmRightS: ArmRightS {
w = QUOTE(POS_W(8.5));
h = QUOTE(POS_H(8.5));
};
class LegLeftS: LegLeftS {
w = QUOTE(POS_W(8.5));
h = QUOTE(POS_H(8.5));
};
class LegRightS: LegRightS {
w = QUOTE(POS_W(8.5));
h = QUOTE(POS_H(8.5));
};
};
};
class InjuriesLabel: RscText {

View File

@ -127,6 +127,15 @@ private _categoryColors = [ELSTRING(medical,Category), format ["| %1 |", LELSTRI
true // isGlobal
] call CBA_fnc_addSetting;
[
QGVAR(bodyPartOutlineColor),
"COLOR",
[LSTRING(bodyPartOutlineColor_DisplayName), LSTRING(bodyPartOutlineColor_Description)],
[ELSTRING(medical,Category), LSTRING(SubCategory)],
[1.00, 1.00, 1.00, 1],
false
] call CBA_fnc_addSetting;
[
QGVAR(peekMedicalInfoReleaseDelay),
"TIME",

View File

@ -68,6 +68,13 @@
#define IDC_BODY_ARMRIGHT_B 6060
#define IDC_BODY_LEGLEFT_B 6065
#define IDC_BODY_LEGRIGHT_B 6070
#define IDC_BODY_GROUP_S 6075
#define IDC_BODY_HEAD_S 6080
#define IDC_BODY_TORSO_S 6085
#define IDC_BODY_ARMLEFT_S 6090
#define IDC_BODY_ARMRIGHT_S 6095
#define IDC_BODY_LEGLEFT_S 6100
#define IDC_BODY_LEGRIGHT_S 6105
#define IDC_TRIAGE_STATUS 7000
#define IDC_TRIAGE_SELECT 7100

View File

@ -1305,6 +1305,12 @@
<German>Zeigen Sie das erlittene Trauma in der Verletzungsliste an.</German>
<Korean>부상 목록에 발생한 외상을 표시합니다.</Korean>
</Key>
<Key ID="STR_ACE_Medical_GUI_bodyPartOutlineColor_DisplayName">
<English>Body Part Outline Color</English>
</Key>
<Key ID="STR_ACE_Medical_GUI_bodyPartOutlineColor_Description">
<English>Color of outline around selected body part.</English>
</Key>
<Key ID="STR_ACE_Medical_GUI_traumaSustained1">
<English>Minor Trauma</English>
<Portuguese>Traumatismo Leve</Portuguese>