mirror of
https://github.com/acemod/ACE3.git
synced 2024-08-30 18:23:18 +00:00
90d63475d5
* Medical Treatment - Add preferred seats for loading patients * load patients in reverse order * add option for reverse fill * Update addons/medical_treatment/functions/fnc_loadUnit.sqf Co-authored-by: Filip Maciejewski <veteran29@users.noreply.github.com> * Update docs/wiki/framework/medical-treatment-framework.md Co-authored-by: PabstMirror <pabstmirror@gmail.com> Co-authored-by: Filip Maciejewski <veteran29@users.noreply.github.com> Co-authored-by: PabstMirror <pabstmirror@gmail.com>
59 lines
1.8 KiB
Plaintext
59 lines
1.8 KiB
Plaintext
#include "script_component.hpp"
|
|
/*
|
|
* Author: Glowbal
|
|
* Loads an unconscious or dead patient in the given or nearest vehicle.
|
|
*
|
|
* Arguments:
|
|
* 0: Medic <OBJECT>
|
|
* 1: Patient <OBJECT>
|
|
* 2: Vehicle <OBJECT> (default: objNull)
|
|
*
|
|
* Return Value:
|
|
* None
|
|
*
|
|
* Example:
|
|
* [player, cursorObject] call ace_medical_treatment_fnc_loadUnit
|
|
*
|
|
* Public: No
|
|
*/
|
|
|
|
params ["_medic", "_patient", ["_vehicle", objNull]];
|
|
TRACE_3("loadUnit",_medic,_patient,_vehicle);
|
|
|
|
if (_patient call EFUNC(common,isAwake)) exitWith {
|
|
[[LSTRING(CanNotLoad), _patient call EFUNC(common,getName)]] call EFUNC(common,displayTextStructured);
|
|
};
|
|
|
|
if (_patient call EFUNC(medical_status,isBeingCarried)) then {
|
|
[_medic, _patient] call EFUNC(dragging,dropObject_carry);
|
|
};
|
|
|
|
if (_patient call EFUNC(medical_status,isBeingDragged)) then {
|
|
[_medic, _patient] call EFUNC(dragging,dropObject);
|
|
};
|
|
|
|
private _vehicle = [
|
|
_medic,
|
|
_patient,
|
|
_vehicle,
|
|
getArray (configOf _vehicle >> QGVAR(patientSeats)),
|
|
([configOf _vehicle >> QGVAR(patientReverseFill), "NUMBER", 1] call CBA_fnc_getConfigEntry) > 0
|
|
] call EFUNC(common,loadPerson);
|
|
|
|
if (isNull _vehicle) exitWith { TRACE_1("no vehicle found",_vehicle); };
|
|
|
|
[{
|
|
params ["_unit", "_vehicle"];
|
|
(alive _unit) && {alive _vehicle} && {(vehicle _unit) == _vehicle}
|
|
}, {
|
|
params ["_unit", "_vehicle"];
|
|
TRACE_2("success",_unit,_vehicle);
|
|
private _patientName = [_unit, false, true] call EFUNC(common,getName);
|
|
private _vehicleName = getText (configOf _vehicle >> "displayName");
|
|
[[LSTRING(LoadedInto), _patientName, _vehicleName], 3] call EFUNC(common,displayTextStructured);
|
|
}, [_patient, _vehicle], 3, {
|
|
params ["_unit", "_emptyPos"];
|
|
WARNING_3("loadPerson failed to load %1[local %2] -> %3 ",_unit,local _unit,_vehicle);
|
|
}] call CBA_fnc_waitUntilAndExecute;
|
|
|