private void AdvanceToGame()
    {
        isTransitioning      = true;
        PD.rounds            = 0;
        PD.totalRoundTime    = 0;
        PD.totalP1RoundScore = 0;
        PD.totalP2RoundScore = 0;
        PD.useSpecial        = false;
        PD.isTutorial        = false;
        PD.rowCount          = 6;
        for (int i = 0; i < options.Count; i++)
        {
            PD.SetCharSelOptionVal((int)options[i].type + "_" + (int)PD.gameType, options[i].curVal);
            switch (options[i].type)
            {
            case OptionType.Difficulty: PD.initialDifficulty = options[i].curVal; PD.difficulty = options[i].curVal; break;

            case OptionType.Rounds: PD.rounds = options[i].curVal; break;

            case OptionType.RowDepth: PD.rowCount = options[i].curVal; break;

            case OptionType.Special: PD.useSpecial = (options[i].curVal == 1); break;

            case OptionType.TrainingMode: PD.difficulty = options[i].curVal; PD.isTutorial = (options[i].curVal == 0); break;
            }
        }
        PD.playerOneWonRound = new List <bool>();
        PD.playerRoundScores = new List <int>();
        PD.playerRoundTimes  = new List <int>();
        PD.currentRound      = 1;
        if (PD.isTutorial)
        {
            PD.rowCount = 6;
        }
        PD.SetPlayer1(cursor.getX(), p1eggState == 3);
        if (cursor2 == null)
        {
            PD.SetPlayer2(-1);
        }
        else
        {
            PD.SetPlayer2(cursor2.getX());
        }
        SignalSuccess();
        PD.CharacterSelectConfirmation(p1eggState == -3);
    }