summaryrefslogtreecommitdiffstats
path: root/Common/Common_MarkerUpdate.sqf
blob: e9c372bf6d0dbd44a9e9630e3bc8464867df670e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
private ["_deathMarkerColor","_deathMarkerSize","_deathMarkerType","_deletePrevious","_markerColor","_markerName","_markerSize","_markerType","_markerText","_refreshRate","_trackDeath","_tracked","_side"];

waitUntil {commonInitComplete};

_markerType = _this select 0;
_markerColor = _this select 1;
_markerSize = _this select 2;
_markerText = _this select 3;
_markerName = _this select 4;
_tracked = _this select 5;
_refreshRate = _this select 6;
_trackDeath = _this select 7;
_deathMarkerType = _this select 8;
_deathMarkerColor = _this select 9;
_deletePrevious = _this select 10;
_side = _this select 11;
_deathMarkerSize = [1,1];
if (count _this > 12) then {_deathMarkerSize = _this select 12};

if (_side != side player || isNull _tracked || !(alive _tracked)) exitWith {};
if (_deletePrevious) then {deleteMarkerLocal _markerName};

createMarkerLocal [_markerName,getPos _tracked];
if (_markerText != "") then {_markerName setMarkerTextLocal _markerText};
_markerName setMarkerTypeLocal _markerType;
_markerName setMarkerColorLocal _markerColor;
_markerName setMarkerSizeLocal _markerSize;

while {alive _tracked && !(isNull _tracked)} do {
	_markerName setMarkerPosLocal (getPos _tracked);
	sleep _refreshRate;
};

if (_trackDeath) then {
	_markerName setMarkerTypeLocal _deathMarkerType;
	_markerName setMarkerColorLocal _deathMarkerColor;
	_markerName setMarkerSizeLocal _deathMarkerSize;
	sleep ('WFBE_MARKERDEADDELAY' Call GetNamespace);
};

deleteMarkerLocal _markerName;