/** * fn_updateUIInfo.sqf * @Descr: N/A * @Author: Glowbal * * @Arguments: [] * @Return: * @PublicAPI: false */ #include "script_component.hpp" private ["_targetObj","_bodyPartText","_bodyPartN","_openWounds","_bandagedWounds","_fractures","_listOfWounds","_listOfBandagedWounds","_listOfFractures","_counter","_nameEntry","_untreatedWounds" ,"_remainder", "_numberOf", "_airwayStatus", "_airwayTreated"]; _targetObj = _this select 0; _bodyPartText = (call FUNC(getSelectedBodyPart)); _bodyPartN = [_bodyPartText] call FUNC(getBodyPartNumber); if (_bodyPartN < 0 || _bodyPartN > 5) exitwith {}; _openWounds = [_targetObj,QGVAR(openWounds)] call EFUNC(common,getDefinedVariable); _bandagedWounds = [_targetObj,QGVAR(bandagedWounds)] call EFUNC(common,getDefinedVariable); _fractures = [_targetObj,QGVAR(fractures)] call EFUNC(common,getDefinedVariable); _airwayStatus = [_targetObj,QGVAR(airway)] call EFUNC(common,getDefinedVariable); if (count _this > 1) then { switch (_this select 1) do { case QGVAR(openWounds): { _openWounds = _this select 2; }; case QGVAR(bandagedWounds): { _bandagedWounds = _this select 2; }; case QGVAR(fractures): { _fractures = _this select 2; }; }; }; [_openWounds,_bandagedWounds] call FUNC(updateBodyImg); _listOfWounds = _openWounds select _bodyPartN; _listOfBandagedWounds = _bandagedWounds select _bodyPartN; _listOfFractures = _fractures select _bodyPartN; // TODO collect all information first, then clear the lb and fill in with details. Also; use ctrl instead of IDC. _numberOf = 0; lbClear 213; _displayBodyPartText = switch (_bodyPartText) do { case "head": { localize "STR_ACE_UI_HEAD"; }; case "body": { localize "STR_ACE_UI_TORSO"; }; case "hand_r": { localize "STR_ACE_UI_ARM_R"; }; case "hand_l": { localize "STR_ACE_UI_ARM_L"; }; case "leg_r": { localize "STR_ACE_UI_LEG_R"; }; case "leg_l": { localize "STR_ACE_UI_LEG_L"; }; default {"-"}; }; lbadd[213,format[localize "STR_ACE_UI_SELECTED_BODY_PART",_displayBodyPartText]]; lbSetData [213, _numberOf, ""]; lbSetColor [213, _numberOf, [0.27, 0.40, 0.26, 1]]; _numberOf = _numberOf + 1; if (GVAR(setting_allowAirwayInjuries)) then { _airwayTreated = _targetObj getvariable [QGVAR(airwayTreated), false]; if (_airwayStatus > 0) then { _nameEntry = switch (_airwayStatus) do { case 0: {localize "STR_ACE_UI_NORMAL_BREATHING"}; case 1: {localize "STR_ACE_UI_DIFFICULT_BREATHING"}; case 2: {localize "STR_ACE_UI_ALMOST_NO_BREATHING"}; default {localize "STR_ACE_UI_NO_BREATHING"}; }; if (!(alive _targetObj) || (_targetObj getvariable [QEGVAR(common,isDead), false])) then { lbadd[213,format["%1",localize "STR_ACE_UI_NO_BREATHING"]]; } else { lbadd[213,format["%1",_nameEntry]]; }; lbSetData [213, _numberOf, ""]; _numberOf = _numberOf + 1; } else { if (!(alive _targetObj) || (_targetObj getvariable [QEGVAR(common,isDead), false])) then { lbadd[213,format["%1",localize "STR_ACE_UI_NO_BREATHING"]]; lbSetData [213, _numberOf, ""]; _numberOf = _numberOf + 1; }; }; if (_airwayTreated) then { lbadd[213,localize "STR_ACE_UI_STATUS_NPA_APPLIED"]; lbSetData [213, _numberOf, ""]; lbSetColor [213, _numberOf, [0.5, 0.5, 0, 1]]; _numberOf = _numberOf + 1; }; }; if (([_targetObj,QGVAR(isBleeding)] call EFUNC(common,getDefinedVariable))) then { lbadd[213,localize "STR_ACE_UI_STATUS_BLEEDING"]; lbSetData [213, _numberOf, ""]; _numberOf = _numberOf + 1; }; if (([_targetObj,QGVAR(hasLostBlood)] call EFUNC(common,getDefinedVariable))) then { lbadd[213,localize "STR_ACE_UI_STATUS_LOST_BLOOD"]; lbSetData [213, _numberOf, ""]; _numberOf = _numberOf + 1; }; if (([_targetObj,QGVAR(hasPain)] call EFUNC(common,getDefinedVariable))) then { lbadd[213,localize "STR_ACE_UI_STATUS_PAIN"]; lbSetData [213, _numberOf, ""]; _numberOf = _numberOf + 1; }; if (([_targetObj, _bodyPartText] call FUNC(hasTourniquetAppliedTo))) then { lbadd[213,localize "STR_ACE_UI_STATUS_TOURNIQUET_APPLIED"]; lbSetColor [213, _numberOf, [0.5, 0.5, 0, 1]]; lbSetData [213, _numberOf, ""]; _numberOf = _numberOf + 1; }; _counter = 0; { if (_x > 0) then { _untreatedWounds = floor _x; _remainder = _x - (floor _x); _nameEntry = switch (_counter) do { case 0: {localize "STR_ACE_UI_SMALL"}; case 1: {localize "STR_ACE_UI_MEDIUM"}; case 2: {localize "STR_ACE_UI_LARGE"}; default {localize "STR_ACE_UI_SMALL"}; }; if (_untreatedWounds > 1) then { lbadd[213,format[localize "STR_ACE_UI_MULTIPLE_OPEN_WOUNDS",_nameEntry,_untreatedWounds]]; lbSetData [213, _numberOf, format["open_wound_%1",_counter]]; lbSetColor [213, _numberOf, [0.6, 0, 0, 1]]; _numberOf = _numberOf + 1; } else { if (_untreatedWounds == 1) then { lbadd[213,format[localize "STR_ACE_UI_SINGLE_OPEN_WOUND",_nameEntry]]; lbSetData [213, _numberOf, format["open_wound_%1",_counter]]; lbSetColor [213, _numberOf, [0.6, 0, 0, 1]]; _numberOf = _numberOf + 1; }; }; if (_remainder > 0) then { lbadd[213,format[localize "STR_ACE_UI_PARTIAL_OPEN_WOUND",_nameEntry]]; lbSetData [213, _numberOf, format["open_wound_%1",_counter]]; lbSetColor [213, _numberOf, [0.6, 0, 0, 1]]; _numberOf = _numberOf + 1; }; }; _counter = _counter + 1; }foreach _listOfWounds; _counter = 0; { if (_x > 0) then { _untreatedWounds = floor _x; _remainder = _x - (floor _x); _nameEntry = switch (_counter) do { case 0: {localize "STR_ACE_UI_SMALL"}; case 1: {localize "STR_ACE_UI_MEDIUM"}; case 2: {localize "STR_ACE_UI_LARGE"}; default {localize "STR_ACE_UI_SMALL"}; }; if (_untreatedWounds > 1) then { lbadd[213,format[localize "STR_ACE_UI_MULTIPLE_BANDAGED_WOUNDS",_nameEntry,_untreatedWounds]]; lbSetData [213, _numberOf, format["bandaged_wound_%1",_counter]]; _numberOf = _numberOf + 1; } else { if (_untreatedWounds == 1) then { lbadd[213,format[localize "STR_ACE_UI_SINGLE_BANDAGED_WOUND",_nameEntry]]; lbSetData [213, _numberOf, format["bandaged_wound_%1",_counter]]; _numberOf = _numberOf + 1; }; }; if (_remainder > 0) then { lbadd[213,format[localize "STR_ACE_UI_PARTIAL_BANDAGED_WOUND",_nameEntry]]; lbSetData [213, _numberOf, format["bandaged_wound_%1",_counter]]; _numberOf = _numberOf + 1; }; }; _counter = _counter + 1; }foreach _listOfBandagedWounds; _counter = 0; { if (_x > 0) then { _nameEntry = switch (_counter) do { case 0: {localize "STR_ACE_UI_SMALL"}; case 1: {localize "STR_ACE_UI_MEDIUM"}; case 2: {localize "STR_ACE_UI_LARGE"}; default {localize "STR_ACE_UI_SMALL"}; }; lbadd[213,format["%1 Fracture x%2",_nameEntry,_x]]; lbSetData [213, _numberOf, ""]; _numberOf = _numberOf + 1; }; _counter = _counter + 1; }foreach _listOfFractures;