ACE3/addons/interaction/functions/fnc_getInteractionDistance.sqf

34 lines
939 B
Plaintext
Raw Normal View History

#include "script_component.hpp"
/*
* Author: PabstMirror
* Gets effective interaction distance (handles very large vehicles)
*
* Arguments:
* 0: Player <OBJECT>
* 0: Target Vehicle <OBJECT>
*
* Return Value:
* Distance to interaction point <NUMBER>
*
* Example:
* [player, cursorObject] call ace_interaction_fnc_getInteractionDistance
*
* Public: No
*/
params ["_unit", "_target"];
TRACE_3("getInteractionDistance",_unit,_target,typeOf _target);
// Handle Man, Crate
if (!((_target isKindOf "Car") || {_target isKindOf "Tank"} || {_target isKindOf "Helicopter"} || {_target isKindOf "Plane"} || {_target isKindOf "Ship_F"})) exitWith {
_unit distance _target
};
private _unitEyeASL = eyePos _unit;
private _targetModelPos = [_target, _unitEyeASL] call FUNC(getVehiclePosComplex);
private _distance = _unitEyeASL distance (_target modelToWorldWorld _targetModelPos);
TRACE_2("",_targetModelPos,_distance);
_distance