diff --git a/addons/common/fnc_getPos.sqf b/addons/common/fnc_getPos.sqf index 6ad82ca00..0f2bf4cda 100644 --- a/addons/common/fnc_getPos.sqf +++ b/addons/common/fnc_getPos.sqf @@ -50,7 +50,7 @@ switch (typeName _entity) do { case "ARRAY": { + _entity }; - case "NUMBER": { // in case of position being passed not in array + case "SCALAR": { // in case of position being passed not in array + _this }; }; diff --git a/addons/common/test.sqf b/addons/common/test.sqf index df7107dc5..cb2e6f88c 100644 --- a/addons/common/test.sqf +++ b/addons/common/test.sqf @@ -5,7 +5,7 @@ #define DEBUG_MODE_FULL #include "script_component.hpp" -#define TESTS ["config", "inventory", "weaponComponents", "ret", "macro_is_x"] +#define TESTS ["config", "inventory", "weaponComponents", "position", "ret", "macro_is_x"] SCRIPT(test-common); diff --git a/addons/common/test_position.sqf b/addons/common/test_position.sqf new file mode 100644 index 000000000..67793a801 --- /dev/null +++ b/addons/common/test_position.sqf @@ -0,0 +1,64 @@ +#include "script_component.hpp" +SCRIPT(test_position); + +// execVM "\x\cba\addons\common\test_position.sqf"; + +private ["_funcName", "_value", "_result"]; + +_funcName = "CBA_fnc_getPos"; +LOG("Testing " + _funcName); + +TEST_DEFINED(_funcName,""); + +_value = objNull; +_result = _value call CBA_fnc_getPos; + +#define EXPECTED [0,0,0] +TEST_TRUE(_result isEqualTo EXPECTED,_funcName); + +//////////////////////////////////////////////////////////////////////////////////////////////////// + +_value = grpNull; +_result = _value call CBA_fnc_getPos; + +TEST_TRUE(_result isEqualTo EXPECTED,_funcName); + +//////////////////////////////////////////////////////////////////////////////////////////////////// + +_value = ""; // marker +_result = _value call CBA_fnc_getPos; + +TEST_TRUE(_result isEqualTo EXPECTED,_funcName); + +//////////////////////////////////////////////////////////////////////////////////////////////////// + +_value = locationNull; +_result = _value call CBA_fnc_getPos; + +TEST_TRUE(_result isEqualTo EXPECTED,_funcName); + +//////////////////////////////////////////////////////////////////////////////////////////////////// + +#define EXPECTED [1,2,0] // Pos 3D + +_value = EXPECTED; +_result = _value call CBA_fnc_getPos; + +// confirm that input array is copied +_value set [0,-1]; + +TEST_TRUE(_result isEqualTo EXPECTED,_funcName); + +//////////////////////////////////////////////////////////////////////////////////////////////////// + +#define EXPECTED [1,2] // Pos 2D + +_value = EXPECTED; +_result = _value call CBA_fnc_getPos; + +// confirm that input array is copied +_value set [0,-1]; + +TEST_TRUE(_result isEqualTo EXPECTED,_funcName); + +////////////////////////////////////////////////////////////////////////////////////////////////////