Add support for loading unconscious into co-pilot seat

fixes #1727
This commit is contained in:
ViperMaul 2015-07-26 18:20:36 -07:00
parent bf4e95e750
commit 6142d99626

View File

@ -10,35 +10,48 @@
#include "script_component.hpp" #include "script_component.hpp"
private ["_unit","_vehicle","_caller","_handle","_loaded"]; private ["_unit","_vehicle","_caller","_handle","_loaded","_slotsOpen"];
_unit = [_this, 0, ObjNull,[ObjNull]] call BIS_fnc_Param; _unit = [_this, 0, ObjNull,[ObjNull]] call BIS_fnc_Param;
_vehicle = [_this, 1, ObjNull,[ObjNull]] call BIS_fnc_Param; _vehicle = [_this, 1, ObjNull,[ObjNull]] call BIS_fnc_Param;
_caller = [_this, 2, ObjNull,[ObjNull]] call BIS_fnc_Param; _caller = [_this, 2, ObjNull,[ObjNull]] call BIS_fnc_Param;
_slotsOpen = false;
if (!alive _unit) then { if (!alive _unit) then {
_unit = [_unit,_caller] call FUNC(makeCopyOfBody); _unit = [_unit,_caller] call FUNC(makeCopyOfBody);
}; };
_unit moveInCargo _vehicle;
_loaded = _vehicle getvariable [QGVAR(loaded_persons),[]];
_loaded pushback _unit;
_vehicle setvariable [QGVAR(loaded_persons),_loaded,true];
if (!([_unit] call FUNC(isAwake))) then {
_handle = [_unit,_vehicle] spawn {
private ["_unit","_vehicle"];
_unit = _this select 0;
_vehicle = _this select 1;
waituntil {vehicle _unit == _vehicle};
sleep 0.5;
//Save the "awake" animation before applying the death animation if (_vehicle emptyPositions "cargo" > 0) then {
if (vehicle _unit == _vehicle) then { _unit moveInCargo _vehicle;
_unit setVariable [QEGVAR(medical,vehicleAwakeAnim), [_vehicle, (animationState _unit)]]; _slotsOpen = true;
};
[_unit,([_unit] call FUNC(getDeathAnim)), 1, true] call FUNC(doAnimation);
};
} else { } else {
if ([_unit] call FUNC(isArrested)) then { if (_vehicle emptyPositions "gunner" > 0) then {
_unit moveInGunner _vehicle;
_slotsOpen = true;
};
};
if (_slotsOpen) then {
_loaded = _vehicle getvariable [QGVAR(loaded_persons),[]];
_loaded pushback _unit;
_vehicle setvariable [QGVAR(loaded_persons),_loaded,true];
if (!([_unit] call FUNC(isAwake))) then {
_handle = [_unit,_vehicle] spawn {
private ["_unit","_vehicle"];
_unit = _this select 0;
_vehicle = _this select 1;
waituntil {vehicle _unit == _vehicle};
sleep 0.5;
//Save the "awake" animation before applying the death animation
if (vehicle _unit == _vehicle) then {
_unit setVariable [QEGVAR(medical,vehicleAwakeAnim), [_vehicle, (animationState _unit)]];
};
[_unit,([_unit] call FUNC(getDeathAnim)), 1, true] call FUNC(doAnimation);
};
} else {
if ([_unit] call FUNC(isArrested)) then {
};
}; };
}; };