void main()
{
    // walks to the nearest waypoint ,if we are not already walking
    object oWP1 = GetWaypointByTag("MOVETO1");
    object oWP2 = GetWaypointByTag("MOVETO2");
    int nAction = GetCurrentAction();
    int nCommand = GetCommandable();

    // Get if we are moving
    if(nAction == ACTION_MOVETOPOINT)
    {
        SpeakString("Cannot do new move, we are moving [Action] " + IntToString(nAction) + " [Command] " + IntToString(nCommand));
    }
    else if(nCommand == FALSE)
    {
        SpeakString("Cannot do new move, uncommandable [Action] " + IntToString(nAction) + " [Command] " + IntToString(nCommand));
    }
    else
    {
        // Check distance
        if(GetDistanceToObject(oWP1) <= 1.5)
        {
            // Go to 2.
            ClearAllActions();
            SpeakString("Moving to waypoint 2 [Action] " + IntToString(nAction) + " [Command] " + IntToString(nCommand));
            ActionMoveToLocation(GetLocation(oWP2), FALSE);
        }
        else
        {
            // Else, go to 1
            ClearAllActions();
            SpeakString("Moving to waypoint 1 [Action] " + IntToString(nAction) + " [Command] " + IntToString(nCommand));
            ActionMoveToLocation(GetLocation(oWP1), FALSE);
        }
    }
}