シーケンスって

Sequence s = BEGIN;
GameMain *gm;

do {
  switch(s) {
    case BEGIN:
      gm = new Title;
      break;

    case /* 〜
    
*/
  }

  s = gm->cycle();
  delete gm;
}
while(s != END);

みたいな感じでいいの?
ググってもいいサンプルが出てこない