mirror of
https://github.com/acemod/ACE3.git
synced 2024-08-30 18:23:18 +00:00
47 lines
1.3 KiB
Plaintext
47 lines
1.3 KiB
Plaintext
/*
|
|
* Author: PabstMirror
|
|
* Gets position from grid cords
|
|
*
|
|
* Argument:
|
|
* 0: Grid Cords <STRING>
|
|
* 1: Get Center or bottom right <BOOL><OPTIONAL>
|
|
*
|
|
* Return values:
|
|
* Position <ARRAY>
|
|
*
|
|
* Example:
|
|
* ["6900080085"] call ace_common_fnc_getMapPosFromGrid
|
|
*
|
|
* Public: Yes
|
|
*/
|
|
#include "script_component.hpp"
|
|
|
|
PARAMS_1(_inputString);
|
|
DEFAULT_PARAM(1,_getCenterOfGrid,true);
|
|
|
|
private["_countInput", "_countInputHalf", "_xPart", "_xPos", "_yPart", "_yPos"];
|
|
|
|
if ((count GVAR(mapGridData)) == 0) exitWith {
|
|
ERROR("Map has bad data, falling back to BIS_fnc_gridToPos");
|
|
(_this call BIS_fnc_gridToPos) select 0
|
|
};
|
|
|
|
EXPLODE_4_PVT(GVAR(mapGridData),_offsetX,_realOffsetY,_stepXat5,_stepYat5);
|
|
|
|
_countInput = count _inputString;
|
|
_countInputHalf = floor (_countInput / 2);
|
|
|
|
//Split string, ignoring middle
|
|
_xPart = _inputString select [0, _countInputHalf];
|
|
_yPart = _inputString select [(ceil (_countInput / 2)), _countInputHalf];
|
|
|
|
_xPos = ((parseNumber _xPart) * _stepXat5 * 10 ^ (5 - _countInputHalf)) + _offsetX;
|
|
_yPos = ((parseNumber _yPart) * _stepYat5 * 10 ^ (5 - _countInputHalf)) + _realOffsetY;
|
|
|
|
if (_getCenterOfGrid) then {
|
|
_xPos = _xPos + 0.5 * _stepXat5 * 10 ^ (5 - _countInputHalf);
|
|
_yPos = _yPos + 0.5 * _stepYat5 * 10 ^ (5 - _countInputHalf);
|
|
};
|
|
|
|
[_xPos, _yPos, 0];
|