If you use a function like this:
VECTOR* vec_setxyz (VECTOR* v, float x, float y, float z)
{
if (v)
{
v->x = x;
v->y = y;
v->z = z;
return(v);
}
else
return(NULL);
}
You can simply do this and don't have to rely on vector(..):
int myLittleFunction ()
{
...
VECTOR v;
vec_setxyz(&v, 1, 2, 3);
draw_point3d(&v, COLOR_RED, 100, 23);
...
}
Since this is an engine-dll function, I don't understand why there is no std::vector<VECTOR*> used or the like and if in one frame the number of vector(...) calls exceeds the current used VECTOR*'s, new VECTOR*'s are generated and thrown into the std::vector... just my oppinion.