1. Yes I have told them to glide
2. I don't know which part is exactly relevant since my question is about how the collision engine works so here is the entire action that the enemies run:
Code:
action enemy()
{
	c_setminmax(me);
	my.emask |= (ENABLE_IMPACT);
	my.event = hit_enemy;
	my.health = 20;
	my.damage = 0; //1 = took damage (invinci timer)
	var temp;
	while (my.health >= 1)
	{
		vec_set (temp, pOne.x);
		vec_sub (temp, my.x);
		vec_to_angle(my.pan, temp);
		c_move(me, vector(3*time_step,0,0), nullvector, IGNORE_PASSABLE | GLIDE);
	//	DEBUG_VAR(my.health, my.y);
		if (my.damage == 1)
		{
			set (my, PASSABLE);
			wait(30);
			reset(my, PASSABLE);
			my.damage = 0;
		}
		wait(1);
	}
	ent_remove(me);
}