void startGame()
    {
        List <PlayerComponents> results = new List <PlayerComponents>();

        foreach (KeyValuePair <int, Registration> entry in registeredPlayers)
        {
            InputConfiguration config = entry.Value.localID != -1 ? possiblePlayers[entry.Value.localID].bindings : new InputConfiguration();
            config.networkMode = entry.Value.networkMode;
            results.Add(new PlayerComponents(charactersData[entry.Value.SelectedCharacterID].character, config, entry.Key, entry.Value.ui.CharacterVisualsVector));
        }

        data.playerComponentPrefabs = results.ToArray();

        data.warmupActive = GameSelection.warmupActive;

        previousRegistrationData = PersistentRegistration.extractPersistentData(registeredPlayers);

        Debug.Log(mainGameSceneName);
        if (node != null)
        {
            node.Unsubscribe(this);
            node.Clear();
        }

        if (MenuMusic.singleton != null)
        {
            Destroy(MenuMusic.singleton.gameObject);
            MenuMusic.singleton = null;
        }

        Destroy(this);
        Destroy(pressStart.gameObject);

        Application.LoadLevel(mainGameSceneName);
    }
        public static PersistentRegistration[] extractPersistentData(Dictionary <int, Registration> registeredPlayers)
        {
            PersistentRegistration[] result = new PersistentRegistration[registeredPlayers.Count];
            int i = 0;

            foreach (KeyValuePair <int, Registration> player in registeredPlayers)
            {
                result[i] = new PersistentRegistration(player.Key, player.Value.SelectedCharacterID, player.Value.localID, player.Value.networkMode, player.Value.ui.CharacterVisualsVector);
                i++;
            }
            return(result);
        }
    void loadPreviousRegistrationData()
    {
        for (int i = 0; i < previousRegistrationData.Length; i++)
        {
            PersistentRegistration player = previousRegistrationData[i];
            if (player.localID >= 0)
            {
                spawnPlayerRegistration(player.localID, player.playerID, player.networkMode);
            }
            else
            {
                spawnPlayerRegistration(player.playerID, player.networkMode);
            }

            setPlayerReady(player.playerID, player.selectedCharacterID);
        }
    }
 public static PersistentRegistration[] extractPersistentData(Dictionary<int, Registration> registeredPlayers)
 {
     PersistentRegistration[] result = new PersistentRegistration[registeredPlayers.Count];
     int i = 0;
     foreach (KeyValuePair<int, Registration> player in registeredPlayers)
     {
         result[i] = new PersistentRegistration(player.Key, player.Value.SelectedCharacterID, player.Value.localID, player.Value.networkMode, player.Value.ui.CharacterVisualsVector);
         i++;
     }
     return result;
 }