Some other ~cleaner methods seemed to fail. (path_set -> my.string1, path_next iteration)

Drop two entities and two noticeably different paths near those two entities in level.
Set the actions of the entities to e1f_a.
Entities ~loop on separate paths, or don't.


Code:
var temp_pan[3];

var pan_ang_smooth = 0.5;
var tilt_ang_smooth = 0.5;

var pos_node[3];   // array to hold node position

define _nodeHitDist, skill10;
define _moveSpeed, skill11;
define _nodeId, skill71;
define _nodeDir, skill72;
define _ani1, skill73;
var cid = 0;

function e1f_move() {
	c_move(me, vector(my._moveSpeed*time_step, 0, 0), nullvector, GLIDE | IGNORE_PUSH);
	ent_animate(my, "walk", my._ani1, anm_cycle); 
	my._ani1 += 10 * time_step; // 10//number controls the animation speed
}
function e1f_turnTo(&_v) {
	vec_to_angle(temp_pan, vec_diff(temp, _v, my.x));
	my.pan += ang(temp_pan.pan - my.pan) * pan_ang_smooth*time_step;
	my.tilt += ang(temp_pan.tilt - my.tilt) * tilt_ang_smooth*time_step;
}

action e1_a {
	wait(1);
	cid += 1;
	my._nodeHitDist = 25;
	my._moveSpeed = 10;
	// attach entity to nearest path
	//my._nodeId = path_scan(me,my.x,my.pan,vector(360,180,1000));
	//if (my._nodeId == 0) {
	
		//return;
	//}
	if (cid == 1) {
		path_set(me, "path_000");
	} else {
		path_set(me, "path_001");
	}

	my._nodeDir = 1;
	my._nodeId = 1;

	while(me != NULL) {
		if (path_getnode(me, my._nodeId, pos_node, null) == 0) {
			my._nodeDir *= -1;
			my._nodeId += my._nodeDir;
			path_getnode(me, my._nodeId, pos_node, null);
		} 
		if (vec_dist(my.x, pos_node) < my._nodeHitDist) {
			my._nodeId += my._nodeDir;
		}
		e1f_move();
		e1f_turnTo(pos_node);
		wait(1);
	}
}