ACE3/addons/common/functions/fnc_headBugFix.sqf
2015-09-19 22:27:23 +02:00

50 lines
1.0 KiB
Plaintext

/*
* Author: rocko
* Fixes animation issues that may get you stuck
*
* Arguments:
* None
*
* Return Value:
* None
*
* Public: Yes
*
* Note: Has to be spawned not called
*/
#include "script_component.hpp"
private ["_unit", "_anim", "_pos", "_dir", "_dummy"];
_unit = ACE_player;
_anim = animationState _unit;
["HeadbugFixUsed", [profileName, _anim]] call FUNC(serverEvent);
["HeadbugFixUsed", [profileName, _anim]] call FUNC(localEvent);
if (_unit != vehicle _unit || {!([_unit, objNull, ["isNotSitting"]] call FUNC(canInteractWith))}) exitWith {false};
_pos = getPosATL _unit;
_dir = getDir _unit;
titleCut ["", "BLACK"];
[_unit, "headBugFix"] call FUNC(hideUnit);
// create invisible headbug fix vehicle
_dummy = createVehicle ["ACE_Headbug_Fix", _pos, [], 0, "NONE"];
_dummy setDir _dir;
_unit moveInAny _dummy;
sleep 0.1; // @todo
unassignVehicle _unit;
_unit action ["Eject", vehicle _unit];
_unit setDir _dir;
_unit setPosATL _pos;
sleep 1.0;
deleteVehicle _dummy;
[_unit, "headBugFix"] call FUNC(unhideUnit);
titleCut ["", "PLAIN"];
true