int display_menu() {
  // do stuff till the user clicks an menu item
  return menu_id;
}

int run_game() {
  if (user presses ESC)
    return menu_id;
}

int main() {
  enum { RUN_GAME, DISPLAY_MENU } state;

  while(1) {
    switch(state) {
      case RUN_GAME:
        state = run_game();
        break;
        
      case DISPLAY_MENU:
        state = display_menu();
        break;
    }
  }
}


int display_menu() {
  if (do stuff till the user clicks an menu item)
    { // call a signal that is bound to run_game()
      run_game();
    }
}

int run_game() {
  if (user presses ESC)
    display_menu();
}

int main() {
  display_menu();
}



