mirror of
https://github.com/acemod/ACE3.git
synced 2024-08-30 18:23:18 +00:00
commit
493254619c
@ -644,6 +644,9 @@
|
||||
<Portuguese>Não</Portuguese>
|
||||
<Italian>No</Italian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Common_VehiclesOnly">
|
||||
<English>Vehicles only</English>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Common_DoNotForce">
|
||||
<English>Do Not Force</English>
|
||||
<Polish>Nie wymuszaj</Polish>
|
||||
|
@ -4,8 +4,9 @@ class ACE_Medical_Actions {
|
||||
class Bandage {
|
||||
displayName = CSTRING(Bandage);
|
||||
displayNameProgress = CSTRING(Bandaging);
|
||||
|
||||
category = "bandage";
|
||||
treatmentLocations[] = {"All"};
|
||||
allowedSelections[] = {"All"};
|
||||
requiredMedic = 0;
|
||||
treatmentTime = 5;
|
||||
treatmentTimeSelfCoef = 1;
|
||||
@ -30,6 +31,8 @@ class ACE_Medical_Actions {
|
||||
class Morphine: Bandage {
|
||||
displayName = CSTRING(Inject_Morphine);
|
||||
displayNameProgress = CSTRING(Injecting_Morphine);
|
||||
allowedSelections[] = {"hand_l", "hand_r", "leg_l", "leg_r"};
|
||||
category = "medication";
|
||||
treatmentTime = 2;
|
||||
items[] = {"ACE_morphine"};
|
||||
callbackSuccess = QUOTE(DFUNC(treatmentBasic_morphine));
|
||||
@ -39,6 +42,8 @@ class ACE_Medical_Actions {
|
||||
class Epinephrine: Bandage {
|
||||
displayName = CSTRING(Inject_Epinephrine);
|
||||
displayNameProgress = CSTRING(Injecting_Epinephrine);
|
||||
allowedSelections[] = {"hand_l", "hand_r", "leg_l", "leg_r"};
|
||||
category = "medication";
|
||||
requiredMedic = 1;
|
||||
treatmentTime = 3;
|
||||
items[] = {"ACE_epinephrine"};
|
||||
@ -49,6 +54,8 @@ class ACE_Medical_Actions {
|
||||
class BloodIV: Bandage {
|
||||
displayName = CSTRING(Transfuse_Blood);
|
||||
displayNameProgress = CSTRING(Transfusing_Blood);
|
||||
allowedSelections[] = {"hand_l", "hand_r", "leg_l", "leg_r"};
|
||||
category = "advanced";
|
||||
requiredMedic = 1;
|
||||
treatmentTime = 20;
|
||||
items[] = {"ACE_bloodIV"};
|
||||
@ -57,14 +64,17 @@ class ACE_Medical_Actions {
|
||||
litter[] = {};
|
||||
};
|
||||
class BloodIV_500: BloodIV {
|
||||
category = "advanced";
|
||||
items[] = {"ACE_bloodIV_500"};
|
||||
};
|
||||
class BloodIV_250: BloodIV {
|
||||
category = "advanced";
|
||||
items[] = {"ACE_bloodIV_250"};
|
||||
};
|
||||
class BodyBag: Bandage {
|
||||
displayName = CSTRING(PlaceInBodyBag);
|
||||
displayNameProgress = CSTRING(PlacingInBodyBag);
|
||||
category = "advanced";
|
||||
treatmentLocations[] = {"All"};
|
||||
requiredMedic = 0;
|
||||
treatmentTime = 4;
|
||||
@ -81,7 +91,9 @@ class ACE_Medical_Actions {
|
||||
class Diagnose: Bandage {
|
||||
displayName = CSTRING(Actions_Diagnose);
|
||||
displayNameProgress = CSTRING(Actions_Diagnosing);
|
||||
category = "examine";
|
||||
treatmentLocations[] = {"All"};
|
||||
allowedSelections[] = {"head"};
|
||||
requiredMedic = 0;
|
||||
treatmentTime = 1;
|
||||
items[] = {};
|
||||
@ -97,10 +109,12 @@ class ACE_Medical_Actions {
|
||||
|
||||
class Advanced {
|
||||
class FieldDressing {
|
||||
displayName = CSTRING(Bandage);
|
||||
displayName = CSTRING(Actions_FieldDressing);
|
||||
displayNameProgress = CSTRING(Bandaging);
|
||||
category = "bandage";
|
||||
// Which locations can this treatment action be used? Available: Field, MedicalFacility, MedicalVehicle, All.
|
||||
treatmentLocations[] = {"All"};
|
||||
allowedSelections[] = {"All"};
|
||||
// What is the level of medical skill required for this treatment action? 0 = all soldiers, 1 = medic, 2 = doctor
|
||||
requiredMedic = 0;
|
||||
// The time it takes for a treatment action to complete. Time is in seconds.
|
||||
@ -124,17 +138,21 @@ class ACE_Medical_Actions {
|
||||
litter[] = { {"All", "_previousDamage > 0", {{"ACE_MedicalLitter_bandage2", "ACE_MedicalLitter_bandage3"}}}, {"All", "_previousDamage <= 0", {"ACE_MedicalLitter_clean"}} };
|
||||
};
|
||||
class PackingBandage: fieldDressing {
|
||||
displayName = CSTRING(Actions_PackingBandage);
|
||||
items[] = {"ACE_packingBandage"};
|
||||
};
|
||||
class ElasticBandage: fieldDressing {
|
||||
displayName = CSTRING(Actions_ElasticBandage);
|
||||
items[] = {"ACE_elasticBandage"};
|
||||
};
|
||||
class QuikClot: fieldDressing {
|
||||
displayName = CSTRING(Actions_QuikClot);
|
||||
items[] = {"ACE_quikclot"};
|
||||
};
|
||||
class Tourniquet: fieldDressing {
|
||||
displayName = CSTRING(Apply_Tourniquet);
|
||||
displayNameProgress = CSTRING(Applying_Tourniquet);
|
||||
allowedSelections[] = {"hand_l", "hand_r", "leg_l", "leg_r", "body"};
|
||||
items[] = {"ACE_tourniquet"};
|
||||
treatmentTime = 6;
|
||||
callbackSuccess = QUOTE(DFUNC(treatmentTourniquet));
|
||||
@ -144,6 +162,8 @@ class ACE_Medical_Actions {
|
||||
class Morphine: fieldDressing {
|
||||
displayName = CSTRING(Inject_Morphine);
|
||||
displayNameProgress = CSTRING(Injecting_Morphine);
|
||||
allowedSelections[] = {"hand_l", "hand_r", "leg_l", "leg_r"};
|
||||
category = "medication";
|
||||
items[] = {"ACE_morphine"};
|
||||
treatmentTime = 3;
|
||||
callbackSuccess = QUOTE(DFUNC(treatmentAdvanced_medication));
|
||||
@ -163,8 +183,10 @@ class ACE_Medical_Actions {
|
||||
litter[] = { {"All", "", {"ACE_MedicalLitter_epinephrine"}} };
|
||||
};
|
||||
class BloodIV: fieldDressing {
|
||||
displayName = CSTRING(Transfuse_Blood);
|
||||
displayName = CSTRING(Actions_Blood4_1000);
|
||||
displayNameProgress = CSTRING(Transfusing_Blood);
|
||||
allowedSelections[] = {"hand_l", "hand_r", "leg_l", "leg_r"};
|
||||
category = "advanced";
|
||||
items[] = {"ACE_bloodIV"};
|
||||
requiredMedic = 1;
|
||||
treatmentTime = 7;
|
||||
@ -173,38 +195,45 @@ class ACE_Medical_Actions {
|
||||
litter[] = {};
|
||||
};
|
||||
class BloodIV_500: BloodIV {
|
||||
displayName = CSTRING(Actions_Blood4_500);
|
||||
items[] = {"ACE_bloodIV_500"};
|
||||
};
|
||||
class BloodIV_250: BloodIV {
|
||||
displayName = CSTRING(Actions_Blood4_250);
|
||||
items[] = {"ACE_bloodIV_250"};
|
||||
};
|
||||
class PlasmaIV: BloodIV {
|
||||
displayName = CSTRING(Transfuse_Plasma);
|
||||
displayName = CSTRING(Actions_Plasma4_1000);
|
||||
displayNameProgress = CSTRING(Transfusing_Plasma);
|
||||
items[] = {"ACE_plasmaIV"};
|
||||
animationCaller = "AinvPknlMstpSnonWnonDnon_medic1";
|
||||
};
|
||||
class PlasmaIV_500: PlasmaIV {
|
||||
displayName = CSTRING(Actions_Plasma4_500);
|
||||
items[] = {"ACE_plasmaIV_500"};
|
||||
};
|
||||
class PlasmaIV_250: PlasmaIV {
|
||||
displayName = CSTRING(Actions_Plasma4_250);
|
||||
items[] = {"ACE_plasmaIV_250"};
|
||||
};
|
||||
class SalineIV: BloodIV {
|
||||
displayName = CSTRING(Transfuse_Saline);
|
||||
displayName = CSTRING(Actions_Saline4_1000);
|
||||
displayNameProgress = CSTRING(Transfusing_Saline);
|
||||
items[] = {"ACE_salineIV"};
|
||||
animationCaller = "AinvPknlMstpSnonWnonDnon_medic1";
|
||||
};
|
||||
class SalineIV_500: SalineIV {
|
||||
displayName = CSTRING(Actions_Saline4_500);
|
||||
items[] = {"ACE_salineIV_500"};
|
||||
};
|
||||
class SalineIV_250: SalineIV {
|
||||
displayName = CSTRING(Actions_Saline4_250);
|
||||
items[] = {"ACE_salineIV_250"};
|
||||
};
|
||||
class SurgicalKit: fieldDressing {
|
||||
displayName = "";
|
||||
displayName = CSTRING(Use_SurgicalKit);
|
||||
displayNameProgress = CSTRING(TreatmentAction);
|
||||
category = "advanced";
|
||||
items[] = {"ACE_surgicalKit"};
|
||||
treatmentLocations[] = {QGVAR(useLocation_SurgicalKit)};
|
||||
requiredMedic = QGVAR(medicSetting_SurgicalKit);
|
||||
@ -217,8 +246,9 @@ class ACE_Medical_Actions {
|
||||
litter[] = { {"All", "", {"ACE_MedicalLitter_gloves"} }};
|
||||
};
|
||||
class PersonalAidKit: fieldDressing {
|
||||
displayName = "";
|
||||
displayName = CSTRING(Use_Aid_Kit);
|
||||
displayNameProgress = CSTRING(TreatmentAction);
|
||||
category = "advanced";
|
||||
items[] = {"ACE_personalAidKit"};
|
||||
treatmentLocations[] = {QGVAR(useLocation_PAK)};
|
||||
requiredMedic = QGVAR(medicSetting_PAK);
|
||||
@ -235,8 +265,9 @@ class ACE_Medical_Actions {
|
||||
litter[] = { {"All", "", {"ACE_MedicalLitter_gloves"}}, {"All", "", {{"ACE_MedicalLitterBase", "ACE_MedicalLitter_bandage1", "ACE_MedicalLitter_bandage2", "ACE_MedicalLitter_bandage3"}} }, {"All", "", {{"ACE_MedicalLitterBase", "ACE_MedicalLitter_bandage1", "ACE_MedicalLitter_bandage2", "ACE_MedicalLitter_bandage3"}}} };
|
||||
};
|
||||
class CheckPulse: fieldDressing {
|
||||
displayName = "";
|
||||
displayName = CSTRING(Actions_CheckPulse);
|
||||
displayNameProgress = CSTRING(Check_Pulse_Content);
|
||||
category = "examine";
|
||||
treatmentLocations[] = {"All"};
|
||||
requiredMedic = 0;
|
||||
treatmentTime = 2;
|
||||
@ -252,14 +283,17 @@ class ACE_Medical_Actions {
|
||||
litter[] = {};
|
||||
};
|
||||
class CheckBloodPressure: CheckPulse {
|
||||
displayName = CSTRING(Actions_CheckBloodPressure);
|
||||
callbackSuccess = QUOTE(DFUNC(actionCheckBloodPressure));
|
||||
displayNameProgress = CSTRING(Check_Bloodpressure_Content);
|
||||
};
|
||||
class CheckResponse: CheckPulse {
|
||||
displayName = CSTRING(Check_Response);
|
||||
callbackSuccess = QUOTE(DFUNC(actionCheckResponse));
|
||||
displayNameProgress = CSTRING(Check_Response_Content);
|
||||
};
|
||||
class RemoveTourniquet: CheckPulse {
|
||||
class RemoveTourniquet: Tourniquet {
|
||||
displayName = CSTRING(Actions_RemoveTourniquet);
|
||||
treatmentTime = 2.5;
|
||||
callbackSuccess = QUOTE(DFUNC(actionRemoveTourniquet));
|
||||
condition = QUOTE([ARR_2(_this select 1, _this select 2)] call FUNC(hasTourniquetAppliedTo));
|
||||
@ -268,7 +302,9 @@ class ACE_Medical_Actions {
|
||||
class CPR: fieldDressing {
|
||||
displayName = CSTRING(Actions_CPR);
|
||||
displayNameProgress = CSTRING(Actions_PerformingCPR);
|
||||
category = "advanced";
|
||||
treatmentLocations[] = {"All"};
|
||||
allowedSelections[] = {"body"};
|
||||
requiredMedic = 0;
|
||||
treatmentTime = 15;
|
||||
items[] = {};
|
||||
@ -288,6 +324,7 @@ class ACE_Medical_Actions {
|
||||
class BodyBag: fieldDressing {
|
||||
displayName = CSTRING(PlaceInBodyBag);
|
||||
displayNameProgress = CSTRING(PlacingInBodyBag);
|
||||
category = "advanced";
|
||||
treatmentLocations[] = {"All"};
|
||||
requiredMedic = 0;
|
||||
treatmentTime = 2;
|
||||
@ -819,9 +856,9 @@ class ACE_Medical_Advanced {
|
||||
// specific details for the ACE_Morphine treatment action
|
||||
class Morphine {
|
||||
painReduce = 15;
|
||||
hrIncreaseLow[] = {-10, -30, 35};
|
||||
hrIncreaseNormal[] = {-10, -50, 40};
|
||||
hrIncreaseHigh[] = {-10, -40, 50};
|
||||
hrIncreaseLow[] = {-10, -20, 35};
|
||||
hrIncreaseNormal[] = {-10, -30, 35};
|
||||
hrIncreaseHigh[] = {-10, -35, 50};
|
||||
timeInSystem = 900;
|
||||
maxDose = 4;
|
||||
inCompatableMedication[] = {};
|
||||
|
@ -58,4 +58,5 @@ if ([_caller] call FUNC(isMedic)) then {
|
||||
|
||||
if (_logOutPut != "") then {
|
||||
[_target,"activity", LSTRING(Check_Bloodpressure_Log), [[_caller] call EFUNC(common,getName), _logOutPut]] call FUNC(addToLog);
|
||||
[_target,"quick_view", LSTRING(Check_Bloodpressure_Log), [[_caller] call EFUNC(common,getName), _logOutPut]] call FUNC(addToLog);
|
||||
};
|
||||
|
@ -50,4 +50,5 @@ if (_heartRate > 1.0) then {
|
||||
|
||||
if (_logOutPut != "") then {
|
||||
[_unit,"activity", LSTRING(Check_Pulse_Log),[[_caller] call EFUNC(common,getName),_logOutPut]] call FUNC(addToLog);
|
||||
[_unit,"quick_view", LSTRING(Check_Pulse_Log),[[_caller] call EFUNC(common,getName),_logOutPut]] call FUNC(addToLog);
|
||||
};
|
||||
|
@ -28,3 +28,4 @@ if ([_target] call EFUNC(common,isAwake)) then {
|
||||
["displayTextStructured", [_caller], [[_output, [_target] call EFUNC(common,getName)], 2, _caller]] call EFUNC(common,targetEvent);
|
||||
|
||||
[_target,"activity",_output, [[_target] call EFUNC(common,getName)]] call FUNC(addToLog);
|
||||
[_target,"quick_view",_output, [[_target] call EFUNC(common,getName)]] call FUNC(addToLog);
|
||||
|
@ -16,7 +16,7 @@
|
||||
|
||||
#include "script_component.hpp"
|
||||
|
||||
private ["_caller", "_target", "_selectionName", "_className", "_config", "_medicRequired", "_items", "_locations", "_return", "_condition", "_patientStateCondition"];
|
||||
private ["_caller", "_target", "_selectionName", "_className", "_config", "_medicRequired", "_items", "_locations", "_return", "_condition", "_patientStateCondition", "_allowedSelections"];
|
||||
_caller = _this select 0;
|
||||
_target = _this select 1;
|
||||
_selectionName = _this select 2;
|
||||
@ -44,6 +44,8 @@ if !([_caller, _medicRequired] call FUNC(isMedic)) exitwith {false};
|
||||
_items = getArray (_config >> "items");
|
||||
if (count _items > 0 && {!([_caller, _target, _items] call FUNC(hasItems))}) exitwith {false};
|
||||
|
||||
_allowedSelections = getArray (_config >> "allowedSelections");
|
||||
if !("All" in _allowedSelections || {(_selectionName in _allowedSelections)}) exitwith {false};
|
||||
|
||||
_return = true;
|
||||
if (getText (_config >> "condition") != "") then {
|
||||
|
@ -16,7 +16,7 @@
|
||||
|
||||
#include "script_component.hpp"
|
||||
|
||||
private ["_caller", "_target", "_selectionName", "_className", "_config", "_medicRequired", "_items", "_locations", "_return", "_callbackProgress", "_treatmentTime", "_callerAnim", "_patientAnim", "_iconDisplayed", "_return", "_usersOfItems", "_consumeItems", "_condition", "_displayText", "_wpn", "_treatmentTimeConfig", "_patientStateCondition"];
|
||||
private ["_caller", "_target", "_selectionName", "_className", "_config", "_medicRequired", "_items", "_locations", "_return", "_callbackProgress", "_treatmentTime", "_callerAnim", "_patientAnim", "_iconDisplayed", "_return", "_usersOfItems", "_consumeItems", "_condition", "_displayText", "_wpn", "_treatmentTimeConfig", "_patientStateCondition", "_allowedSelections"];
|
||||
_caller = _this select 0;
|
||||
_target = _this select 1;
|
||||
_selectionName = _this select 2;
|
||||
@ -49,6 +49,9 @@ _medicRequired = if (isNumber (_config >> "requiredMedic")) then {
|
||||
|
||||
if !([_caller, _medicRequired] call FUNC(isMedic)) exitwith {false};
|
||||
|
||||
_allowedSelections = getArray (_config >> "allowedSelections");
|
||||
if !("All" in _allowedSelections || {(_selectionName in _allowedSelections)}) exitwith {false};
|
||||
|
||||
// Check item
|
||||
_items = getArray (_config >> "items");
|
||||
if (count _items > 0 && {!([_caller, _target, _items] call FUNC(hasItems))}) exitwith {false};
|
||||
|
@ -31,4 +31,7 @@ if (random(1)>= 0.6) exitwith {
|
||||
_target setvariable [QGVAR(bloodPressure), [50,70]];
|
||||
};
|
||||
|
||||
[_target, "activity", LSTRING(Activity_fullHeal), [[_caller] call EFUNC(common,getName)]] call FUNC(addToLog);
|
||||
[_target, "activity_view", LSTRING(Activity_fullHeal), [[_caller] call EFUNC(common,getName)]] call FUNC(addToLog); // TODO expand message
|
||||
|
||||
true;
|
||||
|
@ -38,5 +38,6 @@ if !([_target] call FUNC(hasMedicalEnabled)) exitwith {
|
||||
}foreach _items;*/
|
||||
|
||||
[_target, "activity", LSTRING(Activity_bandagedPatient), [[_caller] call EFUNC(common,getName)]] call FUNC(addToLog);
|
||||
[_target, "activity_view", LSTRING(Activity_bandagedPatient), [[_caller] call EFUNC(common,getName)]] call FUNC(addToLog); // TODO expand message
|
||||
|
||||
true;
|
||||
|
@ -68,4 +68,7 @@ if (alive _target) exitwith {
|
||||
|
||||
// Resetting damage
|
||||
_target setDamage 0;
|
||||
|
||||
[_target, "activity", LSTRING(Activity_fullHeal), [[_caller] call EFUNC(common,getName)]] call FUNC(addToLog);
|
||||
[_target, "activity_view", LSTRING(Activity_fullHeal), [[_caller] call EFUNC(common,getName)]] call FUNC(addToLog); // TODO expand message
|
||||
};
|
||||
|
@ -33,5 +33,6 @@ _items = _this select 4;
|
||||
}foreach _items;
|
||||
|
||||
[_target, "activity", LSTRING(Activity_usedItem), [[_caller] call EFUNC(common,getName), _className]] call FUNC(addToLog);
|
||||
[_target, "activity_view", LSTRING(Activity_usedItem), [[_caller] call EFUNC(common,getName), _className]] call FUNC(addToLog); // TODO expand message
|
||||
|
||||
true;
|
||||
|
@ -30,3 +30,4 @@ _removeItem = _items select 0;
|
||||
[[_target, _className], QUOTE(DFUNC(treatmentIVLocal)), _target] call EFUNC(common,execRemoteFnc); /* TODO Replace by event system */
|
||||
[_target, _removeItem] call FUNC(addToTriageCard);
|
||||
[_target, "activity", LSTRING(Activity_gaveIV), [[_caller] call EFUNC(common,getName)]] call FUNC(addToLog);
|
||||
[_target, "activity_view", LSTRING(Activity_gaveIV), [[_caller] call EFUNC(common,getName)]] call FUNC(addToLog); // TODO expand message
|
||||
|
@ -44,6 +44,7 @@ _removeItem = _items select 0;
|
||||
|
||||
[_target, _removeItem] call FUNC(addToTriageCard);
|
||||
[_target, "activity", LSTRING(Activity_appliedTourniquet), [[_caller] call EFUNC(common,getName)]] call FUNC(addToLog);
|
||||
[_target, "activity_view", LSTRING(Activity_gaveIV), [[_caller] call EFUNC(common,getName)]] call FUNC(addToLog); // TODO expand message
|
||||
|
||||
|
||||
true;
|
||||
|
@ -86,3 +86,5 @@ _args call FUNC(createLitter);
|
||||
if (!(_target getvariable [QGVAR(addedToUnitLoop),false])) then {
|
||||
[_target] call FUNC(addToInjuredCollection);
|
||||
};
|
||||
|
||||
["medical_treatmentSuccess", [_caller, _target, _selectionName, _className]] call EFUNC(common,localEvent);
|
||||
|
Binary file not shown.
Before Width: | Height: | Size: 52 KiB |
1
addons/medical_menu/$PBOPREFIX$
Normal file
1
addons/medical_menu/$PBOPREFIX$
Normal file
@ -0,0 +1 @@
|
||||
z\ace\addons\medical_menu
|
25
addons/medical_menu/ACE_Settings.hpp
Normal file
25
addons/medical_menu/ACE_Settings.hpp
Normal file
@ -0,0 +1,25 @@
|
||||
|
||||
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)};
|
||||
};
|
||||
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;
|
||||
};
|
||||
class GVAR(openAfterTreatment) {
|
||||
displayName = CSTRING(openAfterTreatment);
|
||||
description = CSTRING(openAfterTreatment_Descr);
|
||||
typeName = "BOOL";
|
||||
value = 1;
|
||||
isClientSettable = 1;
|
||||
};
|
||||
};
|
11
addons/medical_menu/CfgEventHandlers.hpp
Normal file
11
addons/medical_menu/CfgEventHandlers.hpp
Normal file
@ -0,0 +1,11 @@
|
||||
class Extended_PreInit_EventHandlers {
|
||||
class ADDON {
|
||||
init = QUOTE(call COMPILE_FILE(XEH_preInit));
|
||||
};
|
||||
};
|
||||
|
||||
class Extended_PostInit_EventHandlers {
|
||||
class ADDON {
|
||||
init = QUOTE(call COMPILE_FILE(XEH_postInit));
|
||||
};
|
||||
};
|
70
addons/medical_menu/CfgVehicles.hpp
Normal file
70
addons/medical_menu/CfgVehicles.hpp
Normal file
@ -0,0 +1,70 @@
|
||||
|
||||
class CfgVehicles {
|
||||
|
||||
class ACE_Module;
|
||||
class ACE_moduleMedicalSettings: ACE_Module {
|
||||
scope = 2;
|
||||
displayName = CSTRING(module_DisplayName);
|
||||
icon = QUOTE(PATHTOEF(medical,UI\Icon_Module_Medical_ca.paa));
|
||||
category = "ACE_medical";
|
||||
function = QUOTE(DFUNC(module));
|
||||
functionPriority = 1;
|
||||
isGlobal = 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 = PATHTOEF(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 = PATHTOEF(medical,UI\icons\medical_cross.paa);
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
10
addons/medical_menu/README.md
Normal file
10
addons/medical_menu/README.md
Normal file
@ -0,0 +1,10 @@
|
||||
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)
|
34
addons/medical_menu/XEH_postInit.sqf
Normal file
34
addons/medical_menu/XEH_postInit.sqf
Normal file
@ -0,0 +1,34 @@
|
||||
#include "script_component.hpp"
|
||||
|
||||
if (!hasInterface) exitwith {};
|
||||
|
||||
["medical_treatmentSuccess", {
|
||||
|
||||
if (GVAR(openAfterTreatment) && {GVAR(pendingReopen)}) then {
|
||||
GVAR(pendingReopen) = false;
|
||||
[{
|
||||
[GVAR(INTERACTION_TARGET)] call FUNC(openMenu);
|
||||
}, []] call EFUNC(common,execNextFrame);
|
||||
};
|
||||
}] call EFUNC(common,addEventhandler);
|
||||
|
||||
|
||||
["ACE3 Common", QGVAR(displayMenuKeyPressed), localize LSTRING(DisplayMenuKey),
|
||||
{
|
||||
_target = cursorTarget;
|
||||
if (!(_target isKindOf "CAManBase") || ACE_player distance _target > 10) 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 (ACE_time - GVAR(lastOpenedOn) > 0.5) then {
|
||||
[ObjNull] call FUNC(openMenu);
|
||||
};
|
||||
},
|
||||
[35, [false, false, false]], false, 0] call CBA_fnc_addKeybind;
|
||||
|
29
addons/medical_menu/XEH_preInit.sqf
Normal file
29
addons/medical_menu/XEH_preInit.sqf
Normal file
@ -0,0 +1,29 @@
|
||||
#include "script_component.hpp"
|
||||
|
||||
ADDON = false;
|
||||
|
||||
PREP(onMenuOpen);
|
||||
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);
|
||||
|
||||
GVAR(INTERACTION_TARGET) = objNull;
|
||||
GVAR(actionsOther) = [];
|
||||
GVAR(actionsSelf) = [];
|
||||
GVAR(selectedBodyPart) = 0;
|
||||
|
||||
call FUNC(collectActions);
|
||||
|
||||
ADDON = true;
|
18
addons/medical_menu/config.cpp
Normal file
18
addons/medical_menu/config.cpp
Normal file
@ -0,0 +1,18 @@
|
||||
#include "script_component.hpp"
|
||||
|
||||
class CfgPatches {
|
||||
class ADDON {
|
||||
units[] = {};
|
||||
weapons[] = {};
|
||||
requiredVersion = REQUIRED_VERSION;
|
||||
requiredAddons[] = {"ace_medical"};
|
||||
author[] = {$STR_ACE_Common_ACETeam, "Glowbal"};
|
||||
authorUrl = "http://ace3mod.com";
|
||||
VERSION_CONFIG;
|
||||
};
|
||||
};
|
||||
|
||||
#include "CfgEventHandlers.hpp"
|
||||
#include "ui\menu.hpp"
|
||||
#include "ACE_Settings.hpp"
|
||||
#include "CfgVehicles.hpp"
|
BIN
addons/medical_menu/data/background_img.paa
Normal file
BIN
addons/medical_menu/data/background_img.paa
Normal file
Binary file not shown.
BIN
addons/medical_menu/data/icons/advanced_treatment_small.paa
Normal file
BIN
addons/medical_menu/data/icons/advanced_treatment_small.paa
Normal file
Binary file not shown.
BIN
addons/medical_menu/data/icons/airway_management_small.paa
Normal file
BIN
addons/medical_menu/data/icons/airway_management_small.paa
Normal file
Binary file not shown.
BIN
addons/medical_menu/data/icons/bandage_fracture_small.paa
Normal file
BIN
addons/medical_menu/data/icons/bandage_fracture_small.paa
Normal file
Binary file not shown.
BIN
addons/medical_menu/data/icons/examine_patient_small.paa
Normal file
BIN
addons/medical_menu/data/icons/examine_patient_small.paa
Normal file
Binary file not shown.
BIN
addons/medical_menu/data/icons/icon_advanced_treatment.paa
Normal file
BIN
addons/medical_menu/data/icons/icon_advanced_treatment.paa
Normal file
Binary file not shown.
BIN
addons/medical_menu/data/icons/icon_airway_management.paa
Normal file
BIN
addons/medical_menu/data/icons/icon_airway_management.paa
Normal file
Binary file not shown.
BIN
addons/medical_menu/data/icons/icon_bandage_fracture.paa
Normal file
BIN
addons/medical_menu/data/icons/icon_bandage_fracture.paa
Normal file
Binary file not shown.
BIN
addons/medical_menu/data/icons/icon_bleeding.paa
Normal file
BIN
addons/medical_menu/data/icons/icon_bleeding.paa
Normal file
Binary file not shown.
BIN
addons/medical_menu/data/icons/icon_carry.paa
Normal file
BIN
addons/medical_menu/data/icons/icon_carry.paa
Normal file
Binary file not shown.
BIN
addons/medical_menu/data/icons/icon_examine_patient.paa
Normal file
BIN
addons/medical_menu/data/icons/icon_examine_patient.paa
Normal file
Binary file not shown.
BIN
addons/medical_menu/data/icons/icon_medication.paa
Normal file
BIN
addons/medical_menu/data/icons/icon_medication.paa
Normal file
Binary file not shown.
BIN
addons/medical_menu/data/icons/icon_toggle_self.paa
Normal file
BIN
addons/medical_menu/data/icons/icon_toggle_self.paa
Normal file
Binary file not shown.
BIN
addons/medical_menu/data/icons/icon_tourniquet.paa
Normal file
BIN
addons/medical_menu/data/icons/icon_tourniquet.paa
Normal file
Binary file not shown.
BIN
addons/medical_menu/data/icons/icon_tourniquet_small.paa
Normal file
BIN
addons/medical_menu/data/icons/icon_tourniquet_small.paa
Normal file
Binary file not shown.
BIN
addons/medical_menu/data/icons/icon_triage_card.paa
Normal file
BIN
addons/medical_menu/data/icons/icon_triage_card.paa
Normal file
Binary file not shown.
BIN
addons/medical_menu/data/icons/medication_small.paa
Normal file
BIN
addons/medical_menu/data/icons/medication_small.paa
Normal file
Binary file not shown.
BIN
addons/medical_menu/data/icons/toggle_self_small.paa
Normal file
BIN
addons/medical_menu/data/icons/toggle_self_small.paa
Normal file
Binary file not shown.
BIN
addons/medical_menu/data/icons/triage_card_small.paa
Normal file
BIN
addons/medical_menu/data/icons/triage_card_small.paa
Normal file
Binary file not shown.
BIN
addons/medical_menu/data/ui_background.paa
Normal file
BIN
addons/medical_menu/data/ui_background.paa
Normal file
Binary file not shown.
24
addons/medical_menu/functions/fnc_canOpenMenu.sqf
Normal file
24
addons/medical_menu/functions/fnc_canOpenMenu.sqf
Normal file
@ -0,0 +1,24 @@
|
||||
/*
|
||||
* Author: Glowbal
|
||||
* Check if ACE_player can Open the medical menu
|
||||
*
|
||||
* Arguments:
|
||||
* 0: Caller <OBJECT>
|
||||
* 1: Target <OBJECT>
|
||||
*
|
||||
* Return Value:
|
||||
* Can open <BOOL>
|
||||
*
|
||||
* Example:
|
||||
* [] call ace_medical_menu_canOpenMenu
|
||||
*
|
||||
* Public: No
|
||||
*/
|
||||
#include "script_component.hpp"
|
||||
|
||||
params ["_caller", "_target"];
|
||||
|
||||
if !(GVAR(allow) == 1 || (GVAR(allow) == 2 && {vehicle _caller != _caller || vehicle _target != _target} && {alive ACE_player})) exitwith {false};
|
||||
if !(GVAR(useMenu) == 1 || (GVAR(useMenu) == 2 && {vehicle _caller != _caller || vehicle _target != _target} && {alive ACE_player})) exitwith {false};
|
||||
|
||||
true;
|
42
addons/medical_menu/functions/fnc_collectActions.sqf
Normal file
42
addons/medical_menu/functions/fnc_collectActions.sqf
Normal file
@ -0,0 +1,42 @@
|
||||
/*
|
||||
* 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", "_configAdvanced", "_fnc_compileActionsLevel"];
|
||||
_configBasic = (configFile >> "ACE_Medical_Actions" >> "Basic");
|
||||
_configAdvanced = (configFile >> "ACE_Medical_Actions" >> "Advanced");
|
||||
|
||||
_fnc_compileActionsLevel = {
|
||||
private ["_entryCount", "_actions", "_displayName", "_condition", "_category", "_statement"];
|
||||
params ["_config"];
|
||||
_actions = [];
|
||||
|
||||
{
|
||||
if (isClass _x) then {
|
||||
_displayName = getText (_x >> "displayName");
|
||||
_category = getText (_x >> "category");
|
||||
_condition = format[QUOTE([ARR_4(ACE_player, GVAR(INTERACTION_TARGET), EGVAR(medical,SELECTIONS) select GVAR(selectedBodyPart), '%1')] call DEFUNC(medical,canTreatCached)), configName _x];
|
||||
_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 // return
|
||||
};
|
||||
|
||||
GVAR(actionsBasic) = [_configBasic] call _fnc_compileActionsLevel;
|
||||
GVAR(actionsAdvanced) = [_configAdvanced] call _fnc_compileActionsLevel;
|
42
addons/medical_menu/functions/fnc_getTreatmentOptions.sqf
Normal file
42
addons/medical_menu/functions/fnc_getTreatmentOptions.sqf
Normal file
@ -0,0 +1,42 @@
|
||||
/*
|
||||
* 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"
|
||||
|
||||
private "_actions";
|
||||
params ["_player", "_target", "_name"];
|
||||
|
||||
if (!([ACE_player, _target, ["isNotInside"]] call EFUNC(common,canInteractWith))) exitwith {[]};
|
||||
|
||||
_actions = if (EGVAR(medical,level) == 2) then {
|
||||
GVAR(actionsAdvanced);
|
||||
} else {
|
||||
GVAR(actionsBasic);
|
||||
};
|
||||
|
||||
_collectedActions = [];
|
||||
|
||||
_bodyPart = EGVAR(medical,SELECTIONS) select GVAR(selectedBodyPart);
|
||||
{
|
||||
_x params ["", "_currentCategory", "_currentCondition"];
|
||||
if (_name == _currentCategory && {call _currentCondition}) then {
|
||||
_collectedActions pushBack _x;
|
||||
};
|
||||
nil
|
||||
} count _actions;
|
||||
|
||||
_collectedActions // return
|
110
addons/medical_menu/functions/fnc_handleUI_DisplayOptions.sqf
Normal file
110
addons/medical_menu/functions/fnc_handleUI_DisplayOptions.sqf
Normal file
@ -0,0 +1,110 @@
|
||||
/*
|
||||
* Author: Glowbal
|
||||
* Display the available treatment options in category
|
||||
*
|
||||
* Arguments:
|
||||
* 0: Category name <STRING>
|
||||
*
|
||||
* Return Value:
|
||||
* None
|
||||
*
|
||||
* Example:
|
||||
* ["some category"] call ace_medical_menu_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", "_card", "_ctrl", "_code"];
|
||||
|
||||
params ["_name"];
|
||||
|
||||
disableSerialization;
|
||||
|
||||
_display = uiNamespace getVariable QGVAR(medicalMenu);
|
||||
if (isNil "_display") exitwith {}; // no valid dialog present
|
||||
|
||||
if (_name isEqualTo "toggle") exitwith {
|
||||
if (GVAR(INTERACTION_TARGET) != ACE_player) then {
|
||||
_newTarget = ACE_player;
|
||||
} else {
|
||||
_newTarget = GVAR(INTERACTION_TARGET_PREVIOUS);
|
||||
};
|
||||
|
||||
GVAR(INTERACTION_TARGET_PREVIOUS) = GVAR(INTERACTION_TARGET);
|
||||
[_newTarget] spawn {
|
||||
closeDialog 0;
|
||||
sleep 0.1;
|
||||
[_this select 0] call FUNC(openMenu);
|
||||
};
|
||||
};
|
||||
|
||||
// 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((ACE_time - _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;
|
@ -0,0 +1,35 @@
|
||||
/*
|
||||
* Author: Glowbal
|
||||
* Handle the triage card display
|
||||
*
|
||||
* Arguments:
|
||||
* None
|
||||
*
|
||||
* Return Value:
|
||||
* None
|
||||
*
|
||||
* Example:
|
||||
* [] call ace_medical_menu_handleUI_dropDownTriageCard
|
||||
*
|
||||
* Public: No
|
||||
*/
|
||||
#include "script_component.hpp"
|
||||
|
||||
private ["_display", "_pos", "_ctrl", "_currentPos", "_idc"];
|
||||
|
||||
disableSerialization;
|
||||
|
||||
_display = uiNamespace getVariable QGVAR(medicalMenu);
|
||||
_pos = [0, 0, 0, 0];
|
||||
_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)];
|
||||
_ctrl = _display displayCtrl _idc;
|
||||
_ctrl ctrlSetPosition _pos;
|
||||
_ctrl ctrlCommit 0;
|
||||
};
|
22
addons/medical_menu/functions/fnc_module.sqf
Normal file
22
addons/medical_menu/functions/fnc_module.sqf
Normal 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", "_units", "_activated"];
|
||||
|
||||
if !(_activated) exitWith {};
|
||||
|
||||
[_logic, QGVAR(allow), "allow"] call EFUNC(common,readSettingFromModule);
|
77
addons/medical_menu/functions/fnc_onMenuOpen.sqf
Normal file
77
addons/medical_menu/functions/fnc_onMenuOpen.sqf
Normal file
@ -0,0 +1,77 @@
|
||||
/*
|
||||
* Author: Glowbal
|
||||
* Handle medical menu opened
|
||||
*
|
||||
* Arguments:
|
||||
* 0: Medical Menu display <DISPLAY>
|
||||
*
|
||||
* Return Value:
|
||||
* None
|
||||
*
|
||||
* Example:
|
||||
* [medical_menu] call ace_medical_menu_onMenuOpen
|
||||
*
|
||||
* Public: No
|
||||
*/
|
||||
#include "script_component.hpp"
|
||||
|
||||
private "_target";
|
||||
|
||||
params ["_display"];
|
||||
|
||||
if (isNil "_display") exitwith {};
|
||||
|
||||
if (isNil QGVAR(LatestDisplayOptionMenu)) then {
|
||||
GVAR(LatestDisplayOptionMenu) = "triage";
|
||||
} else {
|
||||
if (GVAR(LatestDisplayOptionMenu) == "toggle") then {
|
||||
GVAR(LatestDisplayOptionMenu) = "triage";
|
||||
GVAR(INTERACTION_TARGET) = GVAR(INTERACTION_TARGET_PREVIOUS);
|
||||
};
|
||||
};
|
||||
|
||||
_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];
|
||||
|
||||
[QGVAR(onMenuOpen), "onEachFrame", {
|
||||
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);
|
||||
|
||||
_status = [GVAR(INTERACTION_TARGET)] call FUNC(getTriageStatus);
|
||||
(_display displayCtrl 2000) ctrlSetText (_status select 0);
|
||||
(_display displayCtrl 2000) ctrlSetBackgroundColor (_status select 2);
|
||||
}, [_display]] call BIS_fnc_addStackedEventHandler;
|
||||
|
||||
["Medical_onMenuOpen", [ACE_player, _interactionTarget]] call EFUNC(common,localEvent);
|
33
addons/medical_menu/functions/fnc_openMenu.sqf
Normal file
33
addons/medical_menu/functions/fnc_openMenu.sqf
Normal file
@ -0,0 +1,33 @@
|
||||
/*
|
||||
* Author: Glowbal
|
||||
* Open the medical menu for target
|
||||
*
|
||||
* Arguments:
|
||||
* 0: Target <OBJECT>
|
||||
*
|
||||
* Return Value:
|
||||
* None
|
||||
*
|
||||
* Example:
|
||||
* [some_player] call ace_medical_menu_openMenu
|
||||
*
|
||||
* Public: No
|
||||
*/
|
||||
#include "script_component.hpp"
|
||||
|
||||
params ["_interactionTarget"];
|
||||
|
||||
if (dialog || isNull _interactionTarget) exitwith {
|
||||
disableSerialization;
|
||||
|
||||
private "_display";
|
||||
_display = uiNamespace getVariable QGVAR(medicalMenu);
|
||||
if (!isNil "_display") then {
|
||||
closeDialog 314412;
|
||||
};
|
||||
};
|
||||
|
||||
GVAR(INTERACTION_TARGET) = _interactionTarget;
|
||||
|
||||
createDialog QGVAR(medicalMenu);
|
||||
GVAR(lastOpenedOn) = ACE_time;
|
18
addons/medical_menu/functions/fnc_setTriageStatus.sqf
Normal file
18
addons/medical_menu/functions/fnc_setTriageStatus.sqf
Normal 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];
|
42
addons/medical_menu/functions/fnc_updateActivityLog.sqf
Normal file
42
addons/medical_menu/functions/fnc_updateActivityLog.sqf
Normal file
@ -0,0 +1,42 @@
|
||||
/*
|
||||
* 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_updateActivityLog
|
||||
*
|
||||
* Public: No
|
||||
*/
|
||||
#include "script_component.hpp"
|
||||
|
||||
private "_logCtrl";
|
||||
|
||||
params ["_display", "_logs"];
|
||||
|
||||
_logCtrl = _display displayCtrl 214;
|
||||
lbClear _logCtrl;
|
||||
|
||||
{
|
||||
_x params ["_message", "_moment", "_dummy", "_arguments"];
|
||||
|
||||
if (isLocalized _message) then {
|
||||
_message = localize _message;
|
||||
};
|
||||
|
||||
{
|
||||
if (typeName _x == "STRING" && {isLocalized _x}) then {
|
||||
_arguments set [_foreachIndex, localize _x];
|
||||
};
|
||||
} forEach _arguments;
|
||||
|
||||
_message = format ([_message] + _arguments);
|
||||
_logCtrl lbAdd format ["%1 %2", _moment, _message];
|
||||
nil
|
||||
} count _logs;
|
42
addons/medical_menu/functions/fnc_updateBodyImage.sqf
Normal file
42
addons/medical_menu/functions/fnc_updateBodyImage.sqf
Normal file
@ -0,0 +1,42 @@
|
||||
/*
|
||||
* Author: Glowbal
|
||||
* Update the body image on the menu
|
||||
*
|
||||
* Arguments:
|
||||
* 0: selection bloodloss <ARRAY>
|
||||
* 1: display <DISPLAY>
|
||||
*
|
||||
* Return Value:
|
||||
* None
|
||||
*
|
||||
* Example:
|
||||
* [0.3, some_display] call ace_medical_menu_updateBodyImage
|
||||
*
|
||||
* Public: No
|
||||
*/
|
||||
#include "script_component.hpp"
|
||||
|
||||
params ["_selectionBloodLoss", "_display"];
|
||||
|
||||
// Handle the body image coloring
|
||||
_availableSelections = [50, 51, 52, 53, 54, 55];
|
||||
{
|
||||
private ["_red", "_green", "_blue"];
|
||||
|
||||
_red = 1;
|
||||
_green = 1;
|
||||
_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;
|
35
addons/medical_menu/functions/fnc_updateIcons.sqf
Normal file
35
addons/medical_menu/functions/fnc_updateIcons.sqf
Normal file
@ -0,0 +1,35 @@
|
||||
/*
|
||||
* Author: Glowbal
|
||||
* Update the category icons
|
||||
*
|
||||
* Arguments:
|
||||
* None
|
||||
*
|
||||
* Return Value:
|
||||
* None
|
||||
*
|
||||
* Example:
|
||||
* [] call ace_medical_menu_updateIcons
|
||||
*
|
||||
* Public: No
|
||||
*/
|
||||
#include "script_component.hpp"
|
||||
|
||||
#define START_IDC 111
|
||||
#define END_IDC 118
|
||||
|
||||
private ["_display", "_idc", "_options", "_name", "_amount"];
|
||||
|
||||
disableSerialization;
|
||||
|
||||
_display = uiNamespace getVariable QGVAR(medicalMenu);
|
||||
|
||||
_options = ["triage" , "examine", "bandage", "medication", "airway", "advanced", "drag", "toggle"];
|
||||
for "_idc" from START_IDC to END_IDC step 1 do {
|
||||
_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];
|
||||
};
|
||||
};
|
36
addons/medical_menu/functions/fnc_updateInformationLists.sqf
Normal file
36
addons/medical_menu/functions/fnc_updateInformationLists.sqf
Normal 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"
|
||||
|
||||
private "_lbCtrl";
|
||||
|
||||
params ["_display", "_genericMessages", "_allInjuryTexts"];
|
||||
|
||||
_lbCtrl = _display displayCtrl 213;
|
||||
lbClear _lbCtrl;
|
||||
{
|
||||
_lbCtrl lbAdd (_x select 0);
|
||||
_lbCtrl lbSetColor [_forEachIndex, _x select 1];
|
||||
} forEach _genericMessages;
|
||||
|
||||
_amountOfGeneric = count _genericMessages;
|
||||
{
|
||||
_lbCtrl lbAdd (_x select 0);
|
||||
_lbCtrl lbSetColor [_forEachIndex + _amountOfGeneric, _x select 1];
|
||||
} forEach _allInjuryTexts;
|
||||
|
||||
if (count _allInjuryTexts == 0) then {
|
||||
_lbCtrl lbAdd localize ELSTRING(medical,NoInjuriesBodypart);
|
||||
};
|
42
addons/medical_menu/functions/fnc_updateQuickViewLog.sqf
Normal file
42
addons/medical_menu/functions/fnc_updateQuickViewLog.sqf
Normal file
@ -0,0 +1,42 @@
|
||||
/*
|
||||
* 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_updateQuickViewLog
|
||||
*
|
||||
* Public: No
|
||||
*/
|
||||
#include "script_component.hpp"
|
||||
|
||||
private "_logCtrl";
|
||||
|
||||
params ["_display", "_logs"];
|
||||
|
||||
_logCtrl = _display displayCtrl 215;
|
||||
lbClear _logCtrl;
|
||||
|
||||
{
|
||||
_x params ["_message", "_moment", "_dummy", "_arguments"];
|
||||
|
||||
if (isLocalized _message) then {
|
||||
_message = localize _message;
|
||||
};
|
||||
|
||||
{
|
||||
if (typeName _x == "STRING" && {isLocalized _x}) then {
|
||||
_arguments set [_foreachIndex, localize _x];
|
||||
};
|
||||
} forEach _arguments;
|
||||
|
||||
_message = format ([_message] + _arguments);
|
||||
_logCtrl lbAdd format ["%1 %2", _moment, _message];
|
||||
nil
|
||||
} count _logs;
|
144
addons/medical_menu/functions/fnc_updateUIInfo.sqf
Normal file
144
addons/medical_menu/functions/fnc_updateUIInfo.sqf
Normal file
@ -0,0 +1,144 @@
|
||||
/*
|
||||
* 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_updateUIInfo
|
||||
*
|
||||
* Public: No
|
||||
*/
|
||||
#include "script_component.hpp"
|
||||
|
||||
private ["_genericMessages", "_totalIvVolume", "_damaged", "_selectionBloodLoss", "_allInjuryTexts"];
|
||||
|
||||
params ["_target", "_display"];
|
||||
|
||||
_selectionN = GVAR(selectedBodyPart);
|
||||
if (_selectionN < 0 || _selectionN > 5) exitwith {};
|
||||
|
||||
_genericMessages = [];
|
||||
if (EGVAR(medical,level) >= 2) then {
|
||||
_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 [QGVAR(isBleeding), false]) then {
|
||||
_genericMessages pushBack [localize ELSTRING(medical,Status_Bleeding), [1, 0.1, 0.1, 1]];
|
||||
};
|
||||
|
||||
if (_target getVariable [QGVAR(hasLostBlood), 0] > 1) then {
|
||||
_genericMessages pushBack [localize ELSTRING(medical,Status_Lost_Blood), [1, 0.1, 0.1, 1]];
|
||||
};
|
||||
|
||||
if (((_target getVariable [QGVAR(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 [QGVAR(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 GVAR(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) 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, _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, _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 {
|
||||
_damaged = [true, true, true, true, true, true];
|
||||
{
|
||||
_selectionBloodLoss set [_forEachIndex, _target getHitPointDamage _x];
|
||||
|
||||
if (_target getHitPointDamage _x > 0 && _forEachIndex == _selectionN) then {
|
||||
_pointDamage = _target getHitPointDamage _x;
|
||||
_severity = switch (true) do {
|
||||
case (_pointDamage > 0.5): {localize ELSTRING(medical,HeavilyWounded)};
|
||||
case (_pointDamage > 0.1): {localize ELSTRING(medical,LightlyWounded)};
|
||||
default {localize ELSTRING(medical,VeryLightlyWounded)};
|
||||
};
|
||||
_part = localize ([
|
||||
ELSTRING(medical,Head),
|
||||
ELSTRING(medical,Torso),
|
||||
ELSTRING(medical,LeftArm),
|
||||
ELSTRING(medical,RightArm),
|
||||
ELSTRING(medical,LeftLeg),
|
||||
ELSTRING(medical,RightLeg)
|
||||
] select _forEachIndex);
|
||||
_allInjuryTexts pushBack [format ["%1 %2", _severity, toLower _part], [1,1,1,1]];
|
||||
};
|
||||
} forEach ["HitHead", "HitBody", "HitLeftArm", "HitRightArm", "HitLeftLeg", "HitRightLeg"];
|
||||
};
|
||||
|
||||
[_selectionBloodLoss, _display] call FUNC(updateBodyImage);
|
||||
[_display, _genericMessages, _allInjuryTexts] call FUNC(updateInformationLists);
|
||||
|
||||
_logs = _target getVariable [QEGVAR(medical,logFile_activity_view), []];
|
||||
[_display, _logs] call FUNC(updateActivityLog);
|
||||
|
||||
_logs = _target getVariable [QEGVAR(medical,logFile_quick_view), []];
|
||||
[_display, _logs] call FUNC(updateQuickViewLog);
|
||||
|
||||
_triageStatus = [_target] call EFUNC(medical,getTriageStatus);
|
||||
(_display displayCtrl 2000) ctrlSetText (_triageStatus select 0);
|
||||
(_display displayCtrl 2000) ctrlSetBackgroundColor (_triageStatus select 2);
|
1
addons/medical_menu/functions/script_component.hpp
Normal file
1
addons/medical_menu/functions/script_component.hpp
Normal file
@ -0,0 +1 @@
|
||||
#include "\z\ace\addons\medical_menu\script_component.hpp"
|
12
addons/medical_menu/script_component.hpp
Normal file
12
addons/medical_menu/script_component.hpp
Normal file
@ -0,0 +1,12 @@
|
||||
#define COMPONENT medical_menu
|
||||
#include "\z\ace\addons\main\script_mod.hpp"
|
||||
|
||||
#ifdef DEBUG_ENABLED_MEDICAL_MENU
|
||||
#define DEBUG_MODE_FULL
|
||||
#endif
|
||||
|
||||
#ifdef DEBUG_SETTINGS_MEDICAL_MENU
|
||||
#define DEBUG_SETTINGS DEBUG_SETTINGS_MEDICAL_MENU
|
||||
#endif
|
||||
|
||||
#include "\z\ace\addons\main\script_macros.hpp"
|
391
addons/medical_menu/stringtable.xml
Normal file
391
addons/medical_menu/stringtable.xml
Normal file
@ -0,0 +1,391 @@
|
||||
<?xml version="1.0"encoding="UTF-8"?>
|
||||
<Project name="Combat Space Enhancement">
|
||||
<Package name="Combat Medical System">
|
||||
<Container name="UI">
|
||||
<Key ID="STR_ACE_Medical_Menu_OpenMenu">
|
||||
<English>Medical Menu</English>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Medical_Menu_allow">
|
||||
<English>Allow Medical Menu</English>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Medical_Menu_allow_Descr">
|
||||
<English>Allow clients to use the medical menu</English>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Medical_Menu_useMenu">
|
||||
<English>Use Medical menu</English>
|
||||
</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>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Medical_Menu_openAfterTreatment">
|
||||
<English>Re-open Medical menu</English>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Medical_Menu_openAfterTreatment_Descr">
|
||||
<English>Re-open the medical menu after succesful treatment</English>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Medical_Menu_DisplayMenuKey">
|
||||
<English>Open Medical Menu</English>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Medical_Menu_module_DisplayName">
|
||||
<English>Medical Menu Settings</English>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Medical_Menu_module_Desc">
|
||||
<English>Configure the usage of the Medical Menu</English>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Medical_Menu_EXAMINE_TREATMENT">
|
||||
<Original>EXAMINE & TREATMENT</Original>
|
||||
<Russian>ОСМОТР И ЛЕЧЕНИЕ</Russian>
|
||||
<English>EXAMINE & TREATMENT</English>
|
||||
<Spanish>EXAMINAR & TRATAMIENTO</Spanish>
|
||||
<French>EXAMINER & TRAITEMENTS</French>
|
||||
<Polish>BADANIE & LECZENIE</Polish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Medical_Menu_STATUS">
|
||||
<Original>STATUS</Original>
|
||||
<Russian>СОСТОЯНИЕ</Russian>
|
||||
<English>STATUS</English>
|
||||
<Spanish>ESTADO</Spanish>
|
||||
<French>ÉTATS</French>
|
||||
<Polish>STATUS</Polish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Medical_Menu_OVERVIEW">
|
||||
<Original>OVERVIEW</Original>
|
||||
<Russian>ОБЩАЯ ИНФОРМАЦИЯ</Russian>
|
||||
<English>OVERVIEW</English>
|
||||
<Spanish>DESCRIPCIÓN</Spanish>
|
||||
<French>DESCRIPTION</French>
|
||||
<Polish>OPIS</Polish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Medical_Menu_ACTIVITY_LOG">
|
||||
<Original>ACTIVITY LOG</Original>
|
||||
<Russian>ПРОВЕДЕННЫЕ МАНИПУЛЯЦИИ</Russian>
|
||||
<English>ACTIVITY LOG</English>
|
||||
<Spanish>REGISTRO DE ACTIVIDAD</Spanish>
|
||||
<French>REGISTRE DES SOINS</French>
|
||||
<Polish>LOGI AKTYWNOŚCI</Polish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Medical_Menu_QUICK_VIEW">
|
||||
<Original>QUICK VIEW</Original>
|
||||
<Russian>БЫСТРЫЙ ОСМОТР</Russian>
|
||||
<English>QUICK VIEW</English>
|
||||
<Spanish>VISTA RÁPIDA</Spanish>
|
||||
<French>VUE RAPIDE</French>
|
||||
<Polish>SZYBKI PODGLĄD</Polish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Medical_Menu_TRIAGE_NONE">
|
||||
<Original>None</Original>
|
||||
<Russian>Не ранен</Russian>
|
||||
<Spanish>Ninguno</Spanish>
|
||||
<French>Aucun</French>
|
||||
<Polish>Brak</Polish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Medical_Menu_TRIAGE_MINOR">
|
||||
<Original>Minor</Original>
|
||||
<Russian>Несрочная помощь</Russian>
|
||||
<Spanish>Menor</Spanish>
|
||||
<French>Mineur</French>
|
||||
<Polish>Normalny</Polish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Medical_Menu_TRIAGE_DELAYED">
|
||||
<Original>Delayed</Original>
|
||||
<Russian>Срочная помощь</Russian>
|
||||
<Spanish>Diferido</Spanish>
|
||||
<French>Urgent</French>
|
||||
<Polish>Opóźniony</Polish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Medical_Menu_TRIAGE_IMMEDIATE">
|
||||
<Original>Immediate</Original>
|
||||
<Russian>Неотложная помощь</Russian>
|
||||
<Spanish>Inmediato</Spanish>
|
||||
<French>Immédiat</French>
|
||||
<Polish>Natychmiastowy</Polish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Medical_Menu_TRIAGE_DECEASED">
|
||||
<Original>Deceased</Original>
|
||||
<Russian>Морг</Russian>
|
||||
<Spanish>Fallecido</Spanish>
|
||||
<French>Décédé</French>
|
||||
<Polish>Nie żyje</Polish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Medical_Menu_VIEW_TRIAGE_CARD">
|
||||
<Original>View triage Card</Original>
|
||||
<Russian>Смотреть первичную карточку</Russian>
|
||||
<Spanish>Ver Triage</Spanish>
|
||||
<French>Voir Carte de Triage</French>
|
||||
<Polish>Pokaż kartę segregacyjną</Polish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Medical_Menu_EXAMINE_PATIENT">
|
||||
<Original>Examine Patient</Original>
|
||||
<Russian>Осмотреть пациента</Russian>
|
||||
<Spanish>Examinar Paciente</Spanish>
|
||||
<French>Examiner Patient</French>
|
||||
<Polish>Zbadaj pacjenta</Polish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Medical_Menu_BANDAGE_FRACTURES">
|
||||
<Original>Bandage / Fractures</Original>
|
||||
<Russian>Раны / переломы</Russian>
|
||||
<Spanish>Vendajes/Fracturas </Spanish>
|
||||
<French>Bandages / Fractures</French>
|
||||
<Polish>Bandaże / Złamania</Polish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Medical_Menu_MEDICATION">
|
||||
<Original>Medication</Original>
|
||||
<Russian>Медикаменты</Russian>
|
||||
<Spanish>Medicación</Spanish>
|
||||
<French>Médications</French>
|
||||
<Polish>Leki</Polish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Medical_Menu_AIRWAY_MANAGEMENT">
|
||||
<Original>Airway Management</Original>
|
||||
<Russian>Дыхательные пути</Russian>
|
||||
<Spanish>Vías Aéreas</Spanish>
|
||||
<French>Gestion Des Voie REspiratoire</French>
|
||||
<Polish>Drogi oddechowe</Polish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Medical_Menu_ADVANCED_TREATMENT">
|
||||
<Original>Advanced Treatments</Original>
|
||||
<Russian>Специальная медпомощь</Russian>
|
||||
<Spanish>Tratamientos Avanzados</Spanish>
|
||||
<French>Traitement Avancé</French>
|
||||
<Polish>Zaawansowane zabiegi</Polish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Medical_Menu_DRAG_CARRY">
|
||||
<Original>Drag/Carry</Original>
|
||||
<Russian>Тащить/нести</Russian>
|
||||
<Spanish>Arrastrar/Cargar</Spanish>
|
||||
<French>Glisser/Porter</French>
|
||||
<Polish>Ciągnij/Nieś</Polish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Medical_Menu_TOGGLE_SELF">
|
||||
<Original>Toggle (Self)</Original>
|
||||
<Russian>Лечить себя/другого раненого</Russian>
|
||||
<French>Activer (sois)</French>
|
||||
<Polish>Przełącz (na siebie)</Polish>
|
||||
<Spanish>Alternar</Spanish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Medical_Menu_SELECT_TRIAGE_STATUS">
|
||||
<Original>Select triage status</Original>
|
||||
<Russian>Сортировка</Russian>
|
||||
<Spanish>Seleccionar estado de Triage</Spanish>
|
||||
<French>Selectioner l'état de Triage</French>
|
||||
<Polish>Wybierz priorytet</Polish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Medical_Menu_SELECT_HEAD">
|
||||
<Original>Select Head</Original>
|
||||
<Russian>Выбрать голову</Russian>
|
||||
<Spanish>Seleccionar Cabeza</Spanish>
|
||||
<French>Selectioner Tête</French>
|
||||
<Polish>Wybierz głowę</Polish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Medical_Menu_SELECT_TORSO">
|
||||
<Original>Select Torso</Original>
|
||||
<Russian>Выбрать торс</Russian>
|
||||
<Spanish>Seleccionar Torso</Spanish>
|
||||
<French>Selectioner Torse</French>
|
||||
<Polish>Wybierz tors</Polish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Medical_Menu_SELECT_ARM_L">
|
||||
<Original>Select Left Arm</Original>
|
||||
<Russian>Выбрать левую руку</Russian>
|
||||
<Spanish>Seleccionar Brazo Izquierdo</Spanish>
|
||||
<French>Selectioner Bras Gauche</French>
|
||||
<Polish>Wybierz lewą rękę</Polish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Medical_Menu_SELECT_ARM_R">
|
||||
<Original>Select Right Arm</Original>
|
||||
<Russian>Выбрать правую руку</Russian>
|
||||
<Spanish>Seleccionar Brazo Derecho</Spanish>
|
||||
<French>Selectioner Bras Droit</French>
|
||||
<Polish>Wybierz prawą rękę</Polish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Medical_Menu_SELECT_LEG_L">
|
||||
<Original>Select Left Leg</Original>
|
||||
<Russian>Выбрать левую ногу</Russian>
|
||||
<Spanish>Seleccionar Pierna Izquierda</Spanish>
|
||||
<French>Selectioner Jambe Gauche</French>
|
||||
<Polish>Wybierz lewą nogę</Polish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Medical_Menu_SELECT_LEG_R">
|
||||
<Original>Select Right Leg</Original>
|
||||
<Russian>Выбрать правую ногу</Russian>
|
||||
<Spanish>Seleccionar Pierna Derecha</Spanish>
|
||||
<French>Selectioner Jambe Droite</French>
|
||||
<Polish>Wybierz prawą nogę</Polish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Medical_Menu_HEAD">
|
||||
<Original>Head</Original>
|
||||
<Russian>Голова</Russian>
|
||||
<Spanish>Cabeza</Spanish>
|
||||
<French>Tête</French>
|
||||
<Polish>Głowa</Polish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Medical_Menu_TORSO">
|
||||
<Original>Torso</Original>
|
||||
<Russian>Торс</Russian>
|
||||
<French>Torse</French>
|
||||
<Polish>Tors</Polish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Medical_Menu_ARM_L">
|
||||
<Original>Left Arm</Original>
|
||||
<Russian>Левая рука</Russian>
|
||||
<Spanish>Brazo Izquierdo</Spanish>
|
||||
<French>Bras Gauche</French>
|
||||
<Polish>Lewa ręka</Polish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Medical_Menu_ARM_R">
|
||||
<Original>Right Arm</Original>
|
||||
<Russian>Правая рука</Russian>
|
||||
<Spanish>Brazo Derecho</Spanish>
|
||||
<French>Bras Droit</French>
|
||||
<Polish>Prawa ręka</Polish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Medical_Menu_LEG_L">
|
||||
<Original>Left Leg</Original>
|
||||
<Russian>Левая нога</Russian>
|
||||
<Spanish>Pierna Izquierda</Spanish>
|
||||
<French>Jambe Gauche</French>
|
||||
<Polish>Lewa noga</Polish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Medical_Menu_LEG_R">
|
||||
<Original>Right Leg</Original>
|
||||
<Russian>Правая нога</Russian>
|
||||
<Spanish>Pierna Derecha</Spanish>
|
||||
<French>Jambe Droite</French>
|
||||
<Polish>Prawa noga</Polish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Medical_Menu_SELECTED_BODY_PART">
|
||||
<Original>Body Part: %1</Original>
|
||||
<Russian>Часть тела: %1</Russian>
|
||||
<Spanish>Parte del cuerpo: %1</Spanish>
|
||||
<French>Partie du corps: %1</French>
|
||||
<Polish>Część ciała: %1</Polish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Medical_Menu_SMALL">
|
||||
<Original>Small</Original>
|
||||
<Russian>малого размера</Russian>
|
||||
<Spanish>Pequeña</Spanish>
|
||||
<French>Petite</French>
|
||||
<Polish>małym</Polish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Medical_Menu_MEDIUM">
|
||||
<Original>Medium</Original>
|
||||
<Russian>среднего размера</Russian>
|
||||
<Spanish>Mediana</Spanish>
|
||||
<French>moyenne</French>
|
||||
<Polish>średnim</Polish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Medical_Menu_LARGE">
|
||||
<Original>Large</Original>
|
||||
<Russian>большого размера</Russian>
|
||||
<Spanish>Grande</Spanish>
|
||||
<French>Grande</French>
|
||||
<Polish>dużym</Polish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Medical_Menu_MULTIPLE_OPEN_WOUNDS">
|
||||
<Original>There are %2 %1 Open Wounds</Original>
|
||||
<Russian>%2 открытые раны %1</Russian>
|
||||
<Spanish>Hay %2 Heridas Abiertas %1</Spanish>
|
||||
<French>Il y a %2 %1 Blessure Ouverte</French>
|
||||
<Polish>Widzisz otwarte rany w ilości %2 o %1 rozmiarze</Polish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Medical_Menu_SINGLE_OPEN_WOUND">
|
||||
<Original>There is 1 %1 Open Wound</Original>
|
||||
<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>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Medical_Menu_PARTIAL_OPEN_WOUND">
|
||||
<Original>There is a partial %1 Open wound</Original>
|
||||
<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>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Medical_Menu_MULTIPLE_BANDAGED_WOUNDS">
|
||||
<Original>There are %2 %1 Bandaged Wounds</Original>
|
||||
<Russian>%2 перевязанные раны %1</Russian>
|
||||
<Spanish>Hay %2 Heridas %1 Vendadas</Spanish>
|
||||
<French>Il y a %2 %1 Blessure Bandée</French>
|
||||
<Polish>Widzisz %2 zabandażowanych ran o %1 rozmiarze</Polish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Medical_Menu_SINGLE_BANDAGED_WOUND">
|
||||
<Original>There is 1 %1 Bandaged Wound</Original>
|
||||
<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>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Medical_Menu_PARTIAL_BANDAGED_WOUND">
|
||||
<Original>There is a partial %1 Bandaged wound</Original>
|
||||
<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>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Medical_Menu_NORMAL_BREATHING">
|
||||
<Original>Normal breathing</Original>
|
||||
<Russian>Дыхание в норме</Russian>
|
||||
<Spanish>Respiración normal</Spanish>
|
||||
<French>Respiration Normale</French>
|
||||
<Polish>Normalny oddech</Polish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Medical_Menu_NO_BREATHING">
|
||||
<Original>No breathing</Original>
|
||||
<Russian>Дыхания нет</Russian>
|
||||
<Spanish>No respira</Spanish>
|
||||
<French>Apnée</French>
|
||||
<Polish>Brak oddechu</Polish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Medical_Menu_DIFFICULT_BREATHING">
|
||||
<Original>Difficult breathing</Original>
|
||||
<Russian>Дыхание затруднено</Russian>
|
||||
<Spanish>Dificultad para respirar</Spanish>
|
||||
<French>Difficultée Respiratoire</French>
|
||||
<Polish>Trudności z oddychaniem</Polish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Medical_Menu_ALMOST_NO_BREATHING">
|
||||
<Original>Almost no breathing</Original>
|
||||
<Russian>Дыхания почти нет</Russian>
|
||||
<Spanish>Casi sin respirar</Spanish>
|
||||
<French>Respiration Faible</French>
|
||||
<Polish>Prawie brak oddechu</Polish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Medical_Menu_STATUS_BLEEDING">
|
||||
<Original>Bleeding</Original>
|
||||
<Russian>Кровотечение</Russian>
|
||||
<Spanish>Sangrando</Spanish>
|
||||
<French>Seignement</French>
|
||||
<Polish>Krwawienie zewnętrzne</Polish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Medical_Menu_STATUS_PAIN">
|
||||
<Original>in Pain</Original>
|
||||
<Russian>Испытывает боль</Russian>
|
||||
<Spanish>Con Dolor</Spanish>
|
||||
<French>A De La Douleur</French>
|
||||
<Polish>W bólu</Polish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Medical_Menu_STATUS_LOST_BLOOD">
|
||||
<Original>Lost a lot of Blood</Original>
|
||||
<Russian>Большая кровопотеря</Russian>
|
||||
<Spanish>Mucha Sangre perdida</Spanish>
|
||||
<French>A Perdu Bcp de Sang</French>
|
||||
<Polish>Stracił dużo krwi</Polish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Medical_Menu_STATUS_TOURNIQUET_APPLIED">
|
||||
<Original>Tourniquet [CAT]</Original>
|
||||
<Russian>Жгут</Russian>
|
||||
<Spanish>Torniquete [CAT]</Spanish>
|
||||
<French>Garot [CAT]</French>
|
||||
<Polish>Opaska uciskowa [CAT]</Polish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Medical_Menu_STATUS_NPA_APPLIED">
|
||||
<Original>Nasopharyngeal Tube [NPA]</Original>
|
||||
<Russian>Назотрахеальная трубка</Russian>
|
||||
<Spanish>Torniquete [CAT]</Spanish>
|
||||
<French>Canule Naseaupharyngée [NPA]</French>
|
||||
<Polish>Rurka nosowo-gardłowa [NPA]</Polish>
|
||||
</Key>
|
||||
</Container>
|
||||
</Package>
|
||||
</Project>
|
570
addons/medical_menu/ui/menu.hpp
Normal file
570
addons/medical_menu/ui/menu.hpp
Normal 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)]; [ARR_2(QUOTE(QGVAR(id)), true)] call EFUNC(common,blurScreen); [_this select 0] call FUNC(onMenuOpen););
|
||||
onUnload = QUOTE([ARR_2(QUOTE(QGVAR(id)), false)] call EFUNC(common,blurScreen); [ARR_2(QUOTE(QGVAR(onMenuOpen)), 'onEachFrame')] call BIS_fnc_removeStackedEventHandler;);
|
||||
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 = "PuristaMedium";
|
||||
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 = QUOTE(PATHTOF(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 = $STR_ACE_Medical_Menu_EXAMINE_TREATMENT;
|
||||
};
|
||||
class CatagoryCenter: CatagoryLeft {
|
||||
x = "13.33 * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)";
|
||||
text = $STR_ACE_Medical_Menu_STATUS;
|
||||
};
|
||||
class CatagoryRight: CatagoryCenter{
|
||||
x = "25.66 * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)";
|
||||
text = $STR_ACE_Medical_Menu_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 = QUOTE(PATHTOF(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 = QUOTE(PATHTOF(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 = QUOTE(PATHTOF(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 = QUOTE(PATHTOF(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 = QUOTE(PATHTOF(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 = QUOTE(PATHTOF(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 = QUOTE(PATHTOF(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 = QUOTE(PATHTOF(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 = QUOTE(PATHTOEF(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 = QUOTE(PATHTOEF(medical,ui\body_head.paa));
|
||||
};
|
||||
|
||||
class bodyImgTorso: bodyImgHead {
|
||||
idc = 51;
|
||||
text = QUOTE(PATHTOEF(medical,ui\body_torso.paa));
|
||||
};
|
||||
class bodyImgArms_l: bodyImgHead {
|
||||
idc = 52;
|
||||
text = QUOTE(PATHTOEF(medical,ui\body_arm_left.paa));
|
||||
};
|
||||
class bodyImgArms_r: bodyImgHead {
|
||||
idc = 53;
|
||||
text = QUOTE(PATHTOEF(medical,ui\body_arm_right.paa));
|
||||
};
|
||||
class bodyImgLegs_l: bodyImgHead {
|
||||
idc = 54;
|
||||
text = QUOTE(PATHTOEF(medical,ui\body_leg_left.paa));
|
||||
};
|
||||
class bodyImgLegs_r: bodyImgHead {
|
||||
idc = 55;
|
||||
text = QUOTE(PATHTOEF(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; [GVAR(INTERACTION_TARGET)] call FUNC(updateUIInfo););
|
||||
};
|
||||
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; [GVAR(INTERACTION_TARGET)] call FUNC(updateUIInfo););
|
||||
};
|
||||
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; [GVAR(INTERACTION_TARGET)] call FUNC(updateUIInfo););
|
||||
};
|
||||
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; [GVAR(INTERACTION_TARGET)] call FUNC(updateUIInfo););
|
||||
};
|
||||
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; [GVAR(INTERACTION_TARGET)] call FUNC(updateUIInfo););
|
||||
};
|
||||
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; [GVAR(INTERACTION_TARGET)] call FUNC(updateUIInfo););
|
||||
};
|
||||
|
||||
|
||||
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 = $STR_ACE_Medical_Menu_ACTIVITY_LOG;
|
||||
};
|
||||
class QuickViewHeader: ActivityLogHeader {
|
||||
x = "19.5 * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)";
|
||||
text = $STR_ACE_Medical_Menu_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 = $STR_ACE_Medical_Menu_TRIAGE_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 = $STR_ACE_Medical_Menu_TRIAGE_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 = $STR_ACE_Medical_Menu_TRIAGE_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 = $STR_ACE_Medical_Menu_TRIAGE_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 = $STR_ACE_Medical_Menu_TRIAGE_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););
|
||||
};
|
||||
};
|
||||
};
|
Loading…
Reference in New Issue
Block a user