2018-09-17 19:19:29 +00:00
|
|
|
#include "script_component.hpp"
|
2015-06-30 02:18:21 +00:00
|
|
|
/*
|
|
|
|
* Author: PabstMirror
|
|
|
|
* Gets position from grid cords
|
|
|
|
*
|
2015-09-21 11:53:12 +00:00
|
|
|
* Arguments:
|
2015-06-30 02:18:21 +00:00
|
|
|
* 0: Grid Cords <STRING>
|
2015-09-21 11:53:12 +00:00
|
|
|
* 1: Grid center (true), Grid Bottom Right (false) (default: true) <BOOL>
|
2015-06-30 02:18:21 +00:00
|
|
|
*
|
2017-06-08 13:31:51 +00:00
|
|
|
* Return Value:
|
2015-06-30 16:11:53 +00:00
|
|
|
* Position <ARRAY>
|
2015-06-30 02:18:21 +00:00
|
|
|
*
|
|
|
|
* Example:
|
2015-06-30 17:26:51 +00:00
|
|
|
* ["6900080085"] call ace_common_fnc_getMapPosFromGrid
|
2015-06-30 02:18:21 +00:00
|
|
|
*
|
|
|
|
* Public: Yes
|
|
|
|
*/
|
|
|
|
|
2015-09-21 11:53:12 +00:00
|
|
|
params ["_inputString", ["_getCenterOfGrid", true]];
|
2015-06-30 02:18:21 +00:00
|
|
|
|
2015-09-21 11:53:12 +00:00
|
|
|
if (count GVAR(mapGridData) == 0) exitWith {
|
2016-10-02 10:55:31 +00:00
|
|
|
ERROR("Map has bad data, falling back to BIS_fnc_gridToPos");
|
2015-06-30 16:11:53 +00:00
|
|
|
(_this call BIS_fnc_gridToPos) select 0
|
|
|
|
};
|
|
|
|
|
2015-09-21 11:53:12 +00:00
|
|
|
GVAR(mapGridData) params ["_offsetX", "_realOffsetY", "_stepXat5", "_stepYat5"];
|
|
|
|
|
2015-12-12 15:48:54 +00:00
|
|
|
private _countInput = count _inputString;
|
|
|
|
private _countInputHalf = floor (_countInput / 2);
|
2015-06-30 02:18:21 +00:00
|
|
|
|
|
|
|
//Split string, ignoring middle
|
2015-12-12 15:48:54 +00:00
|
|
|
private _xPart = _inputString select [0, _countInputHalf];
|
|
|
|
private _yPart = _inputString select [ceil (_countInput / 2), _countInputHalf];
|
2015-06-30 02:18:21 +00:00
|
|
|
|
2015-12-12 15:48:54 +00:00
|
|
|
private _xPos = ((parseNumber _xPart) * _stepXat5 * 10 ^ (5 - _countInputHalf)) + _offsetX;
|
|
|
|
private _yPos = ((parseNumber _yPart) * _stepYat5 * 10 ^ (5 - _countInputHalf)) + _realOffsetY;
|
2015-06-30 02:18:21 +00:00
|
|
|
|
|
|
|
if (_getCenterOfGrid) then {
|
|
|
|
_xPos = _xPos + 0.5 * _stepXat5 * 10 ^ (5 - _countInputHalf);
|
|
|
|
_yPos = _yPos + 0.5 * _stepYat5 * 10 ^ (5 - _countInputHalf);
|
|
|
|
};
|
|
|
|
|
2015-09-21 11:53:12 +00:00
|
|
|
[_xPos, _yPos, 0]
|