function scr_inverse_perspective(arg0, arg1, arg2, arg3 = 100) { return scr_inverse_perspective_ext(arg0, arg1, arg2, camerax() + (surface_get_width(application_surface) / 2), cameray() + (surface_get_height(application_surface) / 2), arg3); } function scr_inverse_perspective_ext(arg0, arg1, arg2, arg3, arg4, arg5 = 100) { var _vec3 = new Vector3(arg0, arg1, arg2); if ((arg5 + arg2) == 0 || arg5 == arg2) { if ((arg5 + arg2) == 0) _vec3.z = 0; else _vec3.z = arg5 / arg2; return _vec3; } else if (arg2 == 0) { arg2 = 0.000001; } _vec3.x = ((arg0 - arg3) / (arg5 / arg2)) + arg3; _vec3.y = ((arg1 - arg4) / (arg5 / arg2)) + arg4; _vec3.z = arg5 / arg2; return _vec3; }