From 1e64f6702a76563e5e9e1d92d1e5ea9926a7cd50 Mon Sep 17 00:00:00 2001 From: He-Man Date: Tue, 12 Jun 2018 20:22:37 +0200 Subject: [PATCH] Handle Marker in Masterloop (for later E-Pad use) --- .../compile/setup/masterLoop/Event1.sqf | 27 ++++++++++++++----- .../compile/setup/masterLoop/init.sqf | 4 ++- Sources/epoch_code/init/client_init.sqf | 2 ++ .../CfgActionMenu/CfgActionMenu_map.hpp | 16 +++++------ 4 files changed, 33 insertions(+), 16 deletions(-) diff --git a/Sources/epoch_code/compile/setup/masterLoop/Event1.sqf b/Sources/epoch_code/compile/setup/masterLoop/Event1.sqf index a4f7a403..18a8a369 100644 --- a/Sources/epoch_code/compile/setup/masterLoop/Event1.sqf +++ b/Sources/epoch_code/compile/setup/masterLoop/Event1.sqf @@ -364,17 +364,30 @@ if !(_playerTempKey isEqualTo "EPOCH_playerTemp") then { }; // Check for PlayerMarker and Update or Remove it -if(_PlayerMarkerName in allMapMarkers)then{ - if!('ItemGPS' in (assignedItems player))then{ - ['PlayerMarker'] call EPOCH_fnc_deleteLocalMarkerSet; - if(_DeathMarkerName in allMapMarkers)then{ - ['DeathMarker'] call EPOCH_fnc_deleteLocalMarkerSet; - }; - }else{ +if (_PlayerMarkerEnabled && EPOCH_PlayerMarkerOn && 'ItemGPS' in (assignedItems player)) then { + if (_PlayerMarkerName in allMapMarkers) then { { (_x select 0) setMarkerPosLocal (position player); if(count(_x) >= 8)then{(_x select 0) setMarkerTextLocal (call compile (_x select 7))}; }forEach _PlayerMarkerArray; + } + else { + ['PlayerMarker',position player] call EPOCH_fnc_createLocalMarkerSet; + }; +} +else { + if (_PlayerMarkerName in allMapMarkers) then { + ['PlayerMarker'] call EPOCH_fnc_deleteLocalMarkerSet; + }; +}; +if (_DeathMarkerEnabled && EPOCH_DeathMarkerOn && !(_DeathMarker isEqualTo [])) then { + if !(_DeathMarkerName in allMapMarkers) then { + ['DeathMarker',_DeathMarker] call EPOCH_fnc_createLocalMarkerSet + }; +} +else { + if (_DeathMarkerName in allMapMarkers) then { + ['DeathMarker'] call EPOCH_fnc_deleteLocalMarkerSet; }; }; if(_mapOnZoomSetMarkerSize isEqualTo 1)then{ diff --git a/Sources/epoch_code/compile/setup/masterLoop/init.sqf b/Sources/epoch_code/compile/setup/masterLoop/init.sqf index 3c0ebad8..8e00d7a5 100644 --- a/Sources/epoch_code/compile/setup/masterLoop/init.sqf +++ b/Sources/epoch_code/compile/setup/masterLoop/init.sqf @@ -136,7 +136,9 @@ _PlayerMarkerArray = getArray(('CfgMarkerSets' call EPOCH_returnConfig) >> 'Play _PlayerMarkerName = (_PlayerMarkerArray param [0,[]]) param [0,"EPOCH_PlayerMarker1"]; _DeathMarkerName = ((getArray (('CfgMarkerSets' call EPOCH_returnConfig) >> 'DeathMarker' >> 'markerArray')) param [0,[]]) param [0,"EPOCH_DeathMarker1"]; _mapOnZoomSetMarkerSize = ["CfgEpochClient", "mapOnZoomSetMarkerSize", 0] call EPOCH_fnc_returnConfigEntryV2; - +_PlayerMarkerEnabled = (["CfgEpochClient", "playerLocationMarkerGPSOnly", 0] call EPOCH_fnc_returnConfigEntryV2) isequalto 1; +_DeathMarkerEnabled = (["CfgEpochClient", "playerDeathMarkerGPSOnly", 0] call EPOCH_fnc_returnConfigEntryV2) isequalto 1; +_DeathMarker = profileNameSpace getVariable ['EPOCHLastKnownDeath',[]]; _chargeRate = 0; _antagonistChanceDefaults = [ diff --git a/Sources/epoch_code/init/client_init.sqf b/Sources/epoch_code/init/client_init.sqf index f0a23c03..f10897bc 100644 --- a/Sources/epoch_code/init/client_init.sqf +++ b/Sources/epoch_code/init/client_init.sqf @@ -59,6 +59,8 @@ EPOCH_nearestLocations = []; EPOCH_lastFiredLocation = []; EPOCH_IsAutoRunning = false; EPOCH_LastAutoRunKeyPressed = diag_ticktime; +EPOCH_PlayerMarkerOn = false; +EPOCH_DeathMarkerOn = false; //Radiation EPOCH_geiger_shown = false; diff --git a/Sources/epoch_config/Configs/CfgActionMenu/CfgActionMenu_map.hpp b/Sources/epoch_config/Configs/CfgActionMenu/CfgActionMenu_map.hpp index b42416e2..64ca42ae 100644 --- a/Sources/epoch_config/Configs/CfgActionMenu/CfgActionMenu_map.hpp +++ b/Sources/epoch_config/Configs/CfgActionMenu/CfgActionMenu_map.hpp @@ -15,29 +15,29 @@ class playerMarker_on { - condition = "dyna_mapPlayerMarkerON && 'ItemGPS' in dyna_assignedItems && !dyna_mapPlayerMarker"; - action = "['PlayerMarker',position player] call EPOCH_fnc_createLocalMarkerSet"; + condition = "!EPOCH_PlayerMarkerOn"; + action = "EPOCH_PlayerMarkerOn = true; if !('ItemGPS' in dyna_assignedItems) then {['You need a GPS to see your Position',5] call epoch_message}"; icon = "x\addons\a3_epoch_community\buttons\gps.paa"; tooltip = "Toggle ON player marker"; }; class playerMarker_off { - condition = "dyna_mapPlayerMarkerON && dyna_mapPlayerMarker"; - action = "['PlayerMarker'] call EPOCH_fnc_deleteLocalMarkerSet"; + condition = "EPOCH_PlayerMarkerOn"; + action = "EPOCH_PlayerMarkerOn = false"; icon = "x\addons\a3_epoch_community\buttons\gps.paa"; tooltip = "Toggle OFF player marker"; }; class deathMarker_on { - condition = "dyna_deathMarkerON && dyna_deathMarkerAvail && !dyna_mapDeathMarker"; - action = "['DeathMarker',dyna_deathMarker] call EPOCH_fnc_createLocalMarkerSet"; + condition = "!EPOCH_DeathMarkerOn"; + action = "EPOCH_DeathMarkerOn = true; if ((profileNameSpace getVariable ['EPOCHLastKnownDeath',[]]) isequalto []) then {['You had no GPS on last death',5] call epoch_message}"; icon = "x\addons\a3_epoch_community\icons\skull.paa"; tooltip = "Toggle ON death marker"; }; class deathMarker_off { - condition = "dyna_deathMarkerON && dyna_mapDeathMarker"; - action = "['DeathMarker'] call EPOCH_fnc_deleteLocalMarkerSet"; + condition = "EPOCH_DeathMarkerOn"; + action = "EPOCH_DeathMarkerOn = false"; icon = "x\addons\a3_epoch_community\icons\skull.paa"; tooltip = "Toggle OFF death marker"; };