hey joozey
doing ifs like this ()&&() never gave me any problem.
and now that i found the problem yesterday i know the problem isnt there.
a friend of mine helped me figure it out.

As far as i could understand this is wrong:

Code:
if(vec_dist(global_player_pos.x,grass_array_x[grass_array_index] ) < 8000)&&(vec_dist (global_player_pos.y, grass_array_y[grass_array_index]) < 8000)



because vec_dist compares vectors with 3 values, so, global_player_pos.x is actually global_player_pos.x.y.z together comparing with grass_array_x[x x x] which is not what i want to compare, so i had to do something more arcaic.

Code:

temp.x = grass_array_x[grass_array_index];
temp.y = grass_array_y[grass_array_index];
temp.z = global_player_pos.z;

if((temp.x - global_player_pos.x ) < 8000)&&((temp.y -global_player_pos.y ) < 8000)
{
...




and for some reason it works fine!!
So I´ll begin been more careful when using Vec_Dist func.

thanks you all for the attention.