ACE3/addons/respawn/functions/fnc_moveRallypoint.sqf

55 lines
1.4 KiB
Plaintext

/*
* Author: commy2
* Moves a rallypoint to the players location.
*
* Arguments:
* 0: Unit <OBJECT>
* 1: Side <SIDE>
*
* Return Value:
* None
*
* Example:
* [ACE_Player, side ACE_Player] call ace_respawn_fnc_moveRallypoint
*
* Public: No
*/
#include "script_component.hpp"
params ["_unit", "_side"];
private ["_rallypoint", "_position"];
_rallypoint = [
objNull,
missionNamespace getVariable ["ACE_Rallypoint_West", objNull],
missionNamespace getVariable ["ACE_Rallypoint_East", objNull],
missionNamespace getVariable ["ACE_Rallypoint_Independent", objNull]
] select ([west, east, independent] find _side) + 1;
TRACE_3("moving rally",_unit,_rallypoint,typeOf _rallypoint);
if (isNull _rallypoint) exitWith {};
_position = getPosATL _unit;
_position = _position findEmptyPosition [0, 2, typeOf _rallypoint];
if (_position isEqualTo []) then {_position = getPosATL _unit};
_position set [2, 0];
[localize LSTRING(Deploy)] call EFUNC(common,displayTextStructured);
[{
params ["_rallypoint", "_unit", "_position"];
_rallypoint setPosATL _position;
_unit reveal _rallypoint;
_rallypoint setVariable [QGVAR(markerDate), [dayTime, "HH:MM"] call BIS_fnc_timeToString, true];
["rallypointMoved", [_rallypoint, _side, _position]] call EFUNC(common,globalEvent);
[localize LSTRING(Deployed)] call EFUNC(common,displayTextStructured);
}, [_rallypoint, _unit, _position], 5] call CBA_fnc_waitAndExecute;