ACE3/addons/common/functions/fnc_headBugFix.sqf

56 lines
1.2 KiB
Plaintext
Raw Normal View History

#include "script_component.hpp"
2015-09-18 14:33:53 +00:00
/*
* Author: rocko
* Fixes animation issues that may get you stuck
*
2015-09-18 14:33:53 +00:00
* Arguments:
* None
*
* Return Value:
* None
*
* Example:
* [] call ace_common_fnc_headBugFix
*
2015-09-18 14:33:53 +00:00
* Public: Yes
*
* Note: Has to be spawned not called
*/
private _unit = ACE_player;
private _anim = animationState _unit;
2015-09-18 14:33:53 +00:00
[QGVAR(headbugFixUsed), [profileName, _anim]] call CBA_fnc_serverEvent;
[QGVAR(headbugFixUsed), [profileName, _anim]] call CBA_fnc_localEvent;
2015-09-18 14:33:53 +00:00
if (_unit != vehicle _unit || {!([_unit, objNull, ["isNotSitting"]] call FUNC(canInteractWith))}) exitWith {false};
["ace_headBugFix", true] call FUNC(setDisableUserInputStatus);
private _pos = getPosATL _unit;
private _dir = getDir _unit;
titleCut ["", "BLACK"];
2015-09-18 14:33:53 +00:00
[_unit, "headBugFix"] call FUNC(hideUnit);
// create invisible headbug fix vehicle
private _dummy = createVehicle ["ACE_Headbug_Fix", _pos, [], 0, "NONE"];
2015-09-18 14:33:53 +00:00
_dummy setDir _dir;
_unit moveInAny _dummy;
2015-09-19 20:27:23 +00:00
sleep 0.1; // @todo
2015-09-18 14:33:53 +00:00
unassignVehicle _unit;
_unit action ["Eject", vehicle _unit];
_unit setDir _dir;
_unit setPosATL _pos;
sleep 1.0;
2015-09-18 14:33:53 +00:00
deleteVehicle _dummy;
2015-09-18 14:33:53 +00:00
[_unit, "headBugFix"] call FUNC(unhideUnit);
titleCut ["", "PLAIN"];
["ace_headBugFix", false] call FUNC(setDisableUserInputStatus);
true