ACTION choose_follow_path
{
MY.PASSABLE = ON;
// find path
RESULT = ent_path("path_004");
if(RESULT == 0)
{
beep; // path not found
REMOVE(ME);
return;
}
ent_waypoint(MY._TARGET_X,1); // store first waypoint
while(1)
{
// follow path
vec_set(MY._SPEED, MY._TARGET_X);
vec_sub(MY._SPEED, MY.X); // MY._SPEED = MY._TARGET - MY.X
RESULT = vec_to_angle(my_angle,MY._SPEED);
str_for_num(disp.string,RESULT);
disp.visible=on;
// near target? Then find next waypoint
if (RESULT < 0.9 )
{
ent_nextpoint(MY._TARGET_X);
}
// turn and run towards target
force = 0.50;
actor_turnto(my_angle.pan);
force = 3;
// move to point
vec_normalize(MY._SPEED, (2 * TIME));
move(ME, nullskill, MY._SPEED);
wait(1);
}