ACE3/addons/common/functions/fnc_headBugFix.sqf
jonpas 742626ff1a
General - Relative script_component.hpp includes (#9378)
Co-authored-by: PabstMirror <pabstmirror@gmail.com>
2023-09-12 20:58:10 +02:00

56 lines
1.2 KiB
Plaintext

#include "..\script_component.hpp"
/*
* Author: rocko
* Fixes animation issues that may get you stuck
*
* Arguments:
* None
*
* Return Value:
* None
*
* Example:
* [] call ace_common_fnc_headBugFix
*
* Public: Yes
*
* Note: Has to be spawned not called
*/
private _unit = ACE_player;
private _anim = animationState _unit;
[QGVAR(headbugFixUsed), [profileName, _anim]] call CBA_fnc_serverEvent;
[QGVAR(headbugFixUsed), [profileName, _anim]] call CBA_fnc_localEvent;
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"];
[_unit, "headBugFix"] call FUNC(hideUnit);
// create invisible headbug fix vehicle
private _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"];
["ace_headBugFix", false] call FUNC(setDisableUserInputStatus);
true