Maybe I'm completely missing the point, but why not just call the commands in a list, procedurally? Like, if you had functions drive_straight(float dist, float speed) and fire_ball(void) you could just do
Code:
void autonomous_1()
{
drive_straight(10,30);
fire_ball();
wait(500);
fire_ball();
drive_straight(-10,30);
}
And you would make more functions for more autonomous modes. It seems like a more elegant and execution-efficient solution.
I'm not saying there aren't reasons for storing commands in a list. In fact, I myself wrote a system which is by all metrics complex in LabVIEW to do a similar thing. However, I was trying to gain the ability to store the command vector in a text file, and load it on demand. Had I only wanted to write the commands in LabVIEW, I would have just called the command blocks in sequence (which I did successfully in our 2010 season, which suffered only from a very long on-field iteration time due to LV compile time issues).