State onGameMain(Game* game) { /*IGNORE*/ int choice = 0; char filename[255]; printGameMenu(game); choice = getInput(); /* "0. Restart a new game" "1. Load from a old game" "2. Save log" "3. Save this game" "4. Allow redo [%s]" "5. Allow illegal move [%s]" "6. Select default opponent [%s]" "7. Select default difficulty" "8. Return to the game" "9. Exit" */ switch(choice) { case 0: resetGame(game); return NewGame; case 1: /*loadGame(game); */return NewGame; case 2: printf("Enter the file name you want to save \n"); scanf("%s", filename); saveLog(game, filename); break; case 3: /*saveGame(game); */break; case 4: game->setting->allowRedo ^= 1; break; case 5: game->setting->allowIllegalMove ^= 1; break; case 6: selectOpponent(game); break; case 7: selectDifficulty(game); break; case 8: return TurnPlayer; case 9: return Exit; default: return GameMenu; } return GameMenu; }
// outputs start menu and waits for selection void showStartMenu(pthread_t* musicThread, GameState* gameState) { int c; while (*gameState == GameInit) { verifyClear(); resizeTerminal(24, 73); printGameMenu(); verifyRefresh(); if ((c = wgetch(stdscr)) != ERR) { if (c == 10) { verifyClear(); verifyRefresh(); *gameState = GameRunning; break; } else if (c == 27) { *gameState = GameOver; break; } } } }