Add medical menu

This commit is contained in:
Glowbal 2016-07-15 12:23:26 +02:00
parent ddb4ef42f3
commit 62f84efb9b
47 changed files with 2175 additions and 3 deletions

View File

@ -0,0 +1,33 @@
class ACE_Settings {
class GVAR(allow) {
displayName = CSTRING(allow);
description = CSTRING(allow_Descr);
value = 1;
typeName = "SCALAR";
values[] = {ECSTRING(common,Disabled), ECSTRING(common,Enabled), ECSTRING(common,VehiclesOnly)};
category = ECSTRING(medical,Category_Medical);
};
class GVAR(useMenu) {
displayName = CSTRING(useMenu);
description = CSTRING(useMenu_Descr);
value = 0;
typeName = "SCALAR";
values[] = {ECSTRING(common,Disabled), ECSTRING(common,Enabled), ECSTRING(common,VehiclesOnly)};
isClientSettable = 1;
category = ECSTRING(medical,Category_Medical);
};
class GVAR(openAfterTreatment) {
displayName = CSTRING(openAfterTreatment);
description = CSTRING(openAfterTreatment_Descr);
typeName = "BOOL";
value = 1;
isClientSettable = 1;
category = ECSTRING(medical,Category_Medical);
};
class GVAR(maxRange) {
//for ref: 3d interaction (MEDICAL_ACTION_DISTANCE) is 1.75
value = 3;
typeName = "SCALAR";
category = ECSTRING(medical,Category_Medical);
};
};

View File

