From 469a54c1415b26e4a6cebf1c6ee057a232d25237 Mon Sep 17 00:00:00 2001 From: Valmo Trindade Date: Tue, 31 Mar 2026 07:18:23 -0300 Subject: [PATCH] Added Hellanmma map support --- .../functions/fnc_convertClientLocation.sqf | 3 ++ addons/main/CfgFunctions.hpp | 3 ++ .../functions/map/fn_convert_to_hellanmaa.sqf | 30 +++++++++++++++++++ 3 files changed, 36 insertions(+) create mode 100644 addons/main/functions/map/fn_convert_to_hellanmaa.sqf diff --git a/addons/client/functions/fnc_convertClientLocation.sqf b/addons/client/functions/fnc_convertClientLocation.sqf index da2ef15..1b00f1f 100644 --- a/addons/client/functions/fnc_convertClientLocation.sqf +++ b/addons/client/functions/fnc_convertClientLocation.sqf @@ -107,6 +107,9 @@ switch (toLower worldName) do { case "rut_mandol": { _realLocation = _position call armatak_fnc_convert_to_rut_mandol; }; + case "hellanmaa": { + _realLocation = _position call armatak_fnc_convert_to_hellanmaa; + }; default { _warning = format ["ARMATAK
%1", "Unsupported Map"]; [[_warning, 1.5]] call CBA_fnc_notify; diff --git a/addons/main/CfgFunctions.hpp b/addons/main/CfgFunctions.hpp index 38d9825..4ea274a 100644 --- a/addons/main/CfgFunctions.hpp +++ b/addons/main/CfgFunctions.hpp @@ -122,6 +122,9 @@ class CfgFunctions { class convert_to_rut_mandol { file = "\armatak\armatak\addons\main\functions\map\fn_convert_to_rut_mandol.sqf"; }; + class convert_to_hellanmaa { + file = "\armatak\armatak\addons\main\functions\map\fn_convert_to_hellanmaa.sqf"; + }; }; }; }; diff --git a/addons/main/functions/map/fn_convert_to_hellanmaa.sqf b/addons/main/functions/map/fn_convert_to_hellanmaa.sqf new file mode 100644 index 0000000..28340c5 --- /dev/null +++ b/addons/main/functions/map/fn_convert_to_hellanmaa.sqf @@ -0,0 +1,30 @@ +params ["_longitudeInGame", "_latitudeInGame", "_altitude"]; + +private _mapWidth = 8192; +private _mapHeight = 8192; + +// SW corner (used as origin) +private _SW_lat = 63.005389; +private _SW_lon = 22.638957; + +// SE corner +private _SE_lat = 63.010092; +private _SE_lon = 22.800107; + +// NW corner +private _NW_lat = 63.078713; +private _NW_lon = 22.628542; + +private _edgeSE_lat = _SE_lat - _SW_lat; +private _edgeSE_lon = _SE_lon - _SW_lon; + +private _edgeNW_lat = _NW_lat - _SW_lat; +private _edgeNW_lon = _NW_lon - _SW_lon; + +private _fx = _longitudeInGame / _mapWidth; +private _fy = _latitudeInGame / _mapHeight; + +private _realLat = _SW_lat + (_fx * _edgeSE_lat) + (_fy * _edgeNW_lat); +private _realLon = _SW_lon + (_fx * _edgeSE_lon) + (_fy * _edgeNW_lon); + +[_realLat, _realLon, _altitude]