From 256ce0d5af807aa0d34631768cf796b4f9de8e92 Mon Sep 17 00:00:00 2001 From: Jacob Schmidt Date: Fri, 22 May 2026 23:24:18 -0500 Subject: [PATCH] Enhance mission generator markers with alpha, brush, and color settings --- .../fn_captureHvtMissionGenerator.sqf | 3 + .../fn_defendMissionGenerator.sqf | 3 + .../fn_deliveryMissionGenerator.sqf | 19 +++++- .../fn_hostageMissionGenerator.sqf | 3 + .../fn_hvtMissionGenerator.sqf | 68 +------------------ 5 files changed, 28 insertions(+), 68 deletions(-) diff --git a/arma/forge_pmc_simulator.Tanoa/functions/missionGenerators/fn_captureHvtMissionGenerator.sqf b/arma/forge_pmc_simulator.Tanoa/functions/missionGenerators/fn_captureHvtMissionGenerator.sqf index d1730c9..e3b6f94 100644 --- a/arma/forge_pmc_simulator.Tanoa/functions/missionGenerators/fn_captureHvtMissionGenerator.sqf +++ b/arma/forge_pmc_simulator.Tanoa/functions/missionGenerators/fn_captureHvtMissionGenerator.sqf @@ -355,6 +355,9 @@ CaptureHvtMissionGeneratorBaseClass = compileFinal createHashMapFromArray [ _extZone setMarkerShape "ELLIPSE"; _extZone setMarkerSize [160, 160]; _extZone setMarkerText format ["HVT Extraction Zone %1", _grid]; + _extZone setMarkerAlpha 0.5; + _extZone setMarkerBrush "DiagGrid"; + _extZone setMarkerColor "ColorOrange"; private _success = [ "hvt", diff --git a/arma/forge_pmc_simulator.Tanoa/functions/missionGenerators/fn_defendMissionGenerator.sqf b/arma/forge_pmc_simulator.Tanoa/functions/missionGenerators/fn_defendMissionGenerator.sqf index 2d4f7e2..e2be16f 100644 --- a/arma/forge_pmc_simulator.Tanoa/functions/missionGenerators/fn_defendMissionGenerator.sqf +++ b/arma/forge_pmc_simulator.Tanoa/functions/missionGenerators/fn_defendMissionGenerator.sqf @@ -291,6 +291,9 @@ DefendMissionGeneratorBaseClass = compileFinal createHashMapFromArray [ _defenseZone setMarkerShape "ELLIPSE"; _defenseZone setMarkerSize [25, 25]; _defenseZone setMarkerText format ["Defense Zone %1", _grid]; + _defenseZone setMarkerAlpha 0.5; + _defenseZone setMarkerBrush "DiagGrid"; + _defenseZone setMarkerColor "ColorOrange"; private _success = [ "defend", diff --git a/arma/forge_pmc_simulator.Tanoa/functions/missionGenerators/fn_deliveryMissionGenerator.sqf b/arma/forge_pmc_simulator.Tanoa/functions/missionGenerators/fn_deliveryMissionGenerator.sqf index b676e7a..e5ff367 100644 --- a/arma/forge_pmc_simulator.Tanoa/functions/missionGenerators/fn_deliveryMissionGenerator.sqf +++ b/arma/forge_pmc_simulator.Tanoa/functions/missionGenerators/fn_deliveryMissionGenerator.sqf @@ -235,7 +235,9 @@ DeliveryMissionGeneratorBaseClass = compileFinal createHashMapFromArray [ private _position = _locationData getOrDefault ["position", [0, 0, 0]]; private _grid = _locationData getOrDefault ["grid", mapGridPosition _position]; private _taskID = format ["task_delivery_%1", round (diag_tickTime * 1000)]; + private _pickupMarker = format ["forge_delivery_pickup_%1", _taskID]; private _deliveryZone = format ["forge_delivery_zone_%1", _taskID]; + private _dropoffMarker = format ["forge_delivery_dropoff_%1", _taskID]; private _worldSize = worldSize; private _center = [_worldSize / 2, _worldSize / 2, 0]; private _deliveryPos = [0, 0, 0]; @@ -265,10 +267,23 @@ DeliveryMissionGeneratorBaseClass = compileFinal createHashMapFromArray [ if (_cargoObjects isEqualTo []) exitWith { "" }; + createMarker [_pickupMarker, _position]; + _pickupMarker setMarkerType "hd_pickup"; + _pickupMarker setMarkerColor "ColorBLUFOR"; + _pickupMarker setMarkerText format ["Pickup %1", _grid]; + createMarker [_deliveryZone, _deliveryPos]; _deliveryZone setMarkerShape "ELLIPSE"; _deliveryZone setMarkerSize [25, 25]; _deliveryZone setMarkerText format ["Delivery Zone %1", _deliveryGrid]; + _deliveryZone setMarkerAlpha 0.5; + _deliveryZone setMarkerBrush "DiagGrid"; + _deliveryZone setMarkerColor "ColorOrange"; + + createMarker [_dropoffMarker, _deliveryPos]; + _dropoffMarker setMarkerType "hd_end"; + _dropoffMarker setMarkerColor "ColorBLUFOR"; + _dropoffMarker setMarkerText format ["Drop-off %1", _deliveryGrid]; private _fundsReward = _rewardRange call BIS_fnc_randomNum; private _reputationReward = _reputationRange call BIS_fnc_randomNum; @@ -305,7 +320,9 @@ DeliveryMissionGeneratorBaseClass = compileFinal createHashMapFromArray [ ] call forge_server_task_fnc_startTask; if !(_success) exitWith { + deleteMarker _pickupMarker; deleteMarker _deliveryZone; + deleteMarker _dropoffMarker; "" }; @@ -313,7 +330,7 @@ DeliveryMissionGeneratorBaseClass = compileFinal createHashMapFromArray [ _activeMissionRegistry set [_taskID, createHashMapFromArray [ ["generatorType", _self call ["getGeneratorType", []]], ["position", _position], - ["markers", [_deliveryZone]], + ["markers", [_pickupMarker, _deliveryZone, _dropoffMarker]], ["startedAt", serverTime] ]]; _manager set ["activeMissionRegistry", _activeMissionRegistry]; diff --git a/arma/forge_pmc_simulator.Tanoa/functions/missionGenerators/fn_hostageMissionGenerator.sqf b/arma/forge_pmc_simulator.Tanoa/functions/missionGenerators/fn_hostageMissionGenerator.sqf index 99148dd..18a7524 100644 --- a/arma/forge_pmc_simulator.Tanoa/functions/missionGenerators/fn_hostageMissionGenerator.sqf +++ b/arma/forge_pmc_simulator.Tanoa/functions/missionGenerators/fn_hostageMissionGenerator.sqf @@ -555,6 +555,9 @@ HostageMissionGeneratorBaseClass = compileFinal createHashMapFromArray [ _extZone setMarkerShape "ELLIPSE"; _extZone setMarkerSize [25, 25]; _extZone setMarkerText format ["Hostage Extraction %1", _grid]; + _extZone setMarkerAlpha 0.5; + _extZone setMarkerBrush "DiagGrid"; + _extZone setMarkerColor "ColorOrange"; private _hostageCount = count _hostageUnits; private _limitFail = 1; diff --git a/arma/forge_pmc_simulator.Tanoa/functions/missionGenerators/fn_hvtMissionGenerator.sqf b/arma/forge_pmc_simulator.Tanoa/functions/missionGenerators/fn_hvtMissionGenerator.sqf index 5effbcb..18e7a32 100644 --- a/arma/forge_pmc_simulator.Tanoa/functions/missionGenerators/fn_hvtMissionGenerator.sqf +++ b/arma/forge_pmc_simulator.Tanoa/functions/missionGenerators/fn_hvtMissionGenerator.sqf @@ -295,67 +295,6 @@ KillHvtMissionGeneratorBaseClass = compileFinal createHashMapFromArray [ private _reputationPenalty = _penaltyRange call BIS_fnc_randomNum; private _timeLimit = _timeRange call BIS_fnc_randomNum; - private _extZone = format ["forge_hvt_ext_zone_%1", _taskID]; - private _extPos = [0, 0, 0]; - private _extZoneMarkers = allMapMarkers select { - (toLowerANSI (markerText _x) find "extzone") == 0 - || { (toLowerANSI _x find "extzone") == 0 } - || { (toLowerANSI (markerText _x) find "extmarker") == 0 } - || { (toLowerANSI _x find "extmarker") == 0 } - }; - - if (_extZoneMarkers isNotEqualTo []) then { - _extPos = getMarkerPos (selectRandom _extZoneMarkers); - _extPos set [2, 0]; - } else { - private _blkListMarkers = allMapMarkers select { markerShape _x in ["RECTANGLE", "ELLIPSE"] }; - _blkListMarkers = _blkListMarkers select { - ( - (toLowerANSI _x find "blklist") == 0 - || { (toLowerANSI (markerText _x) find "blklist") == 0 } - || { (toLowerANSI _x find "blkmarker") == 0 } - || { (toLowerANSI (markerText _x) find "blkmarker") == 0 } - ) - && { getMarkerPos _x distance2D [0, 0] > 0 } - }; - - if (_blkListMarkers isNotEqualTo []) then { - private _selectedBlk = selectRandom _blkListMarkers; - private _attempt = 0; - while { _attempt < 60 && { _extPos isEqualTo [0, 0, 0] } } do { - _attempt = _attempt + 1; - private _candidate = [getMarkerPos _selectedBlk, 0, 2000, 3, 0, 0.3, 0] call BIS_fnc_findSafePos; - if (_candidate isEqualTo [0, 0, 0]) then { continue; }; - if !(_candidate inArea _selectedBlk) then { continue; }; - _candidate set [2, 0]; - _extPos = _candidate; - }; - }; - - if (_extPos isEqualTo [0, 0, 0]) then { - private _attempt = 0; - while { _attempt < 80 && { _extPos isEqualTo [0, 0, 0] } } do { - _attempt = _attempt + 1; - private _probe = [random worldSize, random worldSize, 0]; - if ((_probe distance2D _position) < 2000) then { continue; }; - private _safe = [_probe, 0, 500, 3, 0, 0.3, 0] call BIS_fnc_findSafePos; - if (_safe isEqualTo [0, 0, 0]) then { continue; }; - _safe set [2, 0]; - _extPos = _safe; - }; - }; - - if (_extPos isEqualTo [0, 0, 0]) then { - _extPos = _position vectorAdd [2500, 0, 0]; - _extPos set [2, 0]; - }; - }; - - createMarker [_extZone, _extPos]; - _extZone setMarkerShape "ELLIPSE"; - _extZone setMarkerSize [160, 160]; - _extZone setMarkerText format ["HVT Extraction Zone %1", _grid]; - private _success = [ "hvt", _taskID, @@ -366,7 +305,6 @@ KillHvtMissionGeneratorBaseClass = compileFinal createHashMapFromArray [ createHashMapFromArray [ ["limitFail", 0], ["limitSuccess", 1], - ["extractionZone", _extZone], ["captureHvt", false], ["funds", _fundsReward], ["ratingFail", _reputationPenalty], @@ -385,16 +323,12 @@ KillHvtMissionGeneratorBaseClass = compileFinal createHashMapFromArray [ "mission_manager" ] call forge_server_task_fnc_startTask; - if !(_success) exitWith { - deleteMarker _extZone; - "" - }; + if !(_success) exitWith { "" }; private _activeMissionRegistry = _manager getOrDefault ["activeMissionRegistry", createHashMap]; _activeMissionRegistry set [_taskID, createHashMapFromArray [ ["generatorType", _self call ["getGeneratorType", []]], ["position", _position], - ["markers", [_extZone]], ["startedAt", serverTime] ]]; _manager set ["activeMissionRegistry", _activeMissionRegistry];