@ -1,3 +1,4 @@
class Extended_PreStart_EventHandlers {
class ADDON {
init = QUOTE(call COMPILE_FILE(XEH_preStart));
@ -9,3 +10,9 @@ class Extended_PreInit_EventHandlers {
init = QUOTE(call COMPILE_FILE(XEH_preInit));
};
};
class Extended_PostInit_EventHandlers {
class ADDON {
init = QUOTE(call COMPILE_FILE(XEH_postInit));
};
};

View File

@ -0,0 +1,71 @@
class CfgVehicles {
class ACE_Module;
class ACE_moduleMedicalMenuSettings: ACE_Module {
scope = 2;
displayName = CSTRING(module_DisplayName);
icon = QPATHTOEF(medical,UI\Icon_Module_Medical_ca.paa);
category = "ACE_medical";
function = QUOTE(DFUNC(module));
functionPriority = 1;
isGlobal = 0;
isSingular = 1;
isTriggerActivated = 0;
author = ECSTRING(common,ACETeam);
class Arguments {
class allow {
displayName = CSTRING(allow);
description = CSTRING(allow_Descr);
typeName = "NUMBER";
class values {
class disable {
name = ECSTRING(common,Disabled);
value = 0;
};
class enable {
name = ECSTRING(common,Enabled);
value = 1;
default = 1;
};
class VehiclesOnly {
name = ECSTRING(common,VehiclesOnly);
value = 2;
};
};
};
};
class ModuleDescription {
description = CSTRING(module_Desc);
sync[] = {};
};
};
class Man;
class CAManBase: Man {
class ACE_SelfActions {
class Medical_Menu {
displayName = CSTRING(OpenMenu);
runOnHover = 0;
exceptions[] = {"isNotInside"};
condition = QUOTE([ARR_2(ACE_player,_target)] call FUNC(canOpenMenu));
statement = QUOTE([_target] call DFUNC(openMenu));
icon = QPATHTOEF(medical,UI\icons\medical_cross.paa);
};
};
class ACE_Actions {
// Create a consolidates medical menu for treatment while boarded
class ACE_MainActions {
class Medical_Menu {
displayName = CSTRING(OpenMenu);
runOnHover = 0;
exceptions[] = {"isNotInside"};
condition = QUOTE([ARR_2(ACE_player,_target)] call FUNC(canOpenMenu));
statement = QUOTE([_target] call DFUNC(openMenu));
icon = QPATHTOEF(medical,UI\icons\medical_cross.paa);
};
};
};
};
};

View File

@ -0,0 +1,11 @@
ace_medical_menu
===============
Provides the CSE medical menu for the advanced medical system.
## Maintainers
The people responsible for merging changes to this component or answering potential questions.
- [Glowbal](https://github.com/Glowbal)

View File

@ -0,0 +1,18 @@
PREP(onMenuOpen);
PREP(onMenuClose);
PREP(openMenu);
PREP(canOpenMenu);
PREP(updateIcons);
PREP(updateUIInfo);
PREP(handleUI_DisplayOptions);
PREP(handleUI_dropDownTriageCard);
PREP(getTreatmentOptions);
PREP(updateActivityLog);
PREP(updateQuickViewLog);
PREP(updateBodyImage);
PREP(updateInformationLists);
PREP(setTriageStatus);
PREP(collectActions);
PREP(module);

View File

@ -0,0 +1,37 @@
#include "script_component.hpp"
if (!hasInterface) exitWith {};
GVAR(MenuPFHID) = -1;
GVAR(lastOpenedOn) = -1;
GVAR(pendingReopen) = false;
["ace_treatmentSucceded", {
if (GVAR(openAfterTreatment) && {GVAR(pendingReopen)}) then {
GVAR(pendingReopen) = false;
[{
[GVAR(INTERACTION_TARGET)] call FUNC(openMenu);
}, []] call CBA_fnc_execNextFrame;
};
}] call CBA_fnc_addEventHandler;
["ACE3 Common", QGVAR(displayMenuKeyPressed), localize LSTRING(DisplayMenuKey),
{
private _target = cursorTarget;
if (!((_target isKindOf "CAManBase") && {[ACE_player, _target] call FUNC(canOpenMenu)})) then {_target = ACE_player};
// Conditions: canInteract
if !([ACE_player, _target, ["isNotInside"]] call EFUNC(common,canInteractWith)) exitWith {false};
if !([ACE_player, _target] call FUNC(canOpenMenu)) exitWith {false};
// Statement
[_target] call FUNC(openMenu);
false
},
{
if (CBA_missionTime - GVAR(lastOpenedOn) > 0.5) exitWith {
[objNull] call FUNC(openMenu);
};
false
},
[35, [false, false, false]], false, 0] call CBA_fnc_addKeybind;

View File

@ -4,4 +4,11 @@ ADDON = false;
#include "XEH_PREP.hpp"
GVAR(INTERACTION_TARGET) = objNull;
GVAR(actionsOther) = [];
GVAR(actionsSelf) = [];
GVAR(selectedBodyPart) = 0;
call FUNC(collectActions);
ADDON = true;

View File

@ -6,12 +6,19 @@ class CfgPatches {
units[] = {};
weapons[] = {};
requiredVersion = REQUIRED_VERSION;
requiredAddons[] = {"ace_medical", "ace_medical_ui", "ace_medical_treatment"};
requiredAddons[] = {"ace_medical_treatment"};
author = ECSTRING(common,ACETeam);
authors[] = {""};
authors[] = {"Glowbal"};
url = ECSTRING(main,URL);
VERSION_CONFIG;
};
};
#include "CfgEventHandlers.hpp"
#include "ui\menu.hpp"
#include "ACE_Settings.hpp"
#include "CfgVehicles.hpp"
class ACE_newEvents {
Medical_onMenuOpen = "ace_medicalMenuOpened";
};

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

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

@ -0,0 +1,25 @@
/*
* Author: Glowbal
* Check if ACE_player can Open the medical menu
*
* Arguments:
* 0: Caller <OBJECT>
* 1: Target <OBJECT>
*
* Return Value:
* Can open <BOOL>
*
* Example:
* [player, cursorTarget] call ace_medical_menu_fnc_canOpenMenu
*
* Public: No
*/
#include "script_component.hpp"
params ["_caller", "_target"];
(alive _caller)
&& {!isNull _target}
&& {((_caller distance _target) < GVAR(maxRange)) || {(vehicle _caller) == (vehicle _target)}} //for now, ignore range when in same vehicle
&& {(GVAR(allow) == 1) || {(GVAR(allow) == 2) && {(vehicle _caller != _caller) || {vehicle _target != _target}}}}
&& {(GVAR(useMenu) == 1) || {(GVAR(useMenu) == 2) && {(vehicle _caller != _caller) || {vehicle _target != _target}}}}

View File

@ -0,0 +1,63 @@
/*
* Author: Glowbal
* Collect treatment actions from medical config
*
* Arguments:
* None
*
* Return Value:
* None
*
* Example:
* [] call ace_medical_menu_fnc_collectActions
*
* Public: No
*/
#include "script_component.hpp"
private _configBasic = (configFile >> "ACE_Medical_Treatments" >> "Basic");
private _configAdvanced = (configFile >> "ACE_Medical_Treatments" >> "Advanced");
private _fnc_compileActionsLevel = {
params ["_config"];
private _actions = [];
{
if (isClass _x) then {
private _displayName = getText (_x >> "displayName");
private _category = getText (_x >> "category");
private _condition = format[QUOTE([ARR_4(ACE_player, GVAR(INTERACTION_TARGET), EGVAR(medical,SELECTIONS) select GVAR(selectedBodyPart), '%1')] call DEFUNC(medical,canTreatCached)), configName _x];
private _statement = format[QUOTE([ARR_4(ACE_player, GVAR(INTERACTION_TARGET), EGVAR(medical,SELECTIONS) select GVAR(selectedBodyPart), '%1')] call DEFUNC(medical,treatment)), configName _x];
_actions pushBack [_displayName, _category, compile _condition, compile _statement];
};
nil
} count ("true" configClasses _config);
_actions;
};
GVAR(actionsBasic) = [_configBasic] call _fnc_compileActionsLevel;
GVAR(actionsAdvanced) = [_configAdvanced] call _fnc_compileActionsLevel;
//Manually add the drag actions, if dragging exists.
if (["ace_dragging"] call EFUNC(common,isModLoaded)) then {
private _condition = {
(ACE_player != GVAR(INTERACTION_TARGET)) && {[ACE_player, GVAR(INTERACTION_TARGET)] call EFUNC(dragging,canDrag)}
};
private _statement = {
GVAR(pendingReopen) = false; //No medical_treatmentSuccess event after drag, so don't want this true
[ACE_player, GVAR(INTERACTION_TARGET)] call EFUNC(dragging,startDrag);
};
GVAR(actionsBasic) pushBack [localize ELSTRING(dragging,Drag), "drag", _condition, _statement];
GVAR(actionsAdvanced) pushBack [localize ELSTRING(dragging,Drag), "drag", _condition, _statement];
private _condition = {
(ACE_player != GVAR(INTERACTION_TARGET)) && {[ACE_player, GVAR(INTERACTION_TARGET)] call EFUNC(dragging,canCarry)}
};
private _statement = {
GVAR(pendingReopen) = false; //No medical_treatmentSuccess event after drag, so don't want this true
[ACE_player, GVAR(INTERACTION_TARGET)] call EFUNC(dragging,startCarry);
};
GVAR(actionsBasic) pushBack [localize ELSTRING(dragging,Carry), "drag", _condition, _statement];
GVAR(actionsAdvanced) pushBack [localize ELSTRING(dragging,Carry), "drag", _condition, _statement];
};

View File

@ -0,0 +1,40 @@
/*
* Author: Glowbal
* Grab available treatment options for given category
*
* Arguments:
* 0: The medic <OBJECT>
* 1: The patient <OBJECT>
* 2: Category name <STRING>
*
* Return Value:
* Available actions <ARRAY>
*
* Exmaple:
* [ACE_player, poor_dude, "some category"] call ace_medical_menu_fnc_getTreatmentOptions
*
* Public: No
*/
#include "script_component.hpp"
params ["_player", "_target", "_name"];
if (!([ACE_player, _target, ["isNotInside"]] call EFUNC(common,canInteractWith))) exitWith {[]};
private _actions = if (EGVAR(medical,level) == 2) then {
GVAR(actionsAdvanced);
} else {
GVAR(actionsBasic);
};
private _collectedActions = [];
private _bodyPart = EGVAR(medical,SELECTIONS) select GVAR(selectedBodyPart);
{
_x params ["", "_currentCategory", "_currentCondition"];
if (_name == _currentCategory && {call _currentCondition}) then {
_collectedActions pushBack _x;
};
nil
} count _actions;
_collectedActions;

View File

@ -0,0 +1,112 @@
/*
* Author: Glowbal
* Display the available treatment options in category
*
* Arguments:
* 0: Category name <STRING>
*
* Return Value:
* None
*
* Example:
* ["some category"] call ace_medical_menu_fnc_handleUI_DisplayOptions
*
* Public: No
*/
#include "script_component.hpp"
#define START_IDC 20
#define END_IDC 27
#define AMOUNT_OF_ENTRIES (count _entries)
if (!hasInterface) exitWith{};
private ["_entries", "_display", "_newTarget", "_ctrl", "_code"];
params ["_name"];
disableSerialization;
_display = uiNamespace getVariable QGVAR(medicalMenu);
if (isNil "_display") exitWith {}; // no valid dialog present
if (_name isEqualTo "toggle") exitWith {
_newTarget = ACE_player;
//If we are on the player, and only if our old target is still valid, switch to it:
if ((GVAR(INTERACTION_TARGET) == ACE_player) &&
{[ACE_player, GVAR(INTERACTION_TARGET_PREVIOUS), ["isNotInside"]] call EFUNC(common,canInteractWith)} &&
{[ACE_player, GVAR(INTERACTION_TARGET_PREVIOUS)] call FUNC(canOpenMenu)}) then {
_newTarget = GVAR(INTERACTION_TARGET_PREVIOUS);
};
GVAR(INTERACTION_TARGET_PREVIOUS) = GVAR(INTERACTION_TARGET);
closeDialog 0;
[{
[_this select 0] call FUNC(openMenu);
}, [_newTarget], 0.1] call CBA_fnc_waitAndExecute;
};
// Clean the dropdown options list from all actions
for [{_x = START_IDC}, {_x <= END_IDC}, {_x = _x + 1}] do {
_ctrl = (_display displayCtrl (_x));
_ctrl ctrlSetText "";
_ctrl ctrlShow false;
_ctrl ctrlSetEventHandler ["ButtonClick",""];
_ctrl ctrlSetTooltip "";
_ctrl ctrlCommit 0;
};
GVAR(LatestDisplayOptionMenu) = _name;
// The triage card has no options available
lbClear 212;
if (_name isEqualTo "triage") exitWith {
ctrlEnable [212, true];
private ["_log", "_triageCardTexts", "_message"];
_log = GVAR(INTERACTION_TARGET) getVariable [QEGVAR(medical,triageCard), []];
_triageCardTexts = [];
{
_x params ["_item", "_amount", "_time"];
_message = _item;
if (isClass(configFile >> "CfgWeapons" >> _item)) then {
_message = getText(configFile >> "CfgWeapons" >> _item >> "DisplayName");
} else {
if (isLocalized _message) then {
_message = localize _message;
};
};
_triageCardTexts pushBack format["%1x - %2 (%3m)", _amount, _message, round((CBA_missionTime - _time) / 60)];
nil;
} count _log;
if (count _triageCardTexts == 0) exitWith {
lbAdd [212,(localize ELSTRING(medical,TriageCard_NoEntry))];
};
{
lbAdd [212,_x];
nil;
}count _triageCardTexts;
};
ctrlEnable [212, false];
_entries = [ACE_player, GVAR(INTERACTION_TARGET), _name] call FUNC(getTreatmentOptions);
{
//player sidechat format["TRIGGERED: %1",_x];
if (_forEachIndex > END_IDC) exitWith {};
_ctrl = (_display displayCtrl (START_IDC + _forEachIndex));
if (!(_forEachIndex > AMOUNT_OF_ENTRIES)) then {
_ctrl ctrlSetText (_x select 0);
_code = format ["ace_medical_menu_pendingReopen = true; call %1;", (_x select 3)];
_ctrl ctrlSetEventHandler ["ButtonClick", _code];
_ctrl ctrlSetTooltip (_x select 0); // TODO implement
_ctrl ctrlShow true;
} else {
_ctrl ctrlSetText "";
_ctrl ctrlSetEventHandler ["ButtonClick", ""];
};
_ctrl ctrlCommit 0;
} forEach _entries;

View File

@ -0,0 +1,33 @@
/*
* Author: Glowbal
* Handle the triage card display
*
* Arguments:
* None
*
* Return Value:
* None
*
* Example:
* [] call ace_medical_menu_fnc_handleUI_dropDownTriageCard
*
* Public: No
*/
#include "script_component.hpp"
disableSerialization;
private _display = uiNamespace getVariable QGVAR(medicalMenu);
private _pos = [0, 0, 0, 0];
private _currentPos = ctrlPosition (_display displayCtrl 2002);
_currentPos params ["_currentPosX", "_currentPosY"];
if (_currentPosX == 0 && _currentPosY == 0) then {
_pos = ctrlPosition (_display displayCtrl 2001);
};
for "_idc" from 2002 to 2006 step 1 do {
_pos set [1, (_pos select 1) + (_pos select 3)];
private _ctrl = _display displayCtrl _idc;
_ctrl ctrlSetPosition _pos;
_ctrl ctrlCommit 0;
};

View File

@ -0,0 +1,22 @@
/*
* Author: Glowbal
* Module for adjusting the medical menu settings
*
* Arguments:
* 0: The module logic <LOGIC>
* 1: units <ARRAY>
* 2: activated <BOOL>
*
* Return Value:
* None <NIL>
*
* Public: No
*/
#include "script_component.hpp"
params ["_logic", "", "_activated"];
if !(_activated) exitWith {};
[_logic, QGVAR(allow), "allow"] call EFUNC(common,readSettingFromModule);

View File

@ -0,0 +1,22 @@
/*
* Author: joko // Jonas
* Handle medical menu closed
*
* Arguments:
* None
*
* Return Value:
* None
*
* Example:
* call ace_medical_menu_fnc_onMenuClosed
*
* Public: No
*/
#include "script_component.hpp"
if (EGVAR(interact_menu,menuBackground)==1) then {[QGVAR(id), false] call EFUNC(common,blurScreen);};
if (EGVAR(interact_menu,menuBackground)==2) then {(uiNamespace getVariable [QEGVAR(interact_menu,menuBackground), displayNull]) closeDisplay 0;};
[GVAR(MenuPFHID)] call CBA_fnc_removePerFrameHandler;
GVAR(MenuPFHID) = -1;

View File

@ -0,0 +1,88 @@
/*
* Author: Glowbal
* Handle medical menu opened
*
* Arguments:
* 0: Medical Menu display <DISPLAY>
*
* Return Value:
* None
*
* Example:
* [medical_menu] call ace_medical_menu_fnc_onMenuOpen
*
* Public: No
*/
#include "script_component.hpp"
#define MAX_DISTANCE 10
params ["_display"];
if (isNil "_display") exitWith {};
if (EGVAR(interact_menu,menuBackground)==1) then {[QGVAR(id), true] call EFUNC(common,blurScreen);};
if (EGVAR(interact_menu,menuBackground)==2) then {0 cutRsc[QEGVAR(interact_menu,menuBackground), "PLAIN", 1, false];};
if (isNil QGVAR(LatestDisplayOptionMenu)) then {
GVAR(LatestDisplayOptionMenu) = "triage";
} else {
if (GVAR(LatestDisplayOptionMenu) == "toggle") then {
GVAR(LatestDisplayOptionMenu) = "triage";
GVAR(INTERACTION_TARGET) = GVAR(INTERACTION_TARGET_PREVIOUS);
};
};
private _target = GVAR(INTERACTION_TARGET);
if (isNil QGVAR(INTERACTION_TARGET_PREVIOUS)) then {
GVAR(INTERACTION_TARGET_PREVIOUS) = _target;
};
[GVAR(LatestDisplayOptionMenu)] call FUNC(handleUI_DisplayOptions);
disableSerialization;
[_target, _display] call FUNC(updateUIInfo);
(_display displayCtrl 11) ctrlSetTooltip localize LSTRING(VIEW_TRIAGE_CARD);
(_display displayCtrl 12) ctrlSetTooltip localize LSTRING(EXAMINE_PATIENT);
(_display displayCtrl 13) ctrlSetTooltip localize LSTRING(BANDAGE_FRACTURES);
(_display displayCtrl 14) ctrlSetTooltip localize LSTRING(MEDICATION);
(_display displayCtrl 15) ctrlSetTooltip localize LSTRING(AIRWAY_MANAGEMENT);
(_display displayCtrl 16) ctrlSetTooltip localize LSTRING(ADVANCED_TREATMENT);
(_display displayCtrl 17) ctrlSetTooltip localize LSTRING(DRAG_CARRY);
(_display displayCtrl 18) ctrlSetTooltip localize LSTRING(TOGGLE_SELF);
(_display displayCtrl 301) ctrlSetTooltip localize LSTRING(SELECT_HEAD);
(_display displayCtrl 302) ctrlSetTooltip localize LSTRING(SELECT_TORSO);
(_display displayCtrl 303) ctrlSetTooltip localize LSTRING(SELECT_ARM_R);
(_display displayCtrl 304) ctrlSetTooltip localize LSTRING(SELECT_ARM_L);
(_display displayCtrl 305) ctrlSetTooltip localize LSTRING(SELECT_LEG_R);
(_display displayCtrl 306) ctrlSetTooltip localize LSTRING(SELECT_LEG_L);
(_display displayCtrl 2001) ctrlSetTooltip localize LSTRING(SELECT_TRIAGE_STATUS);
(_display displayCtrl 1) ctrlSetText format ["%1", [_target] call EFUNC(common,getName)];
setMousePosition [0.4, 0.4];
if (GVAR(MenuPFHID) != -1) exitWith {ERROR("PFID already running");};
GVAR(MenuPFHID) = [{
(_this select 0) params ["_display"];
if (isNull GVAR(INTERACTION_TARGET)) then {
GVAR(INTERACTION_TARGET) = ACE_player;
};
[GVAR(INTERACTION_TARGET), _display] call FUNC(updateUIInfo);
[GVAR(INTERACTION_TARGET)] call FUNC(updateIcons);
[GVAR(LatestDisplayOptionMenu)] call FUNC(handleUI_DisplayOptions);
//Check that it's valid to stay open:
if !(([ACE_player, GVAR(INTERACTION_TARGET), ["isNotInside"]] call EFUNC(common,canInteractWith)) && {[ACE_player, GVAR(INTERACTION_TARGET)] call FUNC(canOpenMenu)}) then {
closeDialog 314412;
//If we failed because of distance check, show UI message:
if ((ACE_player distance GVAR(INTERACTION_TARGET)) > GVAR(maxRange)) then {
[[ELSTRING(medical,DistanceToFar), [GVAR(INTERACTION_TARGET)] call EFUNC(common,getName)], 2] call EFUNC(common,displayTextStructured);
};
};
}, 0, [_display]] call CBA_fnc_addPerFrameHandler;
["ace_medicalMenuOpened", [ACE_player, _target]] call CBA_fnc_localEvent;

View File

@ -0,0 +1,34 @@
/*
* Author: Glowbal
* Open the medical menu for target
*
* Arguments:
* 0: Target <OBJECT>
*
* Return Value:
* If action was taken <BOOL>
*
* Example:
* [some_player] call ace_medical_menu_fnc_openMenu
*
* Public: No
*/
#include "script_component.hpp"
params ["_interactionTarget"];
if (dialog || {isNull _interactionTarget}) exitWith {
disableSerialization;
private _display = uiNamespace getVariable QGVAR(medicalMenu);
if (!isNil "_display") then {
closeDialog 314412;
};
};
GVAR(INTERACTION_TARGET) = _interactionTarget;
createDialog QGVAR(medicalMenu);
GVAR(lastOpenedOn) = CBA_missionTime;
true

View File

@ -0,0 +1,18 @@
/*
* Author: Glowbal
* Set the triage status of object
*
* Arguments:
* 0: Target <OBJECT>
* 1: Status <NUMBER>
*
* Return Value:
* None
*
* Public: No
*/
#include "script_component.hpp"
params ["_target", "_status"];
_target setVariable [QEGVAR(medical,triageLevel), _status, true];

View File

@ -0,0 +1,40 @@
/*
* Author: Glowbal
* Update the activity log
*
* Arguments:
* 0: display <DISPLAY>
* 1: log collection <ARRAY>
*
* Return Value:
* None
*
* Example:
* [some_display, log] call ace_medical_menu_fnc_updateActivityLog
*
* Public: No
*/
#include "script_component.hpp"
params ["_display", "_logs"];
private _logCtrl = _display displayCtrl 214;
lbClear _logCtrl;
{
_x params ["_message", "_moment", "", "_arguments"];
if (isLocalized _message) then {
_message = localize _message;
};
{
if (_x isEqualType "" && {isLocalized _x}) then {
_arguments set [_foreachIndex, localize _x];
};
} forEach _arguments;
_message = format ([_message] + _arguments);
_logCtrl lbAdd format ["%1 %2", _moment, _message];
nil
} count _logs;

View File

@ -0,0 +1,41 @@
/*
* Author: Glowbal
* Update the body image on the menu
*
* Arguments:
* 0: selection bloodloss <ARRAY>
* 1: damaged (array of bools) <ARRAY>
* 2: display <DISPLAY>
*
* Return Value:
* None
*
* Example:
* [0.3, some_display] call ace_medical_menu_fnc_updateBodyImage
*
* Public: No
*/
#include "script_component.hpp"
params ["_selectionBloodLoss", "_damaged", "_display"];
// Handle the body image coloring
private _availableSelections = [50, 51, 52, 53, 54, 55];
{
private _red = 1;
private _green = 1;
private _blue = 1;
if (_x > 0) then {
if (_damaged select _forEachIndex) then {
_green = (0.9 - _x) max 0;
_blue = _green;
} else {
_green = (0.9 - _x) max 0;
_red = _green;
//_blue = _green;
};
};
(_display displayCtrl (_availableSelections select _forEachIndex)) ctrlSetTextColor [_red, _green, _blue, 1.0];
} forEach _selectionBloodLoss;

View File

@ -0,0 +1,33 @@
/*
* Author: Glowbal
* Update the category icons
*
* Arguments:
* None
*
* Return Value:
* None
*
* Example:
* [] call ace_medical_menu_fnc_updateIcons
*
* Public: No
*/
#include "script_component.hpp"
#define START_IDC 111
#define END_IDC 118
disableSerialization;
private _display = uiNamespace getVariable QGVAR(medicalMenu);
private _options = ["triage" , "examine", "bandage", "medication", "airway", "advanced", "drag", "toggle"];
for "_idc" from START_IDC to END_IDC step 1 do {
private _amount = [ACE_player, GVAR(INTERACTION_TARGET), _options select (_idc - START_IDC)] call FUNC(getTreatmentOptions);
if ((count _amount) > 0 || _idc == START_IDC || _idc == END_IDC) then {
(_display displayCtrl _idc) ctrlSettextColor [1, 1, 1, 1];
} else {
(_display displayCtrl _idc) ctrlSettextColor [0.4, 0.4, 0.4, 1];
};
};

View File

@ -0,0 +1,36 @@
/*
* Author: Glowbal
* Update the treatment information list
*
* Arguments:
* 0: display <DISPLAY>
* 1: message collection <ARRAY>
* 2: injury collection <ARRAY>
*
* Return Value:
* None
*
* Public: No
*/
#include "script_component.hpp"
params ["_display", "_genericMessages", "_allInjuryTexts"];
private _lbCtrl = _display displayCtrl 213;
lbClear _lbCtrl;
{
_x params ["_add", "_color"];
_lbCtrl lbAdd _add;
_lbCtrl lbSetColor [_forEachIndex, _color];
} forEach _genericMessages;
private _amountOfGeneric = count _genericMessages;
{
_x params ["_add", "_color"];
_lbCtrl lbAdd _add;
_lbCtrl lbSetColor [_forEachIndex + _amountOfGeneric, _color];
} forEach _allInjuryTexts;
if (_allInjuryTexts isEqualTo []) then {
_lbCtrl lbAdd localize ELSTRING(medical,NoInjuriesBodypart);
};

View File

@ -0,0 +1,36 @@
/*
* Author: Glowbal
* Update the quick view log
*
* Arguments:
* 0: display <DISPLAY>
* 1: log collection <ARRAY>
*
* Return Value:
* None
*
* Example:
* [some_display, log] call ace_medical_menu_fnc_updateQuickViewLog
*
* Public: No
*/
#include "script_component.hpp"
params ["_display", "_logs"];
private _logCtrl = _display displayCtrl 215;
lbClear _logCtrl;
{
_x params ["_message", "_moment", "", "_arguments"];
{
if (_x isEqualType "" && {isLocalized _x}) then {
_arguments set [_foreachIndex, localize _x];
};
} forEach _arguments;
_message = format ([([_message, localize _message] select (isLocalized _message))] + _arguments);
_logCtrl lbAdd format ["%1 %2", _moment, _message];
nil
} count _logs;

View File

@ -0,0 +1,158 @@
/*
* Author: Glowbal
* Update all UI information in the medical menu
*
* Arguments:
* 0: target <OBJECT>
* 1: display <DISPLAY>
*
* Return Value:
* None
*
* Example:
* [some_player, some_display] call ace_medical_menu_fnc_updateUIInfo
*
* Public: No
*/
#include "script_component.hpp"
params ["_target", "_display"];
private["_allInjuryTexts", "_bandagedwounds", "_damaged", "_genericMessages", "_logs", "_openWounds", "_part", "_partText", "_pointDamage", "_selectionBloodLoss", "_selectionN", "_severity", "_totalIvVolume", "_triageStatus"];
if (isNil "_display" || {isNull _display}) exitWith {ERROR("No display");};
_selectionN = GVAR(selectedBodyPart);
if (_selectionN < 0 || {_selectionN > 5}) exitWith {};
_genericMessages = [];
_partText = [ELSTRING(medical,Head), ELSTRING(medical,Torso), ELSTRING(medical,LeftArm) ,ELSTRING(medical,RightArm) ,ELSTRING(medical,LeftLeg), ELSTRING(medical,RightLeg)] select _selectionN;
_genericMessages pushBack [localize _partText, [1, 1, 1, 1]];
if (_target getVariable [QEGVAR(medical,isBleeding), false]) then {
_genericMessages pushBack [localize ELSTRING(medical,Status_Bleeding), [1, 0.1, 0.1, 1]];
};
if (_target getVariable [QEGVAR(medical,hasLostBlood), 0] > 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 {
_genericMessages pushBack [localize ELSTRING(medical,Status_Tourniquet_Applied), [0.77, 0.51, 0.08, 1]];
};
if (_target getVariable [QEGVAR(medical,hasPain), false]) then {
_genericMessages pushBack [localize ELSTRING(medical,Status_Pain), [1, 1, 1, 1]];
};
_totalIvVolume = 0;
{
private "_value";
_value = _target getVariable _x;
if (!isNil "_value") then {
_totalIvVolume = _totalIvVolume + (_target getVariable [_x, 0]);
};
} count EGVAR(medical,IVBags);
if (_totalIvVolume >= 1) then {
_genericMessages pushBack [format [localize ELSTRING(medical,receivingIvVolume), floor _totalIvVolume], [1, 1, 1, 1]];
};
_damaged = [false, false, false, false, false, false];
_selectionBloodLoss = [0, 0, 0, 0, 0, 0];
_allInjuryTexts = [];
if ((EGVAR(medical,level) >= 2) && {([_target] call EFUNC(medical,hasMedicalEnabled))}) then {
_openWounds = _target getVariable [QEGVAR(medical,openWounds), []];
private "_amountOf";
{
_amountOf = _x select 3;
// Find how much this bodypart is bleeding
if (_amountOf > 0) then {
_damaged set [_x select 2, true];
_selectionBloodLoss set [_x select 2, (_selectionBloodLoss select (_x select 2)) + (20 * ((_x select 4) * _amountOf))];
if (_selectionN == (_x select 2)) then {
// Collect the text to be displayed for this injury [ Select injury class type definition - select the classname DisplayName (6th), amount of injuries for this]
if (_amountOf >= 1) then {
// TODO localization
_allInjuryTexts pushBack [format["%2x %1", (EGVAR(medical,AllWoundInjuryTypes) select (_x select 1)) select 6, ceil _amountOf], [1,1,1,1]];
} else {
// TODO localization
_allInjuryTexts pushBack [format["Partial %1", (EGVAR(medical,AllWoundInjuryTypes) select (_x select 1)) select 6], [1,1,1,1]];
};
};
};
} forEach _openWounds;
_bandagedwounds = _target getVariable [QEGVAR(medical,bandagedWounds), []];
{
_amountOf = _x select 3;
// Find how much this bodypart is bleeding
if !(_damaged select (_x select 2)) then {
_selectionBloodLoss set [_x select 2, (_selectionBloodLoss select (_x select 2)) + (20 * ((_x select 4) * _amountOf))];
};
if (_selectionN == (_x select 2)) then {
// Collect the text to be displayed for this injury [ Select injury class type definition - select the classname DisplayName (6th), amount of injuries for this]
if (_amountOf > 0) then {
if (_amountOf >= 1) then {
// TODO localization
_allInjuryTexts pushBack [format ["[B] %2x %1", (EGVAR(medical,AllWoundInjuryTypes) select (_x select 1)) select 6, ceil _amountOf], [0.88,0.7,0.65,1]];
} else {
// TODO localization
_allInjuryTexts pushBack [format ["[B] Partial %1", (EGVAR(medical,AllWoundInjuryTypes) select (_x select 1)) select 6], [0.88,0.7,0.65,1]];
};
};
};
} forEach _bandagedwounds;
} else {
// Add all bleeding from wounds on selection
_openWounds = _target getVariable [QEGVAR(medical,openWounds), []];
private "_amountOf";
{
_amountOf = _x select 3;
// Find how much this bodypart is bleeding
if (_amountOf > 0) then {
_damaged set [_x select 2, true];
_selectionBloodLoss set [_x select 2, (_selectionBloodLoss select (_x select 2)) + (20 * ((_x select 4) * _amountOf))];
};
} forEach _openWounds;
_bandagedwounds = _target getVariable [QEGVAR(medical,bandagedWounds), []];
{
_amountOf = _x select 3;
// Find how much this bodypart is bleeding
if !(_damaged select (_x select 2)) then {
_selectionBloodLoss set [_x select 2, (_selectionBloodLoss select (_x select 2)) + (20 * ((_x select 4) * _amountOf))];
};
} forEach _bandagedwounds;
private _bloodLossOnSelection = _selectionBloodLoss select _selectionN;
if (_bloodLossOnSelection > 0) then {
private _severity = switch (true) do {
case (_bloodLossOnSelection > 0.5): {localize ELSTRING(medical,HeavilyWounded)};
case (_bloodLossOnSelection > 0.1): {localize ELSTRING(medical,LightlyWounded)};
default {localize ELSTRING(medical,VeryLightlyWounded)};
};
private _part = localize ([
ELSTRING(medical,Head),
ELSTRING(medical,Torso),
ELSTRING(medical,LeftArm),
ELSTRING(medical,RightArm),
ELSTRING(medical,LeftLeg),
ELSTRING(medical,RightLeg)
] select _selectionN);
_allInjuryTexts pushBack [format ["%1 %2", _severity, toLower _part], [1,1,1,1]];
};
};
[_selectionBloodLoss, _damaged, _display] call FUNC(updateBodyImage);
[_display, _genericMessages, _allInjuryTexts] call FUNC(updateInformationLists);
[_display, _target getVariable [QEGVAR(medical,logFile_activity_view), []]] call FUNC(updateActivityLog);
[_display, _target getVariable [QEGVAR(medical,logFile_quick_view), []]] call FUNC(updateQuickViewLog);
private _triageStatus = [_target] call EFUNC(medical,getTriageStatus);
(_display displayCtrl 2000) ctrlSetText (_triageStatus select 0);
(_display displayCtrl 2000) ctrlSetBackgroundColor (_triageStatus select 2);

View File

@ -1 +1 @@
#include "\z\ace\addons\medical_menu\script_component.hpp"
#include "\z\ace\addons\medical_menu\script_component.hpp"

View File

@ -0,0 +1,610 @@
<?xml version="1.0" encoding="utf-8"?>
<Project name="ACE">
<Package name="Medical Menu">
<Key ID="STR_ACE_Medical_Menu_OpenMenu">
<English>Medical Menu</English>
<German>Sanitätsmenü</German>
<Polish>Menu medyczne</Polish>
<Portuguese>Menu médico</Portuguese>
<Russian>Медицинское меню</Russian>
<Spanish>Menú médico</Spanish>
<Czech>Zdravotnikcá nabídka</Czech>
<Italian>Menù Medico</Italian>
<French>Menu médical</French>
</Key>
<Key ID="STR_ACE_Medical_Menu_allow">
<English>Allow Medical Menu</English>
<German>Erlaube Sanitätsmenü</German>
<Polish>Akt. menu medyczne</Polish>
<Portuguese>Permitir menu médico</Portuguese>
<Russian>Разрешить мед. меню</Russian>
<Spanish>Permitir menú médico</Spanish>
<Czech>Povolit zdravotnickou nabídku</Czech>
<Italian>Consenti Menù Medico</Italian>
<French>Autoriser le menu médical</French>
</Key>
<Key ID="STR_ACE_Medical_Menu_allow_Descr">
<English>Allow clients to use the medical menu</English>
<German>Erlaube Clients das Sanitätsmenü zu verwenden</German>
<Polish>Zezwalaj graczom korzystać z menu medycznego</Polish>
<Portuguese>Permite que clientes utilizem o menu médico</Portuguese>
<Russian>Разрешает клиентам использовать медицинское меню</Russian>
<Spanish>Permitir a los clientes utilizar el menú médico</Spanish>
<Czech>Povolit klientům používat zdravotnickou nabídku</Czech>
<Italian>Consenti ai clients di usare il Menù Medico</Italian>
<French>Autoriser les clients à utiliser le menu médical</French>
</Key>
<Key ID="STR_ACE_Medical_Menu_useMenu">
<English>Use Medical menu</English>
<German>Verwende Sanitätsmenü</German>
<Polish>Użyj menu medycznego</Polish>
<Portuguese>Usar o menu médico</Portuguese>
<Russian>Использовать медицинское меню</Russian>
<Spanish>Utiliza el menú médico</Spanish>
<Czech>Použít zdravotnickou nabídku</Czech>
<Italian>Usa Menù Medico</Italian>
<French>Utiliser le menu médical</French>
</Key>
<Key ID="STR_ACE_Medical_Menu_useMenu_Descr">
<English>If allowed by server, enable the option to use the Medical Menu through keybinding and interaction menu</English>
<German>Wenn vom Server erlaubt, aktiviert diese Einstellung das Sanitätsmenü, welches durch Tastenkombination oder Interaktionsmenü aufgerufen werden kann.</German>
<Polish>Jeżeli zezwolone przez serwer, aktywuj menu medyczne poprzez skrót klawiszowy i menu interakcji.</Polish>
<Portuguese>Se permitido pelo servidor, ativa a opção de usar o menu médico por atalhos de teclas e menu de interação</Portuguese>
<Russian>Если разрешено сервером, включает опцию использования медицинского меню с помощью горячих главиш или меню взаимодействия</Russian>
<Spanish>Si está permitido por el servidor, active la opción de utilizar el menú médico a través del menú de las teclas</Spanish>
<Czech>Pokud je povoleno serverem, umožní použít zdravotnickou nabídku skrze kláv. zkratku a interakční menu</Czech>
<Italian>Se consentito dal server, abilita l'opzione di usare il Menù Medico attraverso hotkeys e menù interazione</Italian>
<French>Si autorisé par le serveur, active l'option d'utiliser le menu médical à travers les raccourcis clavier et le menu d'interaction.</French>
</Key>
<Key ID="STR_ACE_Medical_Menu_openAfterTreatment">
<English>Re-open Medical menu</English>
<German>Sanitätsmenü offen lassen</German>
<Polish>Otwieraj ponownie menu medyczne</Polish>
<Portuguese>Reabrir menu médico</Portuguese>
<Russian>Переоткрывать мед. меню</Russian>
<Spanish>Reabrir menú médico</Spanish>
<Czech>Znovu otevřít zdravotnickou nabídku</Czech>
<Italian>Ri-apri Menù Medico</Italian>
<French>Ré-ouvrir le menu médical</French>
</Key>
<Key ID="STR_ACE_Medical_Menu_openAfterTreatment_Descr">
<English>Re-open the medical menu after succesful treatment</English>
<German>Öffnet das Sanitätsmenü nach einer erfolgreichen Behandlung erneut</German>
<Polish>Otwórz ponownie menu medyczne po udanym zakończeniu leczenia</Polish>
<Portuguese>Reabre o menu médico depois de um tratamento bem sucedido</Portuguese>
<Russian>Переоткрывать медицинское меню после удачного лечения</Russian>
<Spanish>Reabre el menú médico despues de un tratamiento con éxito</Spanish>
<Czech>Znovu otevřít zdravotnickou nabídku po úspěšné léčbě </Czech>
<Italian>Ri-Apri il Menù Medico dopo un trattamento riuscito</Italian>
<French>Ré-ouvrir le menu médical après un traitement réussi</French>
</Key>
<Key ID="STR_ACE_Medical_Menu_DisplayMenuKey">
<English>Open Medical Menu</English>
<German>Öffne Sanitätsmenü</German>
<Polish>Otwórz menu medyczne</Polish>
<Portuguese>Abrir menu médico</Portuguese>
<Russian>Открыть медицинское меню</Russian>
<Spanish>Abrir menú médico</Spanish>
<Czech>Otevřít zdravotnickou nabídku</Czech>
<Italian>Apri Menù Medico</Italian>
<French>Ouvir le menu médical</French>
</Key>
<Key ID="STR_ACE_Medical_Menu_module_DisplayName">
<English>Medical Menu Settings</English>
<German>Sanitätsmenü Einstellungen</German>
<Polish>Ustawienia menu medycznego</Polish>
<Portuguese>Preferências do menu médico</Portuguese>
<Russian>Настройки медицинского меню</Russian>
<Spanish>Ajustes del mení médico</Spanish>
<Czech>Nastavení zdravotnické nabídky</Czech>
<Italian>Impostazioni Menù Medico</Italian>
<French>Réglages du menu médical</French>
</Key>
<Key ID="STR_ACE_Medical_Menu_module_Desc">
<English>Configure the usage of the Medical Menu</English>
<German>Stelle die Verwendung des Sanitätsmenüs ein</German>
<Polish>Skonfiguruj opcje menu medycznego</Polish>
<Portuguese>Configura o uso do menu médico</Portuguese>
<Russian>Настройки использования медицинского меню</Russian>
<Spanish>Configurar el uso del menú médico</Spanish>
<Czech>Konfigurace využití zdravotnické nabídky</Czech>
<Italian>Configura l'uso del Menù Medico</Italian>
<French>Configurer l'utilisation du menu médical</French>
</Key>
<Key ID="STR_ACE_Medical_Menu_EXAMINE_TREATMENT">
<English>EXAMINE &amp; TREATMENT</English>
<German>Untersuchung &amp; Behandlung</German>
<Russian>ОСМОТР И ЛЕЧЕНИЕ</Russian>
<Spanish>EXAMINAR &amp; TRATAMIENTO</Spanish>
<French>EXAMINER &amp; TRAITEMENTS</French>
<Polish>BADANIE &amp; LECZENIE</Polish>
<Portuguese>EXAMINAR &amp; TRATAMENTO</Portuguese>
<Czech>VYŠETŘENÍ &amp; LÉČBA</Czech>
<Italian>ESAMINA &amp; TRATTA</Italian>
</Key>
<Key ID="STR_ACE_Medical_Menu_STATUS">
<English>STATUS</English>
<German>STATUS</German>
<Russian>СОСТОЯНИЕ</Russian>
<Spanish>ESTADO</Spanish>
<French>ÉTAT</French>
<Polish>STATUS</Polish>
<Portuguese>ESTADO</Portuguese>
<Czech>STAV</Czech>
<Italian>STATO</Italian>
</Key>
<Key ID="STR_ACE_Medical_Menu_OVERVIEW">
<English>OVERVIEW</English>
<German>ÜBERSICHT</German>
<Russian>ОБЩАЯ ИНФОРМАЦИЯ</Russian>
<Spanish>DESCRIPCIÓN</Spanish>
<French>APERÇU</French>
<Polish>OPIS</Polish>
<Portuguese>VISÃO GERAL</Portuguese>
<Czech>PŘEHLED</Czech>
<Italian>PANORAMICA</Italian>
</Key>
<Key ID="STR_ACE_Medical_Menu_ACTIVITY_LOG">
<English>ACTIVITY LOG</English>
<German>AKTIVITÄTSVERLAUF</German>
<Russian>ПРОВЕДЕННЫЕ МАНИПУЛЯЦИИ</Russian>
<Spanish>REGISTRO DE ACTIVIDAD</Spanish>
<French>REGISTRE D'ACTIVITÉ</French>
<Polish>LOGI AKTYWNOŚCI</Polish>
<Portuguese>REGISTRO DE ATIVIDADE</Portuguese>
<Czech>PROTOKOL</Czech>
<Italian>LOG ATTIVITA'</Italian>
</Key>
<Key ID="STR_ACE_Medical_Menu_QUICK_VIEW">
<English>QUICK VIEW</English>
<German>SCHNELLANSICHT</German>
<Russian>БЫСТРЫЙ ОСМОТР</Russian>
<Spanish>VISTA RÁPIDA</Spanish>
<French>VUE RAPIDE</French>
<Polish>SZYBKI PODGLĄD</Polish>
<Portuguese>VISÃO RÁPIDA</Portuguese>
<Czech>RYCHLÝ NÁHLED</Czech>
<Italian>VISTA RAPIDA</Italian>
</Key>
<Key ID="STR_ACE_Medical_Menu_VIEW_TRIAGE_CARD">
<English>View triage Card</English>
<German>Zeige Triagekarte</German>
<Russian>Смотреть первичную карточку</Russian>
<Spanish>Ver Triage</Spanish>
<French>Voir Carte de Triage</French>
<Polish>Pokaż kartę segregacyjną</Polish>
<Portuguese>Ver cartão de triagem</Portuguese>
<Czech>Zkontrolovat štítek</Czech>
<Italian>Guarda Triage Card</Italian>
</Key>
<Key ID="STR_ACE_Medical_Menu_EXAMINE_PATIENT">
<English>Examine Patient</English>
<German>Untersuche Patient</German>
<Russian>Осмотреть пациента</Russian>
<Spanish>Examinar Paciente</Spanish>
<French>Examiner Patient</French>
<Polish>Zbadaj pacjenta</Polish>
<Portuguese>Examinar paciente</Portuguese>
<Czech>Zkontrolovat pacienta</Czech>
<Italian>Esamina Paziente</Italian>
</Key>
<Key ID="STR_ACE_Medical_Menu_BANDAGE_FRACTURES">
<English>Bandage / Fractures</English>
<German>Bandagen / Brüche</German>
<Russian>Раны / переломы</Russian>
<Spanish>Vendajes/Fracturas </Spanish>
<French>Bandages / Fractures</French>
<Polish>Bandaże / Złamania</Polish>
<Portuguese>Bandagens / Fraturas</Portuguese>
<Czech>Bandáž / Zlomeniny</Czech>
<Italian>Bendaggi/Fratture</Italian>
</Key>
<Key ID="STR_ACE_Medical_Menu_MEDICATION">
<English>Medication</English>
<German>Medikamentation</German>
<Russian>Медикаменты</Russian>
<Spanish>Medicación</Spanish>
<French>Médications</French>
<Polish>Leki</Polish>
<Portuguese>Medicação</Portuguese>
<Czech>Léky</Czech>
<Italian>Medicazione</Italian>
</Key>
<Key ID="STR_ACE_Medical_Menu_AIRWAY_MANAGEMENT">
<English>Airway Management</English>
<Russian>Дыхательные пути</Russian>
<Spanish>Vías Aéreas</Spanish>
<French>Gestion des voies respiratoires</French>
<Polish>Drogi oddechowe</Polish>
<Portuguese>Vias aéreas</Portuguese>
<Czech>Dýchací systém</Czech>
<Italian>Gestione Vie Respiratorie</Italian>
<German>Atemwegssicherung</German>
</Key>
<Key ID="STR_ACE_Medical_Menu_ADVANCED_TREATMENT">
<English>Advanced Treatments</English>
<German>Erweiterte Behandlungen</German>
<Russian>Специальная медпомощь</Russian>
<Spanish>Tratamientos Avanzados</Spanish>
<French>Traitements Avancés</French>
<Polish>Zaawansowane zabiegi</Polish>
<Portuguese>Tratamentos avançados</Portuguese>
<Czech>Pokročilé ošetření</Czech>
<Italian>Trattamenti Avanzati</Italian>
</Key>
<Key ID="STR_ACE_Medical_Menu_DRAG_CARRY">
<English>Drag/Carry</English>
<German>Ziehen/Tragen</German>
<Russian>Тащить/нести</Russian>
<Spanish>Arrastrar/Cargar</Spanish>
<French>Traîner/Porter</French>
<Polish>Ciągnij/Nieś</Polish>
<Portuguese>Arrastar/Carregar</Portuguese>
<Czech>Táhnout/Nést</Czech>
<Italian>Trascina/Trasporta</Italian>
</Key>
<Key ID="STR_ACE_Medical_Menu_TOGGLE_SELF">
<English>Toggle (Self)</English>
<German>Umschalter (Selbst)</German>
<Russian>Лечить себя/другого раненого</Russian>
<French>Basculer (soi)</French>
<Polish>Przełącz (na siebie)</Polish>
<Spanish>Alternar</Spanish>
<Portuguese>Alternar (Si mesmo)</Portuguese>
<Czech>Přepnout (na sebe)</Czech>
<Italian>Attiva (Te Stesso)</Italian>
</Key>
<Key ID="STR_ACE_Medical_Menu_SELECT_TRIAGE_STATUS">
<English>Select triage status</English>
<German>Setze Status auf der Triagekarte</German>
<Russian>Сортировка</Russian>
<Spanish>Seleccionar estado de Triage</Spanish>
<French>Selectioner l'état de triage</French>
<Polish>Wybierz priorytet</Polish>
<Portuguese>Selecionar estado de triagem</Portuguese>
<Czech>Vybrat prioritu</Czech>
<Italian>Seleziona stato Triage</Italian>
</Key>
<Key ID="STR_ACE_Medical_Menu_SELECT_HEAD">
<English>Select Head</English>
<German>Wähle Kopf</German>
<Russian>Выбрать голову</Russian>
<Spanish>Seleccionar Cabeza</Spanish>
<French>Selectioner Tête</French>
<Polish>Wybierz głowę</Polish>
<Portuguese>Selecionar Cabeça</Portuguese>
<Czech>Vybrat Hlavu</Czech>
<Italian>Seleziona Testa</Italian>
</Key>
<Key ID="STR_ACE_Medical_Menu_SELECT_TORSO">
<English>Select Torso</English>
<German>Wähle Torso</German>
<Russian>Выбрать торс</Russian>
<Spanish>Seleccionar Torso</Spanish>
<French>Selectioner Torse</French>
<Polish>Wybierz tors</Polish>
<Portuguese>Selecionar Torso</Portuguese>
<Czech>Vybrat Trup</Czech>
<Italian>Seleziona Torso</Italian>
</Key>
<Key ID="STR_ACE_Medical_Menu_SELECT_ARM_L">
<English>Select Left Arm</English>
<German>Wähle linken Arm</German>
<Russian>Выбрать левую руку</Russian>
<Spanish>Seleccionar Brazo Izquierdo</Spanish>
<French>Selectioner Bras Gauche</French>
<Polish>Wybierz lewą rękę</Polish>
<Portuguese>Selecionar Braço Esquerdo</Portuguese>
<Czech>Vybrat Levou ruku</Czech>
<Italian>Seleziona Braccio Sinistro</Italian>
</Key>
<Key ID="STR_ACE_Medical_Menu_SELECT_ARM_R">
<English>Select Right Arm</English>
<German>Wähle rechten Arm</German>
<Russian>Выбрать правую руку</Russian>
<Spanish>Seleccionar Brazo Derecho</Spanish>
<French>Selectioner Bras Droit</French>
<Polish>Wybierz prawą rękę</Polish>
<Portuguese>Selecionar Braço Direito</Portuguese>
<Czech>Vybrat Pravou ruku</Czech>
<Italian>Seleziona Braccio Destro</Italian>
</Key>
<Key ID="STR_ACE_Medical_Menu_SELECT_LEG_L">
<English>Select Left Leg</English>
<German>Wähle linkes Bein</German>
<Russian>Выбрать левую ногу</Russian>
<Spanish>Seleccionar Pierna Izquierda</Spanish>
<French>Selectioner Jambe Gauche</French>
<Polish>Wybierz lewą nogę</Polish>
<Portuguese>Selecionar Perna Esquerda</Portuguese>
<Czech>Vybrat Levou nohu</Czech>
<Italian>Seleziona Gamba Sinistra</Italian>
</Key>
<Key ID="STR_ACE_Medical_Menu_SELECT_LEG_R">
<English>Select Right Leg</English>
<German>Wähle rechtes Bein</German>
<Russian>Выбрать правую ногу</Russian>
<Spanish>Seleccionar Pierna Derecha</Spanish>
<French>Selectioner Jambe Droite</French>
<Polish>Wybierz prawą nogę</Polish>
<Portuguese>Selecionar Perna Direita</Portuguese>
<Czech>Vybrat Pravou nohu</Czech>
<Italian>Seleziona Gamba Destra</Italian>
</Key>
<Key ID="STR_ACE_Medical_Menu_HEAD">
<English>Head</English>
<German>Kopf</German>
<Russian>Голова</Russian>
<Spanish>Cabeza</Spanish>
<French>Tête</French>
<Polish>Głowa</Polish>
<Portuguese>Caebça</Portuguese>
<Czech>Hlava</Czech>
<Italian>Testa</Italian>
</Key>
<Key ID="STR_ACE_Medical_Menu_TORSO">
<English>Torso</English>
<German>Torso</German>
<Russian>Торс</Russian>
<French>Torse</French>
<Polish>Tors</Polish>
<Portuguese>Torso</Portuguese>
<Czech>Trup</Czech>
<Spanish>Torso</Spanish>
<Italian>Torso</Italian>
</Key>
<Key ID="STR_ACE_Medical_Menu_ARM_L">
<English>Left Arm</English>
<German>Linker Arm</German>
<Russian>Левая рука</Russian>
<Spanish>Brazo Izquierdo</Spanish>
<French>Bras Gauche</French>
<Polish>Lewa ręka</Polish>
<Portuguese>Braço Esquerdo</Portuguese>
<Czech>Levá Ruka</Czech>
<Italian>Braccio Sinistro</Italian>
</Key>
<Key ID="STR_ACE_Medical_Menu_ARM_R">
<English>Right Arm</English>
<German>Rechter Arm</German>
<Russian>Правая рука</Russian>
<Spanish>Brazo Derecho</Spanish>
<French>Bras Droit</French>
<Polish>Prawa ręka</Polish>
<Portuguese>Braço Direito</Portuguese>
<Czech>Pravá Ruka</Czech>
<Italian>Braccio Destro</Italian>
</Key>
<Key ID="STR_ACE_Medical_Menu_LEG_L">
<English>Left Leg</English>
<German>Linkes Bein</German>
<Russian>Левая нога</Russian>
<Spanish>Pierna Izquierda</Spanish>
<French>Jambe Gauche</French>
<Polish>Lewa noga</Polish>
<Portuguese>Perna Esquerda</Portuguese>
<Czech>Levá Noha</Czech>
<Italian>Gamba Sinistra</Italian>
</Key>
<Key ID="STR_ACE_Medical_Menu_LEG_R">
<English>Right Leg</English>
<German>Rechtes Bein</German>
<Russian>Правая нога</Russian>
<Spanish>Pierna Derecha</Spanish>
<French>Jambe Droite</French>
<Polish>Prawa noga</Polish>
<Portuguese>Perna Direita</Portuguese>
<Czech>Pravá Noha</Czech>
<Italian>Gamba Destra</Italian>
</Key>
<Key ID="STR_ACE_Medical_Menu_SELECTED_BODY_PART">
<English>Body Part: %1</English>
<German>Körperteil: %1</German>
<Russian>Часть тела: %1</Russian>
<Spanish>Parte del cuerpo: %1</Spanish>
<French>Partie du corps: %1</French>
<Polish>Część ciała: %1</Polish>
<Portuguese>Parte do corpo: %1</Portuguese>
<Czech>Část těla: %1</Czech>
<Italian>Parte del Corpo: %1</Italian>
</Key>
<Key ID="STR_ACE_Medical_Menu_SMALL">
<English>Small</English>
<German>Klein</German>
<Russian>малого размера</Russian>
<Spanish>Pequeña</Spanish>
<French>Petite</French>
<Polish>małym</Polish>
<Portuguese>Pequeno</Portuguese>
<Czech>Malý</Czech>
<Italian>Piccolo</Italian>
</Key>
<Key ID="STR_ACE_Medical_Menu_MEDIUM">
<English>Medium</English>
<German>Mittel</German>
<Russian>среднего размера</Russian>
<Spanish>Mediana</Spanish>
<French>Moyenne</French>
<Polish>średnim</Polish>
<Portuguese>Médio</Portuguese>
<Czech>Střední</Czech>
<Italian>Medio</Italian>
</Key>
<Key ID="STR_ACE_Medical_Menu_LARGE">
<English>Large</English>
<German>Groß</German>
<Russian>большого размера</Russian>
<Spanish>Grande</Spanish>
<French>Grande</French>
<Polish>dużym</Polish>
<Portuguese>Grande</Portuguese>
<Czech>Velký</Czech>
<Italian>Grande</Italian>
</Key>
<Key ID="STR_ACE_Medical_Menu_MULTIPLE_OPEN_WOUNDS">
<English>There are %2 %1 Open Wounds</English>
<German>Er hat %2 offene Wunden (%1)</German>
<Russian>%2 открытые раны %1</Russian>
<Spanish>Hay %2 Heridas Abiertas %1</Spanish>
<French>Il y a %2 %1 Blessure(s) Ouverte(s)</French>
<Polish>Widzisz otwarte rany w ilości %2 o %1 rozmiarze</Polish>
<Portuguese>Existem %2 ferimentos abertos %1</Portuguese>
<Czech>Jsou zde %2 %1 otevřené rány</Czech>
<Italian>Ci sono %2 %1 Ferite Aperte</Italian>
</Key>
<Key ID="STR_ACE_Medical_Menu_SINGLE_OPEN_WOUND">
<English>There is 1 %1 Open Wound</English>
<German>Er hat 1 offene Wunde (%1)</German>
<Russian>Открытая рана %1</Russian>
<Spanish>Hay 1 Herida Abierta %1</Spanish>
<French>Il y a 1 blessure ouverte %1</French>
<Polish>Widzisz 1 otwartą ranę o %1 rozmiarze</Polish>
<Portuguese>Existe 1 %1 ferimento aberto</Portuguese>
<Czech>Je zde 1 %1 otevřená rána</Czech>
<Italian>C'è 1 %1 Ferita Aperta</Italian>
</Key>
<Key ID="STR_ACE_Medical_Menu_PARTIAL_OPEN_WOUND">
<English>There is a partial %1 Open wound</English>
<German>Er hat eine zum Teil offene Wunde (%1)</German>
<Russian>Частично открытая рана %1</Russian>
<Spanish>Hay una herida parcial abierta %1</Spanish>
<French>Il y a une Blessure Patiellement Ouverte %1</French>
<Polish>Widzisz częściowo otwartą ranę o %1 rozmiarze</Polish>
<Portuguese>Existe um ferimento parcial aberto %1</Portuguese>
<Czech>Je zde částečně %1 otevřená rána</Czech>
<Italian>C'è 1 parziale %1 Ferita Aperta</Italian>
</Key>
<Key ID="STR_ACE_Medical_Menu_MULTIPLE_BANDAGED_WOUNDS">
<English>There are %2 %1 Bandaged Wounds</English>
<German>Er hat %2 verbundene Wunden (%1)</German>
<Russian>%2 перевязанные раны %1</Russian>
<Spanish>Hay %2 Heridas %1 Vendadas</Spanish>
<French>Il y a %2 %1 Blessure(s) Bandée(s)</French>
<Polish>Widzisz %2 zabandażowanych ran o %1 rozmiarze</Polish>
<Portuguese>Existem %2 ferimentos %1 tratados</Portuguese>
<Czech>Jsou zde %2 %1 ovázané rány</Czech>
<Italian>Ci sono %2 %1 Ferite Bendate</Italian>
</Key>
<Key ID="STR_ACE_Medical_Menu_SINGLE_BANDAGED_WOUND">
<English>There is 1 %1 Bandaged Wound</English>
<German>Er hat 1 verbundene Wunde (%1)</German>
<Russian>1 перевязанная рана %1</Russian>
<Spanish>Hay 1 Herida Vendada %1</Spanish>
<French>Il y a 1 %1 Blessure Bandée</French>
<Polish>Widzisz 1 zabandażowaną ranę o %1 rozmiarze</Polish>
<Portuguese>Existe 1 ferimento %1 tratado</Portuguese>
<Czech>Je zde 1 %1 ovázaná rána</Czech>
<Italian>C'è 1 %1 Ferita Bendata</Italian>
</Key>
<Key ID="STR_ACE_Medical_Menu_PARTIAL_BANDAGED_WOUND">
<English>There is a partial %1 Bandaged wound</English>
<German>Er hat eine zum Teil verbundene Wunde (%1)</German>
<Russian>Частично перевязанная рана %1</Russian>
<Spanish>Hay una Herida parcial %1 Vendada</Spanish>
<French>Il y a %1 Blessure Partielment Bandée</French>
<Polish>Widzisz 1 częściowo zabandażowaną ranę o %1 rozmiarze</Polish>
<Portuguese>Existe um ferimento parcial tratado %1</Portuguese>
<Czech>Je zde částěčně %1 ovázaná rána</Czech>
<Italian>C'è 1 parziale %1 Ferita Bendata</Italian>
</Key>
<Key ID="STR_ACE_Medical_Menu_NORMAL_BREATHING">
<English>Normal breathing</English>
<German>Normale Atmung</German>
<Russian>Дыхание в норме</Russian>
<Spanish>Respiración normal</Spanish>
<French>Respiration normale</French>
<Polish>Normalny oddech</Polish>
<Portuguese>Respiração normal</Portuguese>
<Czech>Normální dýchání</Czech>
<Italian>Respirazione Normale</Italian>
</Key>
<Key ID="STR_ACE_Medical_Menu_NO_BREATHING">
<English>No breathing</English>
<German>Keine Atmung</German>
<Russian>Дыхания нет</Russian>
<Spanish>No respira</Spanish>
<French>Aucune respiration</French>
<Polish>Brak oddechu</Polish>
<Portuguese>Sem respiração</Portuguese>
<Czech>Nedýchá</Czech>
<Italian>Nessuna Respirazione</Italian>
</Key>
<Key ID="STR_ACE_Medical_Menu_DIFFICULT_BREATHING">
<English>Difficult breathing</English>
<German>Schwere Atmung</German>
<Russian>Дыхание затруднено</Russian>
<Spanish>Dificultad para respirar</Spanish>
<French>Respiration difficile</French>
<Polish>Trudności z oddychaniem</Polish>
<Portuguese>Dificuldade para respirar</Portuguese>
<Czech>Potíže s dýcháním</Czech>
<Italian>Difficoltà Respiratorie</Italian>
</Key>
<Key ID="STR_ACE_Medical_Menu_ALMOST_NO_BREATHING">
<English>Almost no breathing</English>
<German>Beinahe keine Atmung</German>
<Russian>Дыхания почти нет</Russian>
<Spanish>Casi sin respirar</Spanish>
<French>Respiration faible</French>
<Polish>Prawie brak oddechu</Polish>
<Portuguese>Quase sem respiração</Portuguese>
<Czech>Téměř nedýchá</Czech>
<Italian>Quasi nessuna Respirazione</Italian>
</Key>
<Key ID="STR_ACE_Medical_Menu_STATUS_BLEEDING">
<English>Bleeding</English>
<German>Blutung</German>
<Russian>Кровотечение</Russian>
<Spanish>Sangrando</Spanish>
<French>Saignement</French>
<Polish>Krwawienie zewnętrzne</Polish>
<Portuguese>Sangrando</Portuguese>
<Czech>Krvácí</Czech>
<Italian>Sanguinamento</Italian>
</Key>
<Key ID="STR_ACE_Medical_Menu_STATUS_PAIN">
<English>in Pain</English>
<German>hat Schmerzen</German>
<Russian>Испытывает боль</Russian>
<Spanish>Con Dolor</Spanish>
<French>Souffre</French>
<Polish>W bólu</Polish>
<Portuguese>Com dor</Portuguese>
<Czech>v bolestech</Czech>
<Italian>in Dolore</Italian>
</Key>
<Key ID="STR_ACE_Medical_Menu_STATUS_LOST_BLOOD">
<English>Lost a lot of Blood</English>
<German>hat sehr viel Blut verloren</German>
<Russian>Большая кровопотеря</Russian>
<Spanish>Mucha Sangre perdida</Spanish>
<French>A Perdu Bcp de Sang</French>
<Polish>Stracił dużo krwi</Polish>
<Portuguese>Perdeu muito sangue</Portuguese>
<Czech>Ztratil hodně krve</Czech>
<Italian>Perso molto Sangue</Italian>
</Key>
<Key ID="STR_ACE_Medical_Menu_STATUS_TOURNIQUET_APPLIED">
<English>Tourniquet [CAT]</English>
<German>Tourniquet [CAT]</German>
<Russian>Жгут</Russian>
<Spanish>Torniquete [CAT]</Spanish>
<French>Garrot [CAT]</French>
<Polish>Opaska uciskowa [CAT]</Polish>
<Portuguese>Torniquete [CAT]</Portuguese>
<Czech>Škrtidlo [CAT]</Czech>
<Italian>Laccio Emostatico [CAT]</Italian>
</Key>
<Key ID="STR_ACE_Medical_Menu_STATUS_NPA_APPLIED">
<English>Nasopharyngeal Tube [NPA]</English>
<German>Nasen-Rachen-Rohr</German>
<Russian>Назотрахеальная трубка</Russian>
<Spanish>Torniquete [CAT]</Spanish>
<French>Canule Naseaupharyngée [NPA]</French>
<Polish>Rurka nosowo-gardłowa [NPA]</Polish>
<Portuguese>Tubo nasofaríngeo [NPA]</Portuguese>
<Czech>Nasofaryngeální trubice [NPA]</Czech>
<Italian>Tubo Nasofaringeo [NPA]</Italian>
</Key>
</Package>
</Project>

View File

@ -0,0 +1,570 @@
#include "\z\ace\addons\common\define.hpp"
class GVAR(medicalMenu) {
idd = 314412;
movingEnable = true;
onLoad = QUOTE(uiNamespace setVariable [ARR_2(QUOTE(QGVAR(medicalMenu)), _this select 0)]; [_this select 0] call FUNC(onMenuOpen););
onUnload = QUOTE([] call FUNC(onMenuClose));
class controlsBackground {
class HeaderBackground: ACE_gui_backgroundBase {
idc = -1;
SizeEx = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)";
x = "1 * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)";
y = "1 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2)";
w = "38 * (((safezoneW / safezoneH) min 1.2) / 40)";
h = "1 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25)";
text = "#(argb,8,8,3)color(0,0,0,0)";
};
class CenterBackground: HeaderBackground {
y = "2.1 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2)";
h = "16 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25)";
text = "#(argb,8,8,3)color(0,0,0,0.8)";
colorText[] = {0, 0, 0, "(profilenamespace getVariable ['GUI_BCG_RGB_A',0.9])"};
colorBackground[] = {0,0,0,"(profilenamespace getVariable ['GUI_BCG_RGB_A',0.9])"};
};
class BottomBackground: CenterBackground {
y = "(18.6 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2))";
h = "9 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25)";
};
};
class controls {
class HeaderName {
idc = 1;
type = CT_STATIC;
x = "1 * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)";
y = "1 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2)";
w = "38 * (((safezoneW / safezoneH) min 1.2) / 40)";
h = "1 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25)";
style = ST_LEFT + ST_SHADOW;
font = "RobotoCondensed";
SizeEx = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)";
colorText[] = {0.95, 0.95, 0.95, 0.75};
colorBackground[] = {"(profilenamespace getVariable ['GUI_BCG_RGB_R',0.69])","(profilenamespace getVariable ['GUI_BCG_RGB_G',0.75])","(profilenamespace getVariable ['GUI_BCG_RGB_B',0.5])", "(profilenamespace getVariable ['GUI_BCG_RGB_A',0.9])"};
text = "";
};
class IconsBackGroundBar: ACE_gui_backgroundBase{
idc = -1;
SizeEx = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)";
x = "1 * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)";
y = "2.1 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2)";
w = "38 * (((safezoneW / safezoneH) min 1.2) / 40)";
h = "3.1 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25)";
text = QPATHTOF(data\background_img.paa);
colorText[] = {1, 1, 1, 0.0};
};
class CatagoryLeft: HeaderName {
x = "1 * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)";
y = "2.5 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2)";
w = "12.33 * (((safezoneW / safezoneH) min 1.2) / 40)";
h = "1 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25)";
style = ST_CENTER;
colorText[] = {1, 1, 1.0, 0.9};
colorBackground[] = {0,0,0,0};
SizeEx = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1.2)";
text = CSTRING(EXAMINE_TREATMENT);
};
class CatagoryCenter: CatagoryLeft {
x = "13.33 * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)";
text = CSTRING(STATUS);
};
class CatagoryRight: CatagoryCenter{
x = "25.66 * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)";
text = CSTRING(OVERVIEW);
};
class Line: ACE_gui_backgroundBase {
idc = -1;
SizeEx = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)";
x = "1.5 * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)";
y = "3.7 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2)";
w = "37 * (((safezoneW / safezoneH) min 1.2) / 40)";
h = "0.03 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25)";
text = "#(argb,8,8,3)color(1,1,1,0.5)";
};
class iconImg1: ACE_gui_backgroundBase {
idc = 111;
x = "1.5 * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)";
y = "3.73 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2)";
w = "1.5 * (((safezoneW / safezoneH) min 1.2) / 40)";
h = "1.5 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25)";
size = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1.4)";
SizeEx = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 0.1)";
colorBackground[] = {0,0,0,1};
colorPicture[] = {1,1,1,1};
colorText[] = {1,1,1,1};
text = QPATHTOF(data\icons\triage_card_small.paa);
};
class iconImg2: iconImg1 {
idc = 112;
x = "3 * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)";
text = QPATHTOF(data\icons\examine_patient_small.paa);
};
class iconImg3: iconImg1 {
idc = 113;
x = "4.5 * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)";
text = QPATHTOF(data\icons\bandage_fracture_small.paa);
};
class iconImg4: iconImg1 {
idc = 114;
x = "6 * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)";
text = QPATHTOF(data\icons\medication_small.paa);
};
class iconImg5: iconImg1 {
idc = 115;
x = "7.5 * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)";
text = QPATHTOF(data\icons\airway_management_small.paa);
};
class iconImg6: iconImg1 {
idc = 116;
x = "9 * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)";
text = QPATHTOF(data\icons\advanced_treatment_small.paa);
};
class iconImg7: iconImg1 {
idc = 117;
x = "10.5 * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)";
text = QPATHTOF(data\icons\icon_carry.paa);
};
class iconImg8: iconImg1 {
idc = 118;
x = "12 * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)";
text = QPATHTOF(data\icons\toggle_self_small.paa);
};
class BtnIconLeft1: ACE_gui_buttonBase {
idc = 11;
x = "1.5 * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)";
y = "3.73 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2)";
w = "1.5 * (((safezoneW / safezoneH) min 1.2) / 40)";
h = "1.5 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25)";
size = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1.4)";
SizeEx = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 0.1)";
animTextureNormal = "#(argb,8,8,3)color(0,0,0,0.0)";
animTextureDisabled = "#(argb,8,8,3)color(0,0,0,0.0)";
animTextureOver = "#(argb,8,8,3)color(0,0,0,0.0)";
animTextureFocused = "#(argb,8,8,3)color(0,0,0,0.0)";
animTexturePressed = "#(argb,8,8,3)color(0,0,0,0.0)";
animTextureDefault = "#(argb,8,8,3)color(0,0,0,0.0)";
action = QUOTE(['triage'] call FUNC(handleUI_DisplayOptions););
};
class BtnIconLeft2: BtnIconLeft1 {
idc = 12;
x = "3 * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)";
action = QUOTE(['examine'] call FUNC(handleUI_DisplayOptions););
};
class BtnIconLeft3: BtnIconLeft1 {
idc = 13;
x = "4.5 * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)";
action = QUOTE(['bandage'] call FUNC(handleUI_DisplayOptions););
};
class BtnIconLeft4: BtnIconLeft1 {
idc = 14;
x = "6 * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)";
action = QUOTE(['medication'] call FUNC(handleUI_DisplayOptions););
};
class BtnIconLeft5: BtnIconLeft1 {
idc = 15;
x = "7.5 * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)";
action = QUOTE(['airway'] call FUNC(handleUI_DisplayOptions););
};
class BtnIconLeft6: BtnIconLeft1 {
idc = 16;
x = "9 * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)";
action = QUOTE(['advanced'] call FUNC(handleUI_DisplayOptions););
};
class BtnIconLeft7: BtnIconLeft1 {
idc = 17;
x = "10.5 * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)";
action = QUOTE(['drag'] call FUNC(handleUI_DisplayOptions););
};
class BtnIconLeft8: BtnIconLeft1 {
idc = 18;
x = "12 * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)";
action = QUOTE(['toggle'] call FUNC(handleUI_DisplayOptions););
};
class TriageCardList: ACE_gui_listBoxBase {
idc = 212;
x = "1.5 * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)";
y = "5.4 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2)";
w = "12 * (((safezoneW / safezoneH) min 1.2) / 40)";
h = "10 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25)";
SizeEx = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 0.7)";
rowHeight = 0.03;
colorBackground[] = {0, 0, 0, 0.2};
colorText[] = {1,1, 1, 1.0};
colorScrollbar[] = {0.95, 0.95, 0.95, 1};
colorSelect[] = {0.95, 0.95, 0.95, 1};
colorSelect2[] = {0.95, 0.95, 0.95, 1};
colorSelectBackground[] = {0, 0, 0, 0.0};
colorSelectBackground2[] = {0.0, 0.0, 0.0, 0.0};
};
// Left side
class BtnMenu1: BtnIconLeft1 {
idc = 20;
y = "5.4 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2)";
w = "12 * (((safezoneW / safezoneH) min 1.2) / 40)";
h = "1 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25)";
text = "";
size = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 0.9)";
animTextureNormal = "#(argb,8,8,3)color(0,0,0,0.8)";
animTextureDisabled = "#(argb,8,8,3)color(0,0,0,0.5)";
animTextureOver = "#(argb,8,8,3)color(1,1,1,1)";
animTextureFocused = "#(argb,8,8,3)color(1,1,1,1)";
animTexturePressed = "#(argb,8,8,3)color(1,1,1,1)";
animTextureDefault = "#(argb,8,8,3)color(1,1,1,1)";
color[] = {1, 1, 1, 1};
color2[] = {0,0,0, 1};
colorBackgroundFocused[] = {1,1,1,1};
colorBackground[] = {1,1,1,1};
colorbackground2[] = {1,1,1,1};
colorDisabled[] = {0.5,0.5,0.5,0.8};
colorFocused[] = {0,0,0,1};
periodFocus = 1;
periodOver = 1;
action = "";
};
class BtnMenu2: BtnMenu1 {
idc = 21;
y = "6.5 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2)";
text = "";
};
class BtnMenu3: BtnMenu1 {
idc = 22;
y = "7.6 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2)";
text = "";
};
class BtnMenu4: BtnMenu1 {
idc = 23;
y = "8.7 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2)";
text ="";
};
class BtnMenu5: BtnMenu1 {
idc = 24;
y = "9.8 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2)";
text = "";
};
class BtnMenu6: BtnMenu1 {
idc = 25;
y = "10.9 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2)";
text = "";
};
class BtnMenu7: BtnMenu1 {
idc = 26;
y = "12 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2)";
text = "";
};
class BtnMenu8: BtnMenu1 {
idc = 27;
y = "13.1 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2)";
text = "";
};
// center
class bodyImgBackground: ACE_gui_backgroundBase {
idc = -1;
x = "13.33 * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)";
y = "3.73 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2)";
w = "12.33 * (((safezoneW / safezoneH) min 1.2) / 40)";
h = "12.33 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25)";
SizeEx = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1.4)";
colorBackground[] = {1,1,1,1};
colorPicture[] = {1,1,1,1};
colorText[] = {1,1,1,1};
text = QPATHTOEF(medical,ui\body_background.paa);
};
class bodyImgHead: bodyImgBackground {
idc = 50;
x = "13.33 * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)";
y = "3.73 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2)";
w = "12.33 * (((safezoneW / safezoneH) min 1.2) / 40)";
h = "12.33 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25)";
SizeEx = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1.4)";
colorBackground[] = {1,1,1,1};
colorPicture[] = {1,1,1,0.75};
colorText[] = {1,1,1,0.75};
text = QPATHTOEF(medical,ui\body_head.paa);
};
class bodyImgTorso: bodyImgHead {
idc = 51;
text = QPATHTOEF(medical,ui\body_torso.paa);
};
class bodyImgArms_l: bodyImgHead {
idc = 52;
text = QPATHTOEF(medical,ui\body_arm_left.paa);
};
class bodyImgArms_r: bodyImgHead {
idc = 53;
text = QPATHTOEF(medical,ui\body_arm_right.paa);
};
class bodyImgLegs_l: bodyImgHead {
idc = 54;
text = QPATHTOEF(medical,ui\body_leg_left.paa);
};
class bodyImgLegs_r: bodyImgHead {
idc = 55;
text = QPATHTOEF(medical,ui\body_leg_right.paa);
};
class selectHead: ACE_gui_buttonBase {
idc = 301;
x = "18.8 * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)";
y = "3.9 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2)";
w = "1.4 * (((safezoneW / safezoneH) min 1.2) / 40)";
h = "1.5 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25)";
size = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1.4)";
SizeEx = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 0.1)";
animTextureNormal = "#(argb,8,8,3)color(0,0,0,0.0)";
animTextureDisabled = "#(argb,8,8,3)color(0,0,0,0.0)";
animTextureOver = "#(argb,8,8,3)color(0,0,0,0.0)";
animTextureFocused = "#(argb,8,8,3)color(0,0,0,0.0)";
animTexturePressed = "#(argb,8,8,3)color(0,0,0,0.0)";
animTextureDefault = "#(argb,8,8,3)color(0,0,0,0.0)";
action = QUOTE(GVAR(selectedBodyPart) = 0;);
};
class selectTorso : selectHead {
idc = 302;
x = "18.4 * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)";
y = "5.4 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2)";
w = "2.2 * (((safezoneW / safezoneH) min 1.2) / 40)";
h = "4.1 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25)";
action = QUOTE(GVAR(selectedBodyPart) = 1;);
};
class selectLeftArm: selectHead{
idc = 303;
x = "17.4 * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)";
y = "5.9 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2)";
w = "1.1 * (((safezoneW / safezoneH) min 1.2) / 40)";
h = "4.3 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25)";
action = QUOTE(GVAR(selectedBodyPart) = 3;);
};
class selectRightArm: selectLeftArm{
idc = 304;
x = "20.6 * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)";
action = QUOTE(GVAR(selectedBodyPart) = 2;);
};
class selectLeftLeg :selectHead {
idc = 305;
x = "18.5 * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)";
y = "9.5 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2)";
w = "1.1 * (((safezoneW / safezoneH) min 1.2) / 40)";
h = "6 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25)";
action = QUOTE(GVAR(selectedBodyPart) = 5;);
};
class selectRightLeg :selectLeftLeg {
idc = 306;
x = "19.6 * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)";
action = QUOTE(GVAR(selectedBodyPart) = 4;);
};
class TriageTextBottom: HeaderName {
idc = 2000;
x = "13.33 * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)";
y = "16.5 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2)";
w = "12.33 * (((safezoneW / safezoneH) min 1.2) / 40)";
h = "1.1 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25)";
style = ST_CENTER;
colorText[] = {1, 1, 1.0, 1};
colorBackground[] = {0,0.0,0.0,0.7};
SizeEx = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)";
text = "";
};
// Right side
class InjuryList: ACE_gui_listBoxBase {
idc = 213;
x = "25.66 * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)";
y = "5.5 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2)";
w = "12.33 * (((safezoneW / safezoneH) min 1.2) / 40)";
h = "10 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25)";
SizeEx = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 0.7)";
rowHeight = 0.03;
colorBackground[] = {0, 0, 0, 0.2};
colorText[] = {1,1, 1, 1.0};
colorScrollbar[] = {0.95, 0.95, 0.95, 1};
colorSelect[] = {0.95, 0.95, 0.95, 1};
colorSelect2[] = {0.95, 0.95, 0.95, 1};
colorSelectBackground[] = {0, 0, 0, 0.0};
colorSelectBackground2[] = {0.0, 0.0, 0.0, 0.5};
};
// bottom
class ActivityLogHeader: CatagoryLeft {
x = "1 * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)";
y = "18.6 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2)";
w = "18.5 * (((safezoneW / safezoneH) min 1.2) / 40)";
h = "1 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25)";
style = ST_CENTER;
colorText[] = {0.6, 0.7, 1.0, 1};
colorBackground[] = {0,0,0,0};
SizeEx = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)";
text = CSTRING(ACTIVITY_LOG);
};
class QuickViewHeader: ActivityLogHeader {
x = "19.5 * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)";
text = CSTRING(QUICK_VIEW);
};
class LineBottomHeaders: Line {
y = "19.5 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2)";
};
class ActivityLog: InjuryList {
idc = 214;
//style = 16;
//type = 102;
//rows=1;
colorBackground[] = {0, 0, 0, 0};
x = "1.5 * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)";
y = "(19.5 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2))";
w = "18.5 * (((safezoneW / safezoneH) min 1.2) / 40)";
h = "6.5 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25)";
SizeEx = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 0.7)";
//colorSelectBackground[] = {0, 0, 0, 0.0};
//colorSelectBackground2[] = {0.0, 0.0, 0.0, 0.0};
//columns[] = {0.0, 0.08};
//canDrag=true;
//arrowEmpty = "#(argb,8,8,3)color(1,1,1,1)";
// arrowFull = "#(argb,8,8,3)color(1,1,1,1)";
drawSideArrows = 0;
//idcLeft = -1;
//idcRight = -1;
};
class QuikViewLog: InjuryList {
idc = 215;
//style = 16;
//type = 102;
//rows=1;
colorBackground[] = {0, 0, 0, 0};
x = "21.5 * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)";
y = "(19.5 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2))";
w = "18.5 * (((safezoneW / safezoneH) min 1.2) / 40)";
h = "6.5 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25)";
SizeEx = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 0.7)";
colorSelectBackground[] = {0, 0, 0, 0.0};
colorSelectBackground2[] = {0.0, 0.0, 0.0, 0.0};
//columns[] = {0.0, 0.08};
//canDrag=true;
//arrowEmpty = "#(argb,8,8,3)color(1,1,1,1)";
// arrowFull = "#(argb,8,8,3)color(1,1,1,1)";
drawSideArrows = 0;
//idcLeft = -1;
//idcRight = -1;
};
class selectTriageStatus: ACE_gui_buttonBase {
idc = 2001;
x = "13.33 * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)";
y = "16.5 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2)";
w = "12.33 * (((safezoneW / safezoneH) min 1.2) / 40)";
h = "1.1 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25)";
style = ST_CENTER;
size = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1.4)";
SizeEx = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)";
animTextureNormal = "#(argb,8,8,3)color(0,0,0,0.0)";
animTextureDisabled = "#(argb,8,8,3)color(0,0,0,0.0)";
animTextureOver = "#(argb,8,8,3)color(0,0,0,0.0)";
animTextureFocused = "#(argb,8,8,3)color(0,0,0,0.0)";
animTexturePressed = "#(argb,8,8,3)color(0,0,0,0.0)";
animTextureDefault = "#(argb,8,8,3)color(0,0,0,0.0)";
action = QUOTE([] call FUNC(handleUI_dropDownTriageCard););
};
class selectTriageStatusNone: selectTriageStatus {
idc = 2002;
x = 0;
y = 0;
w = 0;
h = 0;
text = ECSTRING(Medical,Triage_Status_None);
style = ST_CENTER;
size = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)";
SizeEx = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)";
animTextureNormal = "#(argb,8,8,3)color(0,0,0,0.9)";
animTextureDisabled = "#(argb,8,8,3)color(0,0,0,0.9)";
animTextureOver = "#(argb,8,8,3)color(0,0,0,0.9)";
animTextureFocused = "#(argb,8,8,3)color(0,0,0,0.9)";
animTexturePressed = "#(argb,8,8,3)color(0,0,0,0.9)";
animTextureDefault = "#(argb,8,8,3)color(0,0,0,0.9)";
action = QUOTE([] call FUNC(handleUI_dropDownTriageCard); [ARR_2(GVAR(INTERACTION_TARGET),0)] call FUNC(setTriageStatus););
};
class selectTriageStatusMinor: selectTriageStatus {
idc = 2003;
x = 0;
y = 0;
w = 0;
h = 0;
text = ECSTRING(Medical,Triage_Status_Minor);
style = ST_CENTER;
size = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)";
SizeEx = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)";
animTextureNormal = "#(argb,8,8,3)color(0,0.5,0,0.9)";
animTextureDisabled = "#(argb,8,8,3)color(0,0.5,0,0.9)";
animTextureOver = "#(argb,8,8,3)color(0,0.5,0,0.9)";
animTextureFocused = "#(argb,8,8,3)color(0,0.5,0,0.9)";
animTexturePressed = "#(argb,8,8,3)color(0,0.5,0,0.9)";
animTextureDefault = "#(argb,8,8,3)color(0,0.5,0,0.9)";
action = QUOTE([] call FUNC(handleUI_dropDownTriageCard); [ARR_2(GVAR(INTERACTION_TARGET),1)] call FUNC(setTriageStatus););
};
class selectTriageStatusDelayed: selectTriageStatus {
idc = 2004;
x = 0;
y = 0;
w = 0;
h = 0;
text = ECSTRING(Medical,Triage_Status_Delayed);
style = ST_CENTER;
size = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)";
SizeEx = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)";
animTextureNormal = "#(argb,8,8,3)color(0.77,0.51,0.08,0.9)";
animTextureDisabled = "#(argb,8,8,3)color(0.77,0.51,0.08,0.9)";
animTextureOver = "#(argb,8,8,3)color(0.77,0.51,0.08,0.9)";
animTextureFocused = "#(argb,8,8,3)color(0.77,0.51,0.08,0.9)";
animTexturePressed = "#(argb,8,8,3)color(0.77,0.51,0.08,0.9)";
animTextureDefault = "#(argb,8,8,3)color(0.77,0.51,0.08,0.9)";
action = QUOTE([] call FUNC(handleUI_dropDownTriageCard); [ARR_2(GVAR(INTERACTION_TARGET),2)] call FUNC(setTriageStatus););
};
class selectTriageStatusImmediate: selectTriageStatus {
idc = 2005;
x = 0;
y = 0;
w = 0;
h = 0;
text = ECSTRING(Medical,Triage_Status_Immediate);
style = ST_CENTER;
size = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)";
SizeEx = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)";
animTextureNormal = "#(argb,8,8,3)color(1,0.2,0.2,0.9)";
animTextureDisabled = "#(argb,8,8,3)color(1,0.2,0.2,0.9)";
animTextureOver = "#(argb,8,8,3)color(1,0.2,0.2,0.9)";
animTextureFocused = "#(argb,8,8,3)color(1,0.2,0.2,0.9)";
animTexturePressed = "#(argb,8,8,3)color(1,0.2,0.2,0.9)";
animTextureDefault = "#(argb,8,8,3)color(1,0.2,0.2,0.9)";
action = QUOTE([] call FUNC(handleUI_dropDownTriageCard); [ARR_2(GVAR(INTERACTION_TARGET),3)] call FUNC(setTriageStatus););
};
class selectTriageStatusDeceased: selectTriageStatus {
idc = 2006;
x = 0;
y = 0;
w = 0;
h = 0;
text = ECSTRING(Medical,Triage_Status_Deceased);
style = ST_CENTER;
size = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)";
SizeEx = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)";
animTextureNormal = "#(argb,8,8,3)color(0,0,0,0.9)";
animTextureDisabled = "#(argb,8,8,3)color(0,0,0,0.9)";
animTextureOver = "#(argb,8,8,3)color(0,0,0,0.9)";
animTextureFocused = "#(argb,8,8,3)color(0,0,0,0.9)";
animTexturePressed = "#(argb,8,8,3)color(0,0,0,0.9)";
animTextureDefault = "#(argb,8,8,3)color(0,0,0,0.9)";
action = QUOTE([] call FUNC(handleUI_dropDownTriageCard); [ARR_2(GVAR(INTERACTION_TARGET),4)] call FUNC(setTriageStatus););
};
};
